changeset 1388:4f81528aa4f6

Simplify some image format definitions by using macro to define screen ram blocks.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 24 Sep 2017 21:45:35 +0300
parents 14d79e4d82cf
children 979f550ead77
files tools/lib64gfx.c
diffstat 1 files changed, 18 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/tools/lib64gfx.c	Sun Sep 24 21:19:44 2017 +0300
+++ b/tools/lib64gfx.c	Sun Sep 24 21:45:35 2017 +0300
@@ -535,6 +535,18 @@
 //
 // Array with data for supported formats
 //
+#define DEF_SCREEN_RAM(start, oindex, bindex) { DT_SCREEN_RAM, (start) + (0x400 * (oindex)), (bindex), 0, NULL, NULL }
+#define DEF_SCREEN_RAMS_8(start, sindex) \
+    DEF_SCREEN_RAM((start), 0, (sindex + 0)), \
+    DEF_SCREEN_RAM((start), 1, (sindex + 1)), \
+    DEF_SCREEN_RAM((start), 2, (sindex + 2)), \
+    DEF_SCREEN_RAM((start), 3, (sindex + 3)), \
+    DEF_SCREEN_RAM((start), 4, (sindex + 4)), \
+    DEF_SCREEN_RAM((start), 5, (sindex + 5)), \
+    DEF_SCREEN_RAM((start), 6, (sindex + 6)), \
+    DEF_SCREEN_RAM((start), 7, (sindex + 7)),
+
+
 const DMC64ImageFormat dmC64ImageFormats[] =
 {
     {
@@ -741,17 +753,7 @@
         {
             { DT_EXTRA_DATA,   0x0000, 0,  200, NULL, NULL },
             { DT_COLOR_RAM,    0x0100, 0,  0, NULL, NULL },
-
-            { DT_SCREEN_RAM,   0x0500, 0,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x0900, 1,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x0d00, 2,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1100, 3,  0, NULL, NULL },
-
-            { DT_SCREEN_RAM,   0x1500, 4,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1900, 5,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1d00, 6,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x2100, 7,  0, NULL, NULL },
-
+            DEF_SCREEN_RAMS_8(0x0500, 0)
             { DT_BITMAP,       0x2500, 0,  0, NULL, NULL },
             { DT_LAST,         0,      0,  0, NULL, NULL },
         }
@@ -765,14 +767,7 @@
         NULL, NULL, NULL, fmtGetPixelFLIDesigner,
         {
             { DT_COLOR_RAM,    0x0000, 0,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x0400, 0,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x0800, 1,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x0c00, 2,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1000, 3,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1400, 4,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1800, 5,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x1c00, 6,  0, NULL, NULL },
-            { DT_SCREEN_RAM,   0x2000, 7,  0, NULL, NULL },
+            DEF_SCREEN_RAMS_8(0x0400, 0)
             { DT_BITMAP,       0x2400, 0,  0, NULL, NULL },
             { DT_LAST,         0,      0,  0, NULL, NULL },
         }
@@ -808,14 +803,11 @@
             { DT_BITMAP,       0x0000, 0,  XX2_BSIZE, NULL, NULL },
             { DT_COLOR_RAM,    XX2_BSIZE + XX2_SIZE, 0,  XX2_SIZE, NULL, NULL },
             { DT_SCREEN_RAM,   XX2_BSIZE, 0,  XX2_SIZE, NULL, NULL },
-
             { DT_COLOR_SET,    11,     0,  DC_BGCOL, NULL, NULL },
             { DT_LAST,         0,      0,  0, NULL, NULL },
         }
     },
 
