From d66500ebf90660321eae35a29795123694130b2f Mon Sep 17 00:00:00 2001 From: kub Date: Sat, 18 May 2024 11:27:54 +0200 Subject: [PATCH] quickfixes (needs breakup/cleanup later) --- pico/memory.c | 2 +- pico/mode4.c | 4 ++-- pico/pico.c | 14 +++++++------- pico/videoport.c | 2 +- platform/common/menu_pico.c | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pico/memory.c b/pico/memory.c index eca0ba457..487c5deb5 100644 --- a/pico/memory.c +++ b/pico/memory.c @@ -204,7 +204,7 @@ u32 PicoRead16_floating(u32 a) // faking open bus u32 d = (Pico.m.rotate += 0x41); d ^= (d << 5) ^ (d << 8); - if ((a & 0xff0000) == 0xa10000) d = 0; // MegaCD pulldowns don't work here curiously + if ((a & 0xff0000) == 0xa10000) return d; // MegaCD pulldowns don't work here curiously return (PicoIn.AHW & PAHW_MCD) ? 0x00 : d; // pulldown if MegaCD2 attached } diff --git a/pico/mode4.c b/pico/mode4.c index b396af66a..eada9741f 100644 --- a/pico/mode4.c +++ b/pico/mode4.c @@ -174,7 +174,7 @@ static void ParseSpritesM4(int scanline) if (zoomed) h *= 2; sprite_base = (pv->reg[6] & 4) << (13-2-1); - m = 0; + m = pv->status & SR_C; memset(sprites_map, 0, sizeof(sprites_map)); for (i = s = 0; i < 64; i++) { @@ -448,7 +448,7 @@ static void ParseSpritesTMS(int scanline) if (zoomed) h *= 2; sprite_base = (pv->reg[6] & 0x7) << 11; - m = 0; + m = pv->status & SR_C; memset(sprites_map, 0, sizeof(sprites_map)); /* find sprites on this scanline */ for (i = s = 0; i < 32; i++) diff --git a/pico/pico.c b/pico/pico.c index d913e0822..0e7e1d8fc 100644 --- a/pico/pico.c +++ b/pico/pico.c @@ -75,13 +75,6 @@ void PicoPower(void) // my MD1 VA6 console has this in IO PicoMem.ioports[1] = PicoMem.ioports[2] = PicoMem.ioports[3] = 0xff; - // powerup default VDP register values from TMSS BIOS - Pico.video.reg[0] = Pico.video.reg[1] = 0x04; - Pico.video.reg[0xc] = 0x81; - Pico.video.reg[0xf] = 0x02; - SATaddr = 0x0000; - SATmask = ~0x3ff; - Pico.video.hint_irq = (PicoIn.AHW & PAHW_PICO ? 5 : 4); if (PicoIn.AHW & PAHW_MCD) @@ -91,6 +84,13 @@ void PicoPower(void) PicoPower32x(); PicoReset(); + + // powerup default VDP register values from TMSS BIOS + Pico.video.reg[0] = Pico.video.reg[1] = 0x04; + Pico.video.reg[0xc] = 0x81; + Pico.video.reg[0xf] = 0x02; + SATaddr = 0x0000; + SATmask = ~0x3ff; } PICO_INTERNAL void PicoDetectRegion(void) diff --git a/pico/videoport.c b/pico/videoport.c index 0a05348d7..4adf7a7ed 100644 --- a/pico/videoport.c +++ b/pico/videoport.c @@ -1180,7 +1180,7 @@ void PicoVideoReset(void) Pico.m.dirtyPal = 1; PicoDrawBgcDMA(NULL, 0, 0, 0, 0); - PicoVideoFIFOMode(0, 1); + PicoVideoFIFOMode(Pico.video.reg[1]&0x40, Pico.video.reg[12]&1); } void PicoVideoCacheSAT(int load) diff --git a/platform/common/menu_pico.c b/platform/common/menu_pico.c index 00f2aa690..a4abd7a6a 100644 --- a/platform/common/menu_pico.c +++ b/platform/common/menu_pico.c @@ -1144,7 +1144,7 @@ static void draw_frame_credits(void) static const char credits[] = "PicoDrive v" VERSION "\n" - "(c) notaz, 2006-2013; irixxxx, 2018-2023\n\n" + "(c) notaz, 2006-2013; irixxxx, 2018-2024\n\n" "Credits:\n" "fDave: initial code\n" #ifdef EMU_C68K