sms, fix menu background scaling and position
authorkub <derkub@gmail.com>
Thu, 6 Jul 2023 17:25:47 +0000 (17:25 +0000)
committerkub <derkub@gmail.com>
Thu, 6 Jul 2023 17:25:47 +0000 (17:25 +0000)
pico/draw.c
pico/mode4.c

index 2dbba56..f6a710c 100644 (file)
@@ -1944,9 +1944,9 @@ PICO_INTERNAL void PicoFrameStart(void)
   if (est->rendstatus != rendstatus_old || lines != rendlines) {\r
     rendlines = lines;\r
     // mode_change() might reset rendstatus_old by calling SetColorFormat\r
+    int rendstatus = est->rendstatus;\r
     emu_video_mode_change(loffs, lines, coffs, columns);\r
-    rendstatus_old = est->rendstatus & (PDRAW_BORDER_32|PDRAW_INTERLACE|\r
-                PDRAW_32X_SCALE|PDRAW_SOFTSCALE|PDRAW_32_COLS|PDRAW_30_ROWS);\r
+    rendstatus_old = rendstatus;\r
     // mode_change() might clear buffers, redraw needed\r
     est->rendstatus |= PDRAW_SYNC_NEEDED;\r
   }\r
index b06ca58..b56cf44 100644 (file)
@@ -753,13 +753,14 @@ void PicoFrameStartSMS(void)
   } else {
     if ((mode & 4) && (Pico.video.reg[0] & 0x20)) {
       // SMS mode 4 with 1st column blanked
-      columns = 248;
       Pico.est.rendstatus |= PDRAW_SMS_BLANK_1;
+      columns = 248;
     }
 
     switch (mode) {
     // SMS2 only 224/240 line modes, e.g. Micro Machines
     case 0x06|0x08:
+        Pico.est.rendstatus |= PDRAW_30_ROWS;
         loffs = screen_offset = 0;
         lines = 240;
         break;
@@ -775,9 +776,11 @@ void PicoFrameStartSMS(void)
   coffs = (FinalizeLineSMS == NULL && columns == 248 ? 8 : 0);
   if (FinalizeLineSMS != NULL && (PicoIn.opt & POPT_EN_SOFTSCALE)) {
     // softscaling always generates 320px, but no scaling in 8bit fast
+    Pico.est.rendstatus |= PDRAW_SOFTSCALE;
     coffs = 0;
     columns = 320;
   } else if (!(PicoIn.opt & POPT_DIS_32C_BORDER)) {
+    Pico.est.rendstatus |= PDRAW_BORDER_32;
     line_offset -= coffs;
     coffs = (320-columns) / 2;
     if (FinalizeLineSMS == NULL)