core vdp, fix palette in layer A window rendering
authorkub <derkub@gmail.com>
Sun, 16 Feb 2025 20:10:24 +0000 (21:10 +0100)
committerkub <derkub@gmail.com>
Sun, 16 Feb 2025 20:10:24 +0000 (21:10 +0100)
pico/draw.c

index fde65e7..b62333c 100644 (file)
@@ -643,12 +643,12 @@ static void DrawWindow(int tstart, int tend, int prio, int sh,
       if (code==blank) continue;\r
 \r
       dx = 8 + (tilex << 3);\r
-\r
       DrawTile(~0,yshift,ymask,code,0);\r
     }\r
   }\r
   else\r
   {\r
+    sh <<= 6;\r
     for (; tilex < tend; tilex++)\r
     {\r
       int dx, pal;\r
@@ -659,18 +659,15 @@ static void DrawWindow(int tstart, int tend, int prio, int sh,
         continue;\r
       }\r
 \r
-      pal=((code>>9)&0x30);\r
-\r
       if (prio) {\r
         int *zb = (int *)(est->HighCol+8+(tilex<<3));\r
         *zb++ &= 0x7f7f7f7f;\r
         *zb   &= 0x7f7f7f7f;\r
-      } else {\r
-        pal |= 0x80;\r
       }\r
       if(code==blank) continue;\r
-      dx = 8 + (tilex << 3);\r
 \r
+      sh = (sh & ~0x80) | (prio << 7);\r
+      dx = 8 + (tilex << 3);\r
       DrawTile(~0,yshift,ymask,code,0);\r
     }\r
   }\r