-#define FP2_SCREEN_RAM(oindex, bindex) { DT_SCREEN_RAM, FP2_SCREEN_RAM_START + (0x400 * (oindex)), (bindex), 0, NULL, NULL }
-
     {
         D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "fp2", "FunPaint II (unpacked)", 0x3ff0, 33694,
         C64_SCR_WIDTH, C64_SCR_HEIGHT,
@@ -823,35 +815,13 @@
         fmtProbeFunPaint2Unpacked, fmtDecodeFunPaint2Unpacked,
         NULL, NULL, NULL, fmtGetPixelFunPaint2,
         {
-#define FP2_SCREEN_RAM_START 0
-            FP2_SCREEN_RAM(0, 0),
-            FP2_SCREEN_RAM(1, 1),
-            FP2_SCREEN_RAM(2, 2),
-            FP2_SCREEN_RAM(3, 3),
-            FP2_SCREEN_RAM(4, 4),
-            FP2_SCREEN_RAM(5, 5),
-            FP2_SCREEN_RAM(6, 6),
-            FP2_SCREEN_RAM(7, 7),
-
+            DEF_SCREEN_RAMS_8(0x0000, 0)
             { DT_BITMAP,       0x2000, 0,  0, NULL, NULL },
             { DT_EXTRA_DATA,   0x3f40, 0,  100, NULL, NULL },
             { DT_COLOR_RAM,    0x4000, 0,  0, NULL, NULL },
-
-#undef FP2_SCREEN_RAM_START
-#define FP2_SCREEN_RAM_START 0x4000
-
-            FP2_SCREEN_RAM(0, 8),
-            FP2_SCREEN_RAM(1, 9),
-            FP2_SCREEN_RAM(2, 10),
-            FP2_SCREEN_RAM(3, 11),
-            FP2_SCREEN_RAM(4, 12),
-            FP2_SCREEN_RAM(5, 13),
-            FP2_SCREEN_RAM(6, 14),
-            FP2_SCREEN_RAM(7, 15),
-
+            DEF_SCREEN_RAMS_8(0x4000, 8)
             { DT_BITMAP,       0x63e8, 1,  0, NULL, NULL },
             { DT_EXTRA_DATA,   0x8328, 1,  100, NULL, NULL },
-
             { DT_LAST,         0,      0,  0, NULL, NULL },
         }
     },
@@ -863,37 +833,13 @@
         fmtProbeFunPaint2Packed, fmtDecodeFunPaint2Packed,
         NULL, NULL, NULL, fmtGetPixelFunPaint2,
         {
-
-#undef FP2_SCREEN_RAM_START
-#define FP2_SCREEN_RAM_START 0
-            FP2_SCREEN_RAM(0, 0),
-            FP2_SCREEN_RAM(1, 1),
-            FP2_SCREEN_RAM(2, 2),
-            FP2_SCREEN_RAM(3, 3),
-            FP2_SCREEN_RAM(4, 4),
-            FP2_SCREEN_RAM(5, 5),
-            FP2_SCREEN_RAM(6, 6),
-            FP2_SCREEN_RAM(7, 7),
-
+            DEF_SCREEN_RAMS_8(0x0000, 0)
             { DT_BITMAP,       0x2000, 0,  0, NULL, NULL },
             { DT_EXTRA_DATA,   0x3f40, 0,  100, NULL, NULL },
             { DT_COLOR_RAM,    0x4000, 0,  0, NULL, NULL },
-
-#undef FP2_SCREEN_RAM_START
-#define FP2_SCREEN_RAM_START 0x4000
-
-            FP2_SCREEN_RAM(0, 8),
-            FP2_SCREEN_RAM(1, 9),
-            FP2_SCREEN_RAM(2, 10),
-            FP2_SCREEN_RAM(3, 11),
-            FP2_SCREEN_RAM(4, 12),
-            FP2_SCREEN_RAM(5, 13),
-            FP2_SCREEN_RAM(6, 14),
-            FP2_SCREEN_RAM(7, 15),
-
+            DEF_SCREEN_RAMS_8(0x4000, 8)
             { DT_BITMAP,       0x63e8, 1,  0, NULL, NULL },
             { DT_EXTRA_DATA,   0x8328, 1,  100, NULL, NULL },
-
             { DT_LAST,         0,      0,  0, NULL, NULL },
         }
     },