sms, fix menu background scaling and position

This commit is contained in:
kub 2023-07-06 17:25:47 +00:00
parent 05d2acaeb2
commit a5aae2c39f
2 changed files with 6 additions and 3 deletions

View file

@ -1944,9 +1944,9 @@ PICO_INTERNAL void PicoFrameStart(void)
if (est->rendstatus != rendstatus_old || lines != rendlines) { if (est->rendstatus != rendstatus_old || lines != rendlines) {
rendlines = lines; rendlines = lines;
// mode_change() might reset rendstatus_old by calling SetColorFormat // mode_change() might reset rendstatus_old by calling SetColorFormat
int rendstatus = est->rendstatus;
emu_video_mode_change(loffs, lines, coffs, columns); emu_video_mode_change(loffs, lines, coffs, columns);
rendstatus_old = est->rendstatus & (PDRAW_BORDER_32|PDRAW_INTERLACE| rendstatus_old = rendstatus;
PDRAW_32X_SCALE|PDRAW_SOFTSCALE|PDRAW_32_COLS|PDRAW_30_ROWS);
// mode_change() might clear buffers, redraw needed // mode_change() might clear buffers, redraw needed
est->rendstatus |= PDRAW_SYNC_NEEDED; est->rendstatus |= PDRAW_SYNC_NEEDED;
} }

View file

@ -753,13 +753,14 @@ void PicoFrameStartSMS(void)
} else { } else {
if ((mode & 4) && (Pico.video.reg[0] & 0x20)) { if ((mode & 4) && (Pico.video.reg[0] & 0x20)) {
// SMS mode 4 with 1st column blanked // SMS mode 4 with 1st column blanked
columns = 248;
Pico.est.rendstatus |= PDRAW_SMS_BLANK_1; Pico.est.rendstatus |= PDRAW_SMS_BLANK_1;
columns = 248;
} }
switch (mode) { switch (mode) {
// SMS2 only 224/240 line modes, e.g. Micro Machines // SMS2 only 224/240 line modes, e.g. Micro Machines
case 0x06|0x08: case 0x06|0x08:
Pico.est.rendstatus |= PDRAW_30_ROWS;
loffs = screen_offset = 0; loffs = screen_offset = 0;
lines = 240; lines = 240;
break; break;
@ -775,9 +776,11 @@ void PicoFrameStartSMS(void)
coffs = (FinalizeLineSMS == NULL && columns == 248 ? 8 : 0); coffs = (FinalizeLineSMS == NULL && columns == 248 ? 8 : 0);
if (FinalizeLineSMS != NULL && (PicoIn.opt & POPT_EN_SOFTSCALE)) { if (FinalizeLineSMS != NULL && (PicoIn.opt & POPT_EN_SOFTSCALE)) {
// softscaling always generates 320px, but no scaling in 8bit fast // softscaling always generates 320px, but no scaling in 8bit fast
Pico.est.rendstatus |= PDRAW_SOFTSCALE;
coffs = 0; coffs = 0;
columns = 320; columns = 320;
} else if (!(PicoIn.opt & POPT_DIS_32C_BORDER)) { } else if (!(PicoIn.opt & POPT_DIS_32C_BORDER)) {
Pico.est.rendstatus |= PDRAW_BORDER_32;
line_offset -= coffs; line_offset -= coffs;
coffs = (320-columns) / 2; coffs = (320-columns) / 2;
if (FinalizeLineSMS == NULL) if (FinalizeLineSMS == NULL)