Mercurial > hg > dmlib
comparison tools/lib64fmts.c @ 2164:ed079e869d64
Rename DEF_SCREEN_RAMS* macros to DEF_REPEAT_BLOCK and add argument to set block type.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 11 Jun 2019 02:27:38 +0300 |
parents | 1e7d80bfc8f1 |
children | 3d3094ba21c5 |
comparison
equal
deleted
inserted
replaced
2163:1e7d80bfc8f1 | 2164:ed079e869d64 |
---|---|
1397 | 1397 |
1398 // | 1398 // |
1399 // Helper macros for defining screen memory layouts | 1399 // Helper macros for defining screen memory layouts |
1400 // common for several FLI type image formats | 1400 // common for several FLI type image formats |
1401 // | 1401 // |
1402 #define DEF_SCREEN_RAM(start, oindex, bindex, osize, bsize) \ | 1402 #define DEF_REPEAT_BLOCK(dtype, start, oindex, bindex, osize, bsize) \ |
1403 { DO_COPY, DS_SCREEN_RAM, (start) + ((osize) * (oindex)), (bindex), (bsize), 0, NULL, NULL } | 1403 { DO_COPY, (dtype), (start) + ((osize) * (oindex)), (bindex), (bsize), 0, NULL, NULL } |
1404 | 1404 |
1405 #define DEF_SCREEN_RAMS_8(start, sindex, osize, bsize) \ | 1405 #define DEF_REPEAT_BLOCK_8(dtype, start, sindex, osize, bsize) \ |
1406 DEF_SCREEN_RAM((start), 0, (sindex + 0), (osize), (bsize)), \ | 1406 DEF_REPEAT_BLOCK((dtype), (start), 0, (sindex + 0), (osize), (bsize)), \ |
1407 DEF_SCREEN_RAM((start), 1, (sindex + 1), (osize), (bsize)), \ | 1407 DEF_REPEAT_BLOCK((dtype), (start), 1, (sindex + 1), (osize), (bsize)), \ |
1408 DEF_SCREEN_RAM((start), 2, (sindex + 2), (osize), (bsize)), \ | 1408 DEF_REPEAT_BLOCK((dtype), (start), 2, (sindex + 2), (osize), (bsize)), \ |
1409 DEF_SCREEN_RAM((start), 3, (sindex + 3), (osize), (bsize)), \ | 1409 DEF_REPEAT_BLOCK((dtype), (start), 3, (sindex + 3), (osize), (bsize)), \ |
1410 DEF_SCREEN_RAM((start), 4, (sindex + 4), (osize), (bsize)), \ | 1410 DEF_REPEAT_BLOCK((dtype), (start), 4, (sindex + 4), (osize), (bsize)), \ |
1411 DEF_SCREEN_RAM((start), 5, (sindex + 5), (osize), (bsize)), \ | 1411 DEF_REPEAT_BLOCK((dtype), (start), 5, (sindex + 5), (osize), (bsize)), \ |
1412 DEF_SCREEN_RAM((start), 6, (sindex + 6), (osize), (bsize)), \ | 1412 DEF_REPEAT_BLOCK((dtype), (start), 6, (sindex + 6), (osize), (bsize)), \ |
1413 DEF_SCREEN_RAM((start), 7, (sindex + 7), (osize), (bsize)) | 1413 DEF_REPEAT_BLOCK((dtype), (start), 7, (sindex + 7), (osize), (bsize)) |
1414 | |
1415 | 1414 |
1416 | 1415 |
1417 // | 1416 // |
1418 // Many formats actually share memory layout and other specs, and there are | 1417 // Many formats actually share memory layout and other specs, and there are |
1419 // packed and unpacked versions of several formats. We'll reuse these here | 1418 // packed and unpacked versions of several formats. We'll reuse these here |
1445 NULL, NULL, | 1444 NULL, NULL, |
1446 fmtGetPixelBlackMailFLI, | 1445 fmtGetPixelBlackMailFLI, |
1447 { | 1446 { |
1448 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL }, | 1447 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL }, |
1449 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL }, | 1448 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL }, |
1450 DEF_SCREEN_RAMS_8(0x0500, 0, 0x400, 0), | 1449 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0500, 0, 0x400, 0), |
1451 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL }, | 1450 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL }, |
1452 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1451 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1453 } | 1452 } |
1454 }, | 1453 }, |
1455 | 1454 |
1473 D64_SCR_CH_WIDTH , D64_SCR_CH_HEIGHT, | 1472 D64_SCR_CH_WIDTH , D64_SCR_CH_HEIGHT, |
1474 1, 1, | 1473 1, 1, |
1475 NULL, NULL, | 1474 NULL, NULL, |
1476 fmtGetPixelFunPaint2, | 1475 fmtGetPixelFunPaint2, |
1477 { | 1476 { |
1478 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400, 0), | 1477 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0000, 0, 0x400, 0), |
1479 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, | 1478 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, |
1480 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100, 0, NULL, NULL }, | 1479 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100, 0, NULL, NULL }, |
1481 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, | 1480 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, |
1482 DEF_SCREEN_RAMS_8(0x43e8, 8, 0x400, 0), | 1481 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x43e8, 8, 0x400, 0), |
1483 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL }, | 1482 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL }, |
1484 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100, 100, NULL, NULL }, | 1483 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100, 100, NULL, NULL }, |
1485 { DO_FUNC , 0 , 0 , 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, | 1484 { DO_FUNC , 0 , 0 , 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, |
1486 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, | 1485 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, |
1487 } | 1486 } |
1547 1, 1, | 1546 1, 1, |
1548 fmtConvertECIBMP2Image, NULL, | 1547 fmtConvertECIBMP2Image, NULL, |
1549 fmtGetPixelECI, | 1548 fmtGetPixelECI, |
1550 { | 1549 { |
1551 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1550 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1552 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), | 1551 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x2000, 0, 0x400, 0), |
1553 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL }, | 1552 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL }, |
1554 DEF_SCREEN_RAMS_8(0x6000, 8, 0x400, 0), | 1553 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x6000, 8, 0x400, 0), |
1555 { DO_FUNC , 0 , 0 , 0, 0, 0, fmtECIGetLaceType, NULL }, | 1554 { DO_FUNC , 0 , 0 , 0, 0, 0, fmtECIGetLaceType, NULL }, |
1556 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1555 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1557 } | 1556 } |
1558 }, | 1557 }, |
1559 | 1558 |
1564 1, 1, | 1563 1, 1, |
1565 NULL, NULL, | 1564 NULL, NULL, |
1566 fmtGetPixelCrestHIFLIorCDHM, | 1565 fmtGetPixelCrestHIFLIorCDHM, |
1567 { | 1566 { |
1568 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1567 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1569 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), | 1568 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x2000, 0, 0x400, 0), |
1570 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1569 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1571 } | 1570 } |
1572 }, | 1571 }, |
1573 | 1572 |
1574 { // #9: FBI Crew FLI Designer 1.x & 2.0 | 1573 { // #9: FBI Crew FLI Designer 1.x & 2.0 |
1578 2, 1, | 1577 2, 1, |
1579 NULL, NULL, | 1578 NULL, NULL, |
1580 fmtGetPixelFLIDesigner, | 1579 fmtGetPixelFLIDesigner, |
1581 { | 1580 { |
1582 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1581 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1583 DEF_SCREEN_RAMS_8(0x0400, 0, 0x400, 0), | 1582 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0400, 0, 0x400, 0), |
1584 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL }, | 1583 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL }, |
1585 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1584 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1586 } | 1585 } |
1587 }, | 1586 }, |
1588 | 1587 |
2041 2, 1, | 2040 2, 1, |
2042 NULL, NULL, | 2041 NULL, NULL, |
2043 fmtGetPixelBFLI, | 2042 fmtGetPixelBFLI, |
2044 { | 2043 { |
2045 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0x400 , 0, NULL, NULL }, | 2044 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0x400 , 0, NULL, NULL }, |
2046 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400, 0), | 2045 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0401, 0, 0x400, 0), |
2047 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x2000, 0, NULL, NULL }, | 2046 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x2000, 0, NULL, NULL }, |
2048 DEF_SCREEN_RAMS_8(0x4401, 8, 0x400, 0x400), | 2047 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x4401, 8, 0x400, 0x400), |
2049 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0x2000, 0, NULL, NULL }, | 2048 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0x2000, 0, NULL, NULL }, |
2050 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, | 2049 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, |
2051 } | 2050 } |
2052 }, | 2051 }, |
2053 NULL | 2052 NULL |
2186 D64_SCR_CH_WIDTH , D64_SCR_CH_HEIGHT, | 2185 D64_SCR_CH_WIDTH , D64_SCR_CH_HEIGHT, |
2187 1, 1, | 2186 1, 1, |
2188 NULL, NULL, | 2187 NULL, NULL, |
2189 fmtGetPixelFunPaint2, // The format is essentially same as FP2 | 2188 fmtGetPixelFunPaint2, // The format is essentially same as FP2 |
2190 { | 2189 { |
2191 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400, 0), | 2190 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0000, 0, 0x400, 0), |
2192 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, | 2191 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, |
2193 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, 0, NULL, NULL }, | 2192 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, 0, NULL, NULL }, |
2194 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, | 2193 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, |
2195 DEF_SCREEN_RAMS_8(0x4400, 8, 0x400, 0), | 2194 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x4400, 8, 0x400, 0), |
2196 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL }, | 2195 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL }, |
2197 // GunPaint does not store the last 3 d021 values .. so set them to black | 2196 // GunPaint does not store the last 3 d021 values .. so set them to black |
2198 // XXX TODO: According to some, the last 4 should be same .. | 2197 // XXX TODO: According to some, the last 4 should be same .. |
2199 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL }, | 2198 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL }, |
2200 { DO_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, | 2199 { DO_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, |
2264 1, 1, | 2263 1, 1, |
2265 NULL, NULL, | 2264 NULL, NULL, |
2266 fmtGetPixelCrestHIFLIorCDHM, | 2265 fmtGetPixelCrestHIFLIorCDHM, |
2267 { | 2266 { |
2268 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 2267 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
2269 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), | 2268 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x2000, 0, 0x400, 0), |
2270 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 2269 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
2271 } | 2270 } |
2272 }, | 2271 }, |
2273 NULL | 2272 NULL |
2274 }, | 2273 }, |