diff tools/lib64fmts.c @ 1857:5d9dd663df8d

Fix Pu-239 BFLI / BigFLI support.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 24 Jun 2018 03:04:04 +0300
parents 37cac290ce8b
children 01d7feb9f9ce
line wrap: on
line diff
--- a/tools/lib64fmts.c	Sun Jun 24 03:01:50 2018 +0300
+++ b/tools/lib64fmts.c	Sun Jun 24 03:04:04 2018 +0300
@@ -836,20 +836,14 @@
     const DMC64Image *img, const int bmoffs, const int scroffs,
     const int shift, const int bitmap, const int rasterX, const int rasterY)
 {
-    const int vbb = bmoffs > 0x1fff ? 1 : 0;
+    const int vbb = rasterY < 200 ? 0 : 1;
     const int vbank = (rasterY & 7) + (vbb * 8);
-    const int vbmoffs = bmoffs & 0x1fff;
-    const int vscroffs = scroffs & 0x3ff;
-
     (void) bitmap;
     (void) rasterX;
 
-//    if (rasterY >= 199 && rasterY <= 201)
-//        fprintf(stderr, "vbmoffs=%d, scroffs=%d, vshift=%d, vbitmap=%d, vbank=%d, rasterY=%d: pp=%02x\n", vbmoffs, vscroffs, vshift, vbb, vbank, rasterY, pp);
-
     return dmC64GetGenericMCPixel(
-        img, vbmoffs, vscroffs, shift,
-        vbank, vbb, 0, img->bgcolor);
+        img, bmoffs & 0x1fff, scroffs & 0x3ff,
+        shift, vbank, vbb, 0, img->bgcolor);
 }
 
 
@@ -1546,7 +1540,7 @@
     },
 
     {
-        "bfli", "Big FLI (unpacked)", 0x3bff, 33795, DM_FMT_RD | DM_FMT_BROKEN,
+        "bfli", "Pu-239 Big FLI/BFLI (unpacked)", 0x3bff, 33795, DM_FMT_RD,
         NULL,
         NULL, NULL,
         {
@@ -1556,12 +1550,12 @@
             NULL, NULL,
             fmtGetPixelBFLI,
             {
-                { DO_COPY       , DS_COLOR_RAM   , 0x0001, 0,  0,   0, NULL, NULL },
+                { DO_COPY       , DS_COLOR_RAM   , 0x0001, 0,  0x400 ,   0, NULL, NULL },
                 DEF_SCREEN_RAMS_8(0x0401, 0, 0x400, 0),
-                { DO_COPY       , DS_BITMAP_RAM  , 0x2401, 0,  0x1fff,   0, NULL, NULL },
-                DEF_SCREEN_RAMS_8(0x4401, 8, 0x400, 0),
-                { DO_COPY       , DS_BITMAP_RAM  , 0x6401, 1,  0,   0, NULL, NULL },
-                { DO_LAST       , 0              , 0     , 0,  0,   0, NULL, NULL },
+                { DO_COPY       , DS_BITMAP_RAM  , 0x2401, 0,  0x2000,   0, NULL, NULL },
+                DEF_SCREEN_RAMS_8(0x4401, 8, 0x400, 0x400),
+                { DO_COPY       , DS_BITMAP_RAM  , 0x6401, 1,  0x2000,   0, NULL, NULL },
+                { DO_LAST       , 0              , 0     , 0,  0     ,   0, NULL, NULL },
             }
         },
         NULL