core+platforms, add SMS option to select TMS palette for gfx modes 0-3

This commit is contained in:
kub 2024-01-13 16:31:43 +01:00
parent dca20effa2
commit 214a6c624c
7 changed files with 36 additions and 2 deletions

View file

@ -741,6 +741,10 @@ void PicoFrameStartSMS(void)
Pico.m.dirtyPal = 1;
}
Pico.m.hardware &= ~PMS_HW_TMS;
if (PicoIn.tmsPalette || (PicoIn.AHW & (PAHW_SG|PAHW_SC)))
Pico.m.hardware |= PMS_HW_TMS;
// Copy LCD enable flag for easier handling
Pico.m.hardware &= ~PMS_HW_LCD;
if ((PicoIn.opt & POPT_EN_GG_LCD) && (PicoIn.AHW & PAHW_GG)) {
@ -886,7 +890,7 @@ void PicoDoHighPal555SMS(void)
* hence GG/SMS/TMS can all be handled the same here */
for (j = cnt; j > 0; j--) {
if (!(Pico.video.reg[0] & 0x4)) // fixed palette in TMS modes
spal = (u32 *)tmspal + (PicoIn.AHW & (PAHW_SG|PAHW_SC) ? 16/2:0);
spal = (u32 *)tmspal + (Pico.m.hardware & PMS_HW_TMS ? 16/2:0);
for (i = 0x20/2; i > 0; i--, spal++, dpal++) {
t = *spal;
#if defined(USE_BGR555)