From a694a23736ee228f7ddf6c13f43fef86ee5a8961 Mon Sep 17 00:00:00 2001 From: Nathaniel Walizer Date: Thu, 9 Jan 2025 02:02:37 -0800 Subject: [PATCH] Fix MMC3 bank mirroring --- src/map/mmc3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/map/mmc3.c b/src/map/mmc3.c index 513dd2e..329e098 100644 --- a/src/map/mmc3.c +++ b/src/map/mmc3.c @@ -38,7 +38,7 @@ typedef struct { } mmc3_mapper; static inline uint8_t* mmc3_prg_bank(mmc3_mapper* map, int bank) { - return &map->prg_rom[bank << 13]; + return &map->prg_rom[(bank % map->prg_rom_banks) << 13]; } static inline void mmc3_map_prg(mmc3_mapper* map, @@ -61,7 +61,7 @@ static inline void mmc3_update_prg(mmc3_mapper* map, } static inline uint8_t* mmc3_chr_bank(mmc3_mapper* map, int bank) { - return &map->chr_rom[bank << 10]; + return &map->chr_rom[(bank % map->chr_rom_banks) << 10]; } static inline void mmc3_map_2k_chr(mmc3_mapper* map,