From 14258fca4e18136cbc6e5d59e33c8f4e1ec884a2 Mon Sep 17 00:00:00 2001 From: Nathaniel Walizer Date: Mon, 17 Mar 2025 02:32:14 -0700 Subject: [PATCH] Fix palette indexing bug --- src/f6502.c | 2 +- src/nes.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/f6502.c b/src/f6502.c index e054797..9f7377b 100644 --- a/src/f6502.c +++ b/src/f6502.c @@ -228,7 +228,7 @@ static inline int f6502_write(nes_Memory* mem, pal[16] = pal[20] = pal[24] = pal[28] = 0xFFU; } else { - pal[addr] = val; + pal[addr] = val & 0x3FU; } // Memory-mapped mirroring diff --git a/src/nes.c b/src/nes.c index b7cd574..b2f6d17 100644 --- a/src/nes.c +++ b/src/nes.c @@ -87,8 +87,9 @@ static int nes_hsync(nes* sys, void* plat) { // Emulate the happy part of the backdrop override quirk int pal_idx = ((mem->addr & 0x3F00U) == 0x3F00U) ? (mem->addr & 0x1FU) : 0; + LOGD("Background: %d", pal_idx); // Don't use the rendering palette (masked transparency) - status = nese_frame_start(plat, mem->pal_bank[0x300 + pal_idx]); + status = nese_frame_start(plat, mem->pal_bank[0x300 + pal_idx] & 0x3FU); } break;