comparison tools/lib64fmts.c @ 1846:88cef7758303

Implement data block offset in certain DMC64EncDecOps. This allows us to combine and separate data from multiple sources/destinations into one data block.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 22 Jun 2018 22:31:52 +0300
parents a77451bb6614
children e3d1f16be4ee
comparison
equal deleted inserted replaced
1845:a77451bb6614 1846:88cef7758303
993 993
994 // 994 //
995 // Helper macros for defining screen memory layouts 995 // Helper macros for defining screen memory layouts
996 // common for several FLI type image formats 996 // common for several FLI type image formats
997 // 997 //
998 #define DEF_SCREEN_RAM(start, oindex, bindex, osize) { DO_COPY, DS_SCREEN_RAM, (start) + ((osize) * (oindex)), (bindex), 0, NULL, NULL } 998 #define DEF_SCREEN_RAM(start, oindex, bindex, osize) { DO_COPY, DS_SCREEN_RAM, (start) + ((osize) * (oindex)), (bindex), 0, 0, NULL, NULL }
999 #define DEF_SCREEN_RAMS_8(start, sindex, osize) \ 999 #define DEF_SCREEN_RAMS_8(start, sindex, osize) \
1000 DEF_SCREEN_RAM((start), 0, (sindex + 0), (osize)), \ 1000 DEF_SCREEN_RAM((start), 0, (sindex + 0), (osize)), \
1001 DEF_SCREEN_RAM((start), 1, (sindex + 1), (osize)), \ 1001 DEF_SCREEN_RAM((start), 1, (sindex + 1), (osize)), \
1002 DEF_SCREEN_RAM((start), 2, (sindex + 2), (osize)), \ 1002 DEF_SCREEN_RAM((start), 2, (sindex + 2), (osize)), \
1003 DEF_SCREEN_RAM((start), 3, (sindex + 3), (osize)), \ 1003 DEF_SCREEN_RAM((start), 3, (sindex + 3), (osize)), \
1020 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1020 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1021 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1021 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1022 NULL, NULL, 1022 NULL, NULL,
1023 NULL, 1023 NULL,
1024 { 1024 {
1025 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1025 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1026 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, NULL, NULL }, 1026 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, 0, NULL, NULL },
1027 { DO_COPY , DS_COLOR_RAM , 0x2328, 0, 0, NULL, NULL }, 1027 { DO_COPY , DS_COLOR_RAM , 0x2328, 0, 0, 0, NULL, NULL },
1028 { DO_SET_MEM_LO , DS_BGCOL , 0x2710, 0, 0, NULL, NULL }, 1028 { DO_SET_MEM_LO , DS_BGCOL , 0x2710, 0, 0, 0, NULL, NULL },
1029 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1029 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1030 } 1030 }
1031 }, 1031 },
1032 1032
1033 { // #1: Black Mail FLI Graph 1033 { // #1: Black Mail FLI Graph
1034 D64_FMT_MC | D64_FMT_FLI, 1034 D64_FMT_MC | D64_FMT_FLI,
1035 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1035 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1036 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1036 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1037 NULL, NULL, 1037 NULL, NULL,
1038 fmtGetPixelBlackMailFLI, 1038 fmtGetPixelBlackMailFLI,
1039 { 1039 {
1040 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, NULL, NULL }, 1040 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL },
1041 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, NULL, NULL }, 1041 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL },
1042 DEF_SCREEN_RAMS_8(0x0500, 0, 0x400), 1042 DEF_SCREEN_RAMS_8(0x0500, 0, 0x400),
1043 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, NULL, NULL }, 1043 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL },
1044 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1044 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1045 } 1045 }
1046 }, 1046 },
1047 1047
1048 { // #2: Art Studio etc. Hires 1048 { // #2: Art Studio etc. Hires
1049 D64_FMT_HIRES, 1049 D64_FMT_HIRES,
1050 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1050 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1051 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1051 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1052 NULL, NULL, 1052 NULL, NULL,
1053 NULL, 1053 NULL,
1054 { 1054 {
1055 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1055 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1056 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, NULL, NULL }, 1056 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, 0, NULL, NULL },
1057 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1057 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1058 } 1058 }
1059 }, 1059 },
1060 1060
1061 { // #3: FunPaint II 1061 { // #3: FunPaint II
1062 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, 1062 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE,
1064 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1064 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1065 NULL, NULL, 1065 NULL, NULL,
1066 fmtGetPixelFunPaint2, 1066 fmtGetPixelFunPaint2,
1067 { 1067 {
1068 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400), 1068 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400),
1069 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0, NULL, NULL }, 1069 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL },
1070 { DO_COPY , DS_EXTRA_DATA , 0x3f40, 0, 100, NULL, NULL }, 1070 { DO_COPY , DS_EXTRA_DATA , 0x3f40, 0, 100, 0, NULL, NULL },
1071 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0, NULL, NULL }, 1071 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL },
1072 DEF_SCREEN_RAMS_8(0x43e8, 8, 0x400), 1072 DEF_SCREEN_RAMS_8(0x43e8, 8, 0x400),
1073 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0, NULL, NULL }, 1073 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL },
1074 { DO_COPY , DS_EXTRA_DATA , 0x8328, 1, 100, NULL, NULL }, 1074 { DO_COPY , DS_EXTRA_DATA , 0x8328, 1, 100, 0, NULL, NULL },
1075 { DO_DEC_FUNC , 0 , 0x2742, 0, 1, fmtTruePaintGetLaceType, NULL }, 1075 { DO_DEC_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL },
1076 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1076 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL },
1077 } 1077 }
1078 }, 1078 },
1079 1079
1080 { // #4: DrazPaint 1.x & 2 1080 { // #4: DrazPaint 1.x & 2
1081 D64_FMT_MC, 1081 D64_FMT_MC,
1082 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1082 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1083 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1083 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1084 NULL, NULL, 1084 NULL, NULL,
1085 NULL, 1085 NULL,
1086 { 1086 {
1087 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1087 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1088 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, NULL, NULL }, 1088 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, 0, NULL, NULL },
1089 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, NULL, NULL }, 1089 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1090 { DO_SET_MEM_LO , DS_BGCOL , 0x2740, 0, 0, NULL, NULL }, 1090 { DO_SET_MEM_LO , DS_BGCOL , 0x2740, 0, 0, 0, NULL, NULL },
1091 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1091 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1092 } 1092 }
1093 }, 1093 },
1094 1094
1095 { // #5: DrazLace 1.0 1095 { // #5: DrazLace 1.0
1096 D64_FMT_MC | D64_FMT_ILACE, 1096 D64_FMT_MC | D64_FMT_ILACE,
1097 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1097 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1098 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1098 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1099 NULL, NULL, 1099 NULL, NULL,
1100 NULL, 1100 NULL,
1101 { 1101 {
1102 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1102 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1103 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, NULL, NULL }, 1103 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, 0, NULL, NULL },
1104 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, NULL, NULL }, 1104 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1105 { DO_SET_MEM_LO , DS_BGCOL , 0x2740, 0, 0, NULL, NULL }, 1105 { DO_SET_MEM_LO , DS_BGCOL , 0x2740, 0, 0, 0, NULL, NULL },
1106 { DO_COPY , DS_BITMAP_RAM , 0x2800, 1, 0, NULL, NULL }, 1106 { DO_COPY , DS_BITMAP_RAM , 0x2800, 1, 0, 0, NULL, NULL },
1107 { DO_DEC_FUNC , 0 , 0x2742, 0, 1, fmtDrazLaceGetLaceType, NULL }, 1107 { DO_DEC_FUNC , 0 , 0x2742, 0, 1, 0, fmtDrazLaceGetLaceType, NULL },
1108 { DO_ENC_FUNC , 0 , 0x2742, 0, 1, NULL, fmtDrazLaceSetLaceType }, 1108 { DO_ENC_FUNC , 0 , 0x2742, 0, 1, 0, NULL, fmtDrazLaceSetLaceType },
1109 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1109 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1110 } 1110 }
1111 }, 1111 },
1112 1112
1113 { // #6: TruePaint 1113 { // #6: TruePaint
1114 D64_FMT_MC | D64_FMT_ILACE, 1114 D64_FMT_MC | D64_FMT_ILACE,
1115 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1115 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1116 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1116 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1117 NULL, NULL, 1117 NULL, NULL,
1118 fmtGetPixelTruePaint, 1118 fmtGetPixelTruePaint,
1119 { 1119 {
1120 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, NULL, NULL }, 1120 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1121 { DO_SET_MEM_LO , DS_BGCOL , 0x03e8, 0, 0, NULL, NULL }, 1121 { DO_SET_MEM_LO , DS_BGCOL , 0x03e8, 0, 0, 0, NULL, NULL },
1122 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, NULL, NULL }, 1122 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1123 { DO_COPY , DS_BITMAP_RAM , 0x2400, 1, 0, NULL, NULL }, 1123 { DO_COPY , DS_BITMAP_RAM , 0x2400, 1, 0, 0, NULL, NULL },
1124 { DO_COPY , DS_SCREEN_RAM , 0x4400, 1, 0, NULL, NULL }, 1124 { DO_COPY , DS_SCREEN_RAM , 0x4400, 1, 0, 0, NULL, NULL },
1125 { DO_COPY , DS_COLOR_RAM , 0x4800, 0, 0, NULL, NULL }, 1125 { DO_COPY , DS_COLOR_RAM , 0x4800, 0, 0, 0, NULL, NULL },
1126 { DO_DEC_FUNC , 0 , 0x0000, 0, 0, fmtTruePaintGetLaceType, NULL }, 1126 { DO_DEC_FUNC , 0 , 0x0000, 0, 0, 0, fmtTruePaintGetLaceType, NULL },
1127 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1127 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1128 } 1128 }
1129 }, 1129 },
1130 1130
1131 { // #7: ECI Graphic Editor Hires FLI 1131 { // #7: ECI Graphic Editor Hires FLI
1132 D64_FMT_HIRES | D64_FMT_FLI, 1132 D64_FMT_HIRES | D64_FMT_FLI,
1133 C64_SCR_WIDTH, C64_SCR_HEIGHT, 1133 C64_SCR_WIDTH, C64_SCR_HEIGHT,
1134 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1134 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1135 fmtConvertECIBMP2Image, NULL, 1135 fmtConvertECIBMP2Image, NULL,
1136 fmtGetPixelECI, 1136 fmtGetPixelECI,
1137 { 1137 {
1138 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1138 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1139 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), 1139 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400),
1140 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, NULL, NULL }, 1140 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL },
1141 DEF_SCREEN_RAMS_8(0x6000, 8, 0x400), 1141 DEF_SCREEN_RAMS_8(0x6000, 8, 0x400),
1142 { DO_DEC_FUNC , 0 , 0 , 0, 0, fmtECIGetLaceType, NULL }, 1142 { DO_DEC_FUNC , 0 , 0 , 0, 0, 0, fmtECIGetLaceType, NULL },
1143 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1143 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1144 } 1144 }
1145 }, 1145 },
1146 1146
1147 { // #8: Cosmos Designs Hires Manager 1147 { // #8: Cosmos Designs Hires Manager
1148 D64_FMT_HIRES | D64_FMT_FLI, 1148 D64_FMT_HIRES | D64_FMT_FLI,
1149 C64_SCR_WIDTH, C64_SCR_HEIGHT, // Actually 296 x 192 (=24*8) 1149 C64_SCR_WIDTH, 24*8, // Actually 296 x 192 (=24*8)
1150 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1150 C64_SCR_CH_WIDTH, 24,
1151 NULL, NULL, 1151 NULL, NULL,
1152 fmtGetPixelCrestHIFLIorCDHM, 1152 fmtGetPixelCrestHIFLIorCDHM,
1153 { 1153 {
1154 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1154 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1155 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), 1155 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400),
1156 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1156 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1157 } 1157 }
1158 }, 1158 },
1159 1159
1160 { // #9: FLI Designer 1.x & 2.0 1160 { // #9: FLI Designer 1.x & 2.0
1161 D64_FMT_MC | D64_FMT_FLI, 1161 D64_FMT_MC | D64_FMT_FLI,
1162 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1162 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1163 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1163 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1164 NULL, NULL, 1164 NULL, NULL,
1165 fmtGetPixelFLIDesigner, 1165 fmtGetPixelFLIDesigner,
1166 { 1166 {
1167 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1167 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1168 DEF_SCREEN_RAMS_8(0x0400, 0, 0x400), 1168 DEF_SCREEN_RAMS_8(0x0400, 0, 0x400),
1169 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, NULL, NULL }, 1169 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1170 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1170 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1171 } 1171 }
1172 }, 1172 },
1173 1173
1174 { // #10: Doodle 1174 { // #10: Doodle
1175 D64_FMT_HIRES, 1175 D64_FMT_HIRES,
1176 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1176 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1177 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1177 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1178 NULL, NULL, 1178 NULL, NULL,
1179 NULL, 1179 NULL,
1180 { 1180 {
1181 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, NULL, NULL }, 1181 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1182 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, NULL, NULL }, 1182 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1183 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1183 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1184 } 1184 }
1185 }, 1185 },
1186 }; 1186 };
1187 1187
1188 1188
1235 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1235 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1236 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1236 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1237 NULL, NULL, 1237 NULL, NULL,
1238 NULL, 1238 NULL,
1239 { 1239 {
1240 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1240 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1241 { DO_SET_MEM_LO , DS_BGCOL , 0x07e8, 0, 0, NULL, NULL }, 1241 { DO_SET_MEM_LO , DS_BGCOL , 0x07e8, 0, 0, 0, NULL, NULL },
1242 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, NULL, NULL }, 1242 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, 0, NULL, NULL },
1243 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, NULL, NULL }, 1243 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1244 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1244 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1245 }, 1245 },
1246 }, 1246 },
1247 NULL 1247 NULL
1248 }, 1248 },
1249 1249
1256 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1256 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1257 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1257 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1258 NULL, NULL, 1258 NULL, NULL,
1259 NULL, 1259 NULL,
1260 { 1260 {
1261 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1261 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1262 { DO_SET_MEM_LO , DS_BGCOL , 0x07fe, 0, 0, NULL, NULL }, 1262 { DO_SET_MEM_LO , DS_BGCOL , 0x07fe, 0, 0, 0, NULL, NULL },
1263 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, NULL, NULL }, 1263 { DO_COPY , DS_BITMAP_RAM , 0x0800, 0, 0, 0, NULL, NULL },
1264 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, NULL, NULL }, 1264 { DO_COPY , DS_SCREEN_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1265 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1265 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1266 }, 1266 },
1267 }, 1267 },
1268 NULL 1268 NULL
1269 }, 1269 },
1270 1270
1305 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1305 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1306 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1306 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1307 NULL, NULL, 1307 NULL, NULL,
1308 NULL, 1308 NULL,
1309 { 1309 {
1310 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1310 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1311 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, NULL, NULL }, 1311 { DO_COPY , DS_SCREEN_RAM , 0x1f40, 0, 0, 0, NULL, NULL },
1312 { DO_SET_MEM_LO , DS_D020 , 0x2328, 0, 0, NULL, NULL }, 1312 { DO_SET_MEM_LO , DS_D020 , 0x2328, 0, 0, 0, NULL, NULL },
1313 { DO_SET_MEM_LO , DS_BGCOL , 0x2329, 0, 0, NULL, NULL }, 1313 { DO_SET_MEM_LO , DS_BGCOL , 0x2329, 0, 0, 0, NULL, NULL },
1314 { DO_COPY , DS_COLOR_RAM , 0x2338, 0, 0, NULL, NULL }, 1314 { DO_COPY , DS_COLOR_RAM , 0x2338, 0, 0, 0, NULL, NULL },
1315 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1315 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1316 }, 1316 },
1317 }, 1317 },
1318 NULL 1318 NULL
1319 }, 1319 },
1320 1320
1327 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1327 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1328 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1328 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1329 NULL, NULL, 1329 NULL, NULL,
1330 NULL, 1330 NULL,
1331 { 1331 {
1332 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, NULL, NULL }, 1332 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1333 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, NULL, NULL }, 1333 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1334 { DO_SET_MEM_LO , DS_BGCOL , 0x23ff, 0, 0, NULL, NULL }, 1334 { DO_SET_MEM_LO , DS_BGCOL , 0x23ff, 0, 0, 0, NULL, NULL },
1335 { DO_COPY , DS_SCREEN_RAM , 0x2400, 0, 0, NULL, NULL }, 1335 { DO_COPY , DS_SCREEN_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1336 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1336 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1337 } 1337 }
1338 }, 1338 },
1339 NULL 1339 NULL
1340 }, 1340 },
1341 1341
1348 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1348 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1349 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1349 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1350 NULL, NULL, 1350 NULL, NULL,
1351 NULL, 1351 NULL,
1352 { 1352 {
1353 { DO_COPY , DS_SCREEN_RAM , 20 + 0 , 0, 0, NULL, NULL }, 1353 { DO_COPY , DS_SCREEN_RAM , 20 + 0 , 0, 0, 0, NULL, NULL },
1354 { DO_COPY , DS_COLOR_RAM , 20 + 1000, 0, 0, NULL, NULL }, 1354 { DO_COPY , DS_COLOR_RAM , 20 + 1000, 0, 0, 0, NULL, NULL },
1355 { DO_COPY , DS_BITMAP_RAM , 20 + 2000, 0, 0, NULL, NULL }, 1355 { DO_COPY , DS_BITMAP_RAM , 20 + 2000, 0, 0, 0, NULL, NULL },
1356 // XXX TODO: Unknown where the background color is set, so default to 0x01 1356 // XXX TODO: Unknown where the background color is set, so default to 0x01
1357 //{ DO_SET_MEM , DS_BGCOL , 0x23ff, 0, 0, NULL, NULL }, 1357 //{ DO_SET_MEM , DS_BGCOL , 0x23ff, 0, 0, 0, NULL, NULL },
1358 { DO_SET_OP , DS_BGCOL , 0x01 , 0, 0, NULL, NULL }, 1358 { DO_SET_OP , DS_BGCOL , 0x01 , 0, 0, 0, NULL, NULL },
1359 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1359 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1360 } 1360 }
1361 }, 1361 },
1362 NULL 1362 NULL
1363 }, 1363 },
1364 1364
1371 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1371 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1372 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1372 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1373 NULL, NULL, 1373 NULL, NULL,
1374 NULL, 1374 NULL,
1375 { 1375 {
1376 { DO_COPY , DS_BITMAP_RAM , 0x0000 + 0x111, 0, 0, NULL, NULL }, 1376 { DO_COPY , DS_BITMAP_RAM , 0x0000 + 0x111, 0, 0, 0, NULL, NULL },
1377 { DO_COPY , DS_SCREEN_RAM , 0x1f40 + 0x111, 0, 0, NULL, NULL }, 1377 { DO_COPY , DS_SCREEN_RAM , 0x1f40 + 0x111, 0, 0, 0, NULL, NULL },
1378 { DO_COPY , DS_COLOR_RAM , 0x2328 + 0x111, 0, 0, NULL, NULL }, 1378 { DO_COPY , DS_COLOR_RAM , 0x2328 + 0x111, 0, 0, 0, NULL, NULL },
1379 { DO_SET_MEM_LO , DS_BGCOL , 0x2710 + 0x111, 0, 0, NULL, NULL }, 1379 { DO_SET_MEM_LO , DS_BGCOL , 0x2710 + 0x111, 0, 0, 0, NULL, NULL },
1380 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1380 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1381 } 1381 }
1382 }, 1382 },
1383 NULL 1383 NULL
1384 }, 1384 },
1385 1385
1392 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1392 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1393 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1393 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1394 NULL, NULL, 1394 NULL, NULL,
1395 NULL, 1395 NULL,
1396 { 1396 {
1397 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, NULL, NULL }, 1397 { DO_COPY , DS_SCREEN_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1398 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, NULL, NULL }, 1398 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL },
1399 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, NULL, NULL }, 1399 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1400 // XXX TODO: Not sure if the background color is hardcoded .. 1400 // XXX TODO: Not sure if the background color is hardcoded ..
1401 { DO_SET_OP , DS_BGCOL , 0x00 , 0, 0, NULL, NULL }, 1401 { DO_SET_OP , DS_BGCOL , 0x00 , 0, 0, 0, NULL, NULL },
1402 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1402 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1403 } 1403 }
1404 }, 1404 },
1405 NULL 1405 NULL
1406 }, 1406 },
1407 1407
1414 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1414 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1415 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1415 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1416 NULL, NULL, 1416 NULL, NULL,
1417 NULL, 1417 NULL,
1418 { 1418 {
1419 { DO_COPY , DS_SCREEN_RAM , 0x7800 - 0x7800, 0, 0, NULL, NULL }, 1419 { DO_COPY , DS_SCREEN_RAM , 0x7800 - 0x7800, 0, 0, 0, NULL, NULL },
1420 { DO_SET_MEM_LO , DS_BGCOL , 0x7bf0 - 0x7800, 0, 0, NULL, NULL }, 1420 { DO_SET_MEM_LO , DS_BGCOL , 0x7bf0 - 0x7800, 0, 0, 0, NULL, NULL },
1421 { DO_COPY , DS_BITMAP_RAM , 0x7c00 - 0x7800, 0, 0, NULL, NULL }, 1421 { DO_COPY , DS_BITMAP_RAM , 0x7c00 - 0x7800, 0, 0, 0, NULL, NULL },
1422 { DO_COPY , DS_COLOR_RAM , 0x9c00 - 0x7800, 0, 0, NULL, NULL }, 1422 { DO_COPY , DS_COLOR_RAM , 0x9c00 - 0x7800, 0, 0, 0, NULL, NULL },
1423 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1423 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1424 } 1424 }
1425 }, 1425 },
1426 NULL 1426 NULL
1427 }, 1427 },
1428 1428
1435 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1435 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1436 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1436 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1437 NULL, NULL, 1437 NULL, NULL,
1438 NULL, 1438 NULL,
1439 { 1439 {
1440 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1440 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1441 // XXX TODO: Background color is wrong, this offset/addr is from codebase64 docs 1441 // XXX TODO: Background color is wrong, this offset/addr is from codebase64 docs
1442 { DO_SET_MEM_LO , DS_D020 , 0x1f7f, 0, 0, NULL, NULL }, 1442 { DO_SET_MEM_LO , DS_D020 , 0x1f7f, 0, 0, 0, NULL, NULL },
1443 { DO_SET_MEM_LO , DS_BGCOL , 0x1f80, 0, 0, NULL, NULL }, 1443 { DO_SET_MEM_LO , DS_BGCOL , 0x1f80, 0, 0, 0, NULL, NULL },
1444 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, NULL, NULL }, 1444 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, 0, NULL, NULL },
1445 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, NULL, NULL }, 1445 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1446 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1446 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1447 } 1447 }
1448 }, 1448 },
1449 NULL 1449 NULL
1450 }, 1450 },
1451 1451
1458 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1458 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1459 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1459 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1460 NULL, NULL, 1460 NULL, NULL,
1461 NULL, 1461 NULL,
1462 { 1462 {
1463 { DO_COPY , DS_BITMAP_RAM , 0x4000 + 0x72 - 0x4000, 0, 0, NULL, NULL }, 1463 { DO_COPY , DS_BITMAP_RAM , 0x4000 + 0x72 - 0x4000, 0, 0, 0, NULL, NULL },
1464 { DO_COPY , DS_SCREEN_RAM , 0x6000 + 0x72 - 0x4000, 0, 0, NULL, NULL }, 1464 { DO_COPY , DS_SCREEN_RAM , 0x6000 + 0x72 - 0x4000, 0, 0, 0, NULL, NULL },
1465 { DO_SET_MEM_LO , DS_D020 , 0x5f40 + 0x72 - 0x4000, 0, 0, NULL, NULL }, 1465 { DO_SET_MEM_LO , DS_D020 , 0x5f40 + 0x72 - 0x4000, 0, 0, 0, NULL, NULL },
1466 { DO_SET_MEM , DS_COLOR_RAM , 0x5f43 + 0x72 - 0x4000, 0, 0, NULL, NULL }, 1466 { DO_SET_MEM , DS_COLOR_RAM , 0x5f43 + 0x72 - 0x4000, 0, 0, 0, NULL, NULL },
1467 { DO_SET_MEM_LO , DS_BGCOL , 0x5f44 + 0x72 - 0x4000, 0, 0, NULL, NULL }, 1467 { DO_SET_MEM_LO , DS_BGCOL , 0x5f44 + 0x72 - 0x4000, 0, 0, 0, NULL, NULL },
1468 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1468 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1469 } 1469 }
1470 }, 1470 },
1471 NULL 1471 NULL
1472 }, 1472 },
1473 1473
1480 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1480 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1481 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1481 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1482 NULL, NULL, 1482 NULL, NULL,
1483 NULL, 1483 NULL,
1484 { 1484 {
1485 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1485 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1486 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, NULL, NULL }, 1486 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, 0, NULL, NULL },
1487 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, NULL, NULL }, 1487 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1488 { DO_SET_MEM_LO , DS_D020 , 0x27fe, 0, 0, NULL, NULL }, 1488 { DO_SET_MEM_LO , DS_D020 , 0x27fe, 0, 0, 0, NULL, NULL },
1489 { DO_SET_MEM_LO , DS_BGCOL , 0x27ff, 0, 0, NULL, NULL }, 1489 { DO_SET_MEM_LO , DS_BGCOL , 0x27ff, 0, 0, 0, NULL, NULL },
1490 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1490 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1491 } 1491 }
1492 }, 1492 },
1493 NULL 1493 NULL
1494 }, 1494 },
1495 1495
1551 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1551 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1552 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1552 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1553 NULL, NULL, 1553 NULL, NULL,
1554 NULL, 1554 NULL,
1555 { 1555 {
1556 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1556 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1557 { DO_SET_OP , DS_SCREEN_RAM , 0xCF , 0, 0, NULL, NULL }, 1557 { DO_SET_OP , DS_SCREEN_RAM , 0xCF , 0, 0, 0, NULL, NULL },
1558 // Default colors used by MM are --^^ 1558 // Default colors used by MM are --^^
1559 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1559 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1560 } 1560 }
1561 }, 1561 },
1562 NULL 1562 NULL
1563 }, 1563 },
1564 1564
1571 C64_SCR_WIDTH , C64_SCR_HEIGHT, 1571 C64_SCR_WIDTH , C64_SCR_HEIGHT,
1572 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1572 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1573 NULL, NULL, 1573 NULL, NULL,
1574 NULL, 1574 NULL,
1575 { 1575 {
1576 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1576 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1577 { DO_SET_OP , DS_SCREEN_RAM , 0xF0 , 0, 0, NULL, NULL }, 1577 { DO_SET_OP , DS_SCREEN_RAM , 0xF0 , 0, 0, 0, NULL, NULL },
1578 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1578 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1579 } 1579 }
1580 }, 1580 },
1581 NULL 1581 NULL
1582 }, 1582 },
1583 1583
1590 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT * 2, 1590 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT * 2,
1591 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1591 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1592 NULL, NULL, 1592 NULL, NULL,
1593 fmtGetPixelBFLI, 1593 fmtGetPixelBFLI,
1594 { 1594 {
1595 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0, NULL, NULL }, 1595 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0, 0, NULL, NULL },
1596 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400), 1596 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400),
1597 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x1fff, NULL, NULL }, 1597 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x1fff, 0, NULL, NULL },
1598 DEF_SCREEN_RAMS_8(0x4401, 8, 0x400), 1598 DEF_SCREEN_RAMS_8(0x4401, 8, 0x400),
1599 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0, NULL, NULL }, 1599 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0, 0, NULL, NULL },
1600 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1600 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1601 } 1601 }
1602 }, 1602 },
1603 NULL 1603 NULL
1604 }, 1604 },
1605 1605
1654 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 1654 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
1655 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1655 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1656 NULL, NULL, 1656 NULL, NULL,
1657 NULL, 1657 NULL,
1658 { 1658 {
1659 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1659 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1660 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, NULL, NULL }, 1660 { DO_COPY , DS_SCREEN_RAM , 0x2000, 0, 0, 0, NULL, NULL },
1661 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, NULL, NULL }, 1661 { DO_COPY , DS_COLOR_RAM , 0x2400, 0, 0, 0, NULL, NULL },
1662 { DO_SET_OP , DS_BGCOL , 0x00 , 0, 0, NULL, NULL }, 1662 { DO_SET_OP , DS_BGCOL , 0x00 , 0, 0, 0, NULL, NULL },
1663 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1663 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1664 } 1664 }
1665 }, 1665 },
1666 NULL 1666 NULL
1667 }, 1667 },
1668 1668
1675 XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8, 1675 XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8,
1676 XX2_WIDTH_CH , XX2_HEIGHT_CH, 1676 XX2_WIDTH_CH , XX2_HEIGHT_CH,
1677 NULL, NULL, 1677 NULL, NULL,
1678 NULL, 1678 NULL,
1679 { 1679 {
1680 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, XX2_BSIZE, NULL, NULL }, 1680 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, XX2_BSIZE, 0, NULL, NULL },
1681 { DO_COPY , DS_SCREEN_RAM , XX2_BSIZE, 0, XX2_SIZE, NULL, NULL }, 1681 { DO_COPY , DS_SCREEN_RAM , XX2_BSIZE, 0, XX2_SIZE, 0, NULL, NULL },
1682 { DO_COPY , DS_COLOR_RAM , XX2_BSIZE + XX2_SIZE, 0, XX2_SIZE, NULL, NULL }, 1682 { DO_COPY , DS_COLOR_RAM , XX2_BSIZE + XX2_SIZE, 0, XX2_SIZE, 0, NULL, NULL },
1683 { DO_SET_OP , DS_BGCOL , 11 , 0, 0, NULL, NULL }, 1683 { DO_SET_OP , DS_BGCOL , 11 , 0, 0, 0, NULL, NULL },
1684 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1684 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1685 } 1685 }
1686 }, 1686 },
1687 NULL 1687 NULL
1688 }, 1688 },
1689 1689
1711 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 1711 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
1712 NULL, NULL, 1712 NULL, NULL,
1713 fmtGetPixelGunPaint, 1713 fmtGetPixelGunPaint,
1714 { 1714 {
1715 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400), 1715 DEF_SCREEN_RAMS_8(0x0000, 0, 0x400),
1716 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0, NULL, NULL }, 1716 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0, 0 , 0, NULL, NULL },
1717 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, NULL, NULL }, 1717 { DO_COPY , DS_EXTRA_DATA , 0x3f4f, 0, 177, 0, NULL, NULL },
1718 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0, NULL, NULL }, 1718 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL },
1719 DEF_SCREEN_RAMS_8(0x4400, 8, 0x400), 1719 DEF_SCREEN_RAMS_8(0x4400, 8, 0x400),
1720 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0, NULL, NULL }, 1720 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL },
1721 { DO_COPY , DS_EXTRA_DATA , 0x47e8, 1, 20, NULL, NULL }, 1721 { DO_COPY , DS_EXTRA_DATA , 0x47e8, 1, 20 , 0, NULL, NULL },
1722 { DO_DEC_FUNC , 0 , 0x2742, 0, 1, fmtTruePaintGetLaceType, NULL }, 1722 { DO_DEC_FUNC , 0 , 0x2742, 0, 1 , 0, fmtTruePaintGetLaceType, NULL },
1723 { DO_ENC_FUNC , 0 , fmtGunPaintMagicOffs, 0, fmtGunPaintMagicLen, NULL, fmtEncodeGunPaint }, 1723 { DO_ENC_FUNC , 0 , fmtGunPaintMagicOffs, 0, fmtGunPaintMagicLen, 0, NULL, fmtEncodeGunPaint },
1724 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1724 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL },
1725 } 1725 }
1726 }, 1726 },
1727 NULL 1727 NULL
1728 }, 1728 },
1729 1729
1736 192, C64_SCR_HEIGHT, 1736 192, C64_SCR_HEIGHT,
1737 24, C64_SCR_CH_HEIGHT, 1737 24, C64_SCR_CH_HEIGHT,
1738 NULL, NULL, 1738 NULL, NULL,
1739 fmtGetPixelPentelPaint, 1739 fmtGetPixelPentelPaint,
1740 { 1740 {
1741 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1741 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1742 { DO_SET_OP , DS_SCREEN_RAM , 0x23 , 0, 0, NULL, NULL }, 1742 { DO_SET_OP , DS_SCREEN_RAM , 0x23 , 0, 0, 0, NULL, NULL },
1743 { DO_SET_MEM_LO , DS_BGCOL , 0x9580 - 0x4800, 0, 0, NULL, NULL }, 1743 { DO_SET_MEM_LO , DS_BGCOL , 0x9580 - 0x4800, 0, 0, 0, NULL, NULL },
1744 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1744 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1745 } 1745 }
1746 }, 1746 },
1747 NULL 1747 NULL
1748 }, 1748 },
1749 1749
1756 C64_SCR_WIDTH, C64_SCR_HEIGHT, // Actually 296 x 112 (=14*8) 1756 C64_SCR_WIDTH, C64_SCR_HEIGHT, // Actually 296 x 112 (=14*8)
1757 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 1757 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
1758 NULL, NULL, 1758 NULL, NULL,
1759 fmtGetPixelCrestHIFLIorCDHM, 1759 fmtGetPixelCrestHIFLIorCDHM,
1760 { 1760 {
1761 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, NULL, NULL }, 1761 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL },
1762 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400), 1762 DEF_SCREEN_RAMS_8(0x2000, 0, 0x400),
1763 { DO_LAST , 0 , 0 , 0, 0, NULL, NULL }, 1763 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL },
1764 } 1764 }
1765 }, 1765 },
1766 NULL 1766 NULL
1767 }, 1767 },
1768 1768