Mercurial > hg > dmlib
comparison tools/lib64fmts.c @ 1856:37cac290ce8b
Allow override of block size in DEF_SCREEN_RAMS_8() and DEF_SCREEN_RAM() macros.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 24 Jun 2018 03:01:50 +0300 |
parents | 5e33f367bafe |
children | 5d9dd663df8d |
comparison
equal
deleted
inserted
replaced
1855:5e33f367bafe | 1856:37cac290ce8b |
---|---|
957 | 957 |
958 // | 958 // |
959 // Helper macros for defining screen memory layouts | 959 // Helper macros for defining screen memory layouts |
960 // common for several FLI type image formats | 960 // common for several FLI type image formats |
961 // | 961 // |
962 #define DEF_SCREEN_RAM(start, oindex, bindex, osize) { DO_COPY, DS_SCREEN_RAM, (start) + ((osize) * (oindex)), (bindex), 0, 0, NULL, NULL } | 962 #define DEF_SCREEN_RAM(start, oindex, bindex, osize, bsize) { DO_COPY, DS_SCREEN_RAM, (start) + ((osize) * (oindex)), (bindex), (bsize), 0, NULL, NULL } |
963 #define DEF_SCREEN_RAMS_8(start, sindex, osize) \ | 963 #define DEF_SCREEN_RAMS_8(start, sindex, osize, bsize) \ |
964 DEF_SCREEN_RAM((start), 0, (sindex + 0), (osize)), \ | 964 DEF_SCREEN_RAM((start), 0, (sindex + 0), (osize), (bsize)), \ |
965 DEF_SCREEN_RAM((start), 1, (sindex + 1), (osize)), \ | 965 DEF_SCREEN_RAM((start), 1, (sindex + 1), (osize), (bsize)), \ |
966 DEF_SCREEN_RAM((start), 2, (sindex + 2), (osize)), \ | 966 DEF_SCREEN_RAM((start), 2, (sindex + 2), (osize), (bsize)), \ |
967 DEF_SCREEN_RAM((start), 3, (sindex + 3), (osize)), \ | 967 DEF_SCREEN_RAM((start), 3, (sindex + 3), (osize), (bsize)), \ |
968 DEF_SCREEN_RAM((start), 4, (sindex + 4), (osize)), \ | 968 DEF_SCREEN_RAM((start), 4, (sindex + 4), (osize), (bsize)), \ |
969 DEF_SCREEN_RAM((start), 5, (sindex + 5), (osize)), \ | 969 DEF_SCREEN_RAM((start), 5, (sindex + 5), (osize), (bsize)), \ |
970 DEF_SCREEN_RAM((start), 6, (sindex + 6), (osize)), \ | 970 DEF_SCREEN_RAM((start), 6, (sindex + 6), (osize), (bsize)), \ |
971 DEF_SCREEN_RAM((start), 7, (sindex + 7), (osize)) | 971 DEF_SCREEN_RAM((start), 7, (sindex + 7), (osize), (bsize)) |
972 | 972 |
973 | 973 |
974 | 974 |
975 // | 975 // |
976 // Many formats actually share memory layout, and there are packed and | 976 // Many formats actually share memory layout, and there are packed and |
1001 NULL, NULL, | 1001 NULL, NULL, |
1002 fmtGetPixelBlackMailFLI, | 1002 fmtGetPixelBlackMailFLI, |
1003 { | 1003 { |
1004 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL }, | 1004 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL }, |
1005 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL }, | 1005 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL }, |
1006 DEF_SCREEN_RAMS_8(0x0500, 0, 0x400), | 1006 DEF_SCREEN_RAMS_8(0x0500, 0, 0x400, 0), |
1007 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL }, | 1007 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL }, |
1008 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1008 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1009 } | 1009 } |
1010 }, | 1010 }, |
1011 | 1011 |
1027 C64_SCR_WIDTH, C64_SCR_HEIGHT, | 1027 C64_SCR_WIDTH, C64_SCR_HEIGHT, |
1028 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, | 1028 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, |
1029 NULL, NULL, | 1029 NULL, NULL, |
1030 fmtGetPixelFunPaint2, | 1030 fmtGetPixelFunPaint2, |
1031 { | 1031 { |
1032 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400), | 1032 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400, 0), |
1033 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, | 1033 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, |
1034 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100, 0, NULL, NULL }, | 1034 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100, 0, NULL, NULL }, |
1035 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, | 1035 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, |
1036 DEF_SCREEN_RAMS_8(0x43e8, 8, 0x400), | 1036 DEF_SCREEN_RAMS_8(0x43e8, 8, 0x400, 0), |
1037 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL }, | 1037 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL }, |
1038 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100, 100, NULL, NULL }, | 1038 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100, 100, NULL, NULL }, |
1039 { DO_DEC_FUNC , 0 , 0 , 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, | 1039 { DO_DEC_FUNC , 0 , 0 , 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, |
1040 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, | 1040 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL }, |
1041 } | 1041 } |
1098 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, | 1098 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, |
1099 fmtConvertECIBMP2Image, NULL, | 1099 fmtConvertECIBMP2Image, NULL, |
1100 fmtGetPixelECI, | 1100 fmtGetPixelECI, |
1101 { | 1101 { |
1102 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1102 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1103 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), | 1103 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), |
1104 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL }, | 1104 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL }, |
1105 DEF_SCREEN_RAMS_8(0x6000, 8, 0x400), | 1105 DEF_SCREEN_RAMS_8(0x6000, 8, 0x400, 0), |
1106 { DO_DEC_FUNC , 0 , 0 , 0, 0, 0, fmtECIGetLaceType, NULL }, | 1106 { DO_DEC_FUNC , 0 , 0 , 0, 0, 0, fmtECIGetLaceType, NULL }, |
1107 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1107 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1108 } | 1108 } |
1109 }, | 1109 }, |
1110 | 1110 |
1114 C64_SCR_CH_WIDTH, 24, | 1114 C64_SCR_CH_WIDTH, 24, |
1115 NULL, NULL, | 1115 NULL, NULL, |
1116 fmtGetPixelCrestHIFLIorCDHM, | 1116 fmtGetPixelCrestHIFLIorCDHM, |
1117 { | 1117 { |
1118 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1118 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1119 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), | 1119 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), |
1120 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1120 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1121 } | 1121 } |
1122 }, | 1122 }, |
1123 | 1123 |
1124 { // #9: FLI Designer 1.x & 2.0 | 1124 { // #9: FLI Designer 1.x & 2.0 |
1127 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, | 1127 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, |
1128 NULL, NULL, | 1128 NULL, NULL, |
1129 fmtGetPixelFLIDesigner, | 1129 fmtGetPixelFLIDesigner, |
1130 { | 1130 { |
1131 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1131 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1132 DEF_SCREEN_RAMS_8(0x0400, 0, 0x400), | 1132 DEF_SCREEN_RAMS_8(0x0400, 0, 0x400, 0), |
1133 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL }, | 1133 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL }, |
1134 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1134 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1135 } | 1135 } |
1136 }, | 1136 }, |
1137 | 1137 |
1555 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, | 1555 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, |
1556 NULL, NULL, | 1556 NULL, NULL, |
1557 fmtGetPixelBFLI, | 1557 fmtGetPixelBFLI, |
1558 { | 1558 { |
1559 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0, 0, NULL, NULL }, | 1559 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0, 0, NULL, NULL }, |
1560 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400), | 1560 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400, 0), |
1561 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x1fff, 0, NULL, NULL }, | 1561 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x1fff, 0, NULL, NULL }, |
1562 DEF_SCREEN_RAMS_8(0x4401, 8, 0x400), | 1562 DEF_SCREEN_RAMS_8(0x4401, 8, 0x400, 0), |
1563 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0, 0, NULL, NULL }, | 1563 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0, 0, NULL, NULL }, |
1564 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1564 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1565 } | 1565 } |
1566 }, | 1566 }, |
1567 NULL | 1567 NULL |
1674 C64_SCR_WIDTH, C64_SCR_HEIGHT, | 1674 C64_SCR_WIDTH, C64_SCR_HEIGHT, |
1675 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, | 1675 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, |
1676 NULL, NULL, | 1676 NULL, NULL, |
1677 fmtGetPixelFunPaint2, // The format is essentially same as FP2 | 1677 fmtGetPixelFunPaint2, // The format is essentially same as FP2 |
1678 { | 1678 { |
1679 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400), | 1679 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400, 0), |
1680 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, | 1680 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL }, |
1681 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, 0, NULL, NULL }, | 1681 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, 0, NULL, NULL }, |
1682 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, | 1682 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL }, |
1683 DEF_SCREEN_RAMS_8(0x4400, 8, 0x400), | 1683 DEF_SCREEN_RAMS_8(0x4400, 8, 0x400, 0), |
1684 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL }, | 1684 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL }, |
1685 // GunPaint does not store the last 3 d021 values .. so set them to black | 1685 // GunPaint does not store the last 3 d021 values .. so set them to black |
1686 // XXX TODO: According to some, the last 4 should be same .. | 1686 // XXX TODO: According to some, the last 4 should be same .. |
1687 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL }, | 1687 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL }, |
1688 { DO_DEC_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, | 1688 { DO_DEC_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL }, |
1723 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, | 1723 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, |
1724 NULL, NULL, | 1724 NULL, NULL, |
1725 fmtGetPixelCrestHIFLIorCDHM, | 1725 fmtGetPixelCrestHIFLIorCDHM, |
1726 { | 1726 { |
1727 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, | 1727 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL }, |
1728 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), | 1728 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400, 0), |
1729 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, | 1729 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL }, |
1730 } | 1730 } |
1731 }, | 1731 }, |
1732 NULL | 1732 NULL |
1733 }, | 1733 }, |