From 9ca2d514b76d255b65c97643bb38690dc6699a77 Mon Sep 17 00:00:00 2001 From: 0kmg <9137159+0kmg@users.noreply.github.com> Date: Sat, 25 Sep 2021 11:42:28 -0800 Subject: [PATCH] bus/nes: Fixed hardwired 4-screen mirroring for MMC3 games. (#8620) - Fixes most graphics glitches in Rad Racer II and unlicensed Jurassic Boy 2, Rocman X carts. --- hash/nes.xml | 5 ++++- src/devices/bus/nes/mmc3.cpp | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hash/nes.xml b/hash/nes.xml index b03f6a8d6da..909f15cb5a0 100644 --- a/hash/nes.xml +++ b/hash/nes.xml @@ -30488,7 +30488,7 @@ license:CC0 - + Rad Racer II (USA) 1990 Square @@ -53095,6 +53095,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx + @@ -53129,6 +53130,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx + @@ -53146,6 +53148,7 @@ preliminary proto for the PAL version, still running on NTSC systems) or the gfx + diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp index d6f7f37dc4a..dfc57f59b71 100644 --- a/src/devices/bus/nes/mmc3.cpp +++ b/src/devices/bus/nes/mmc3.cpp @@ -283,7 +283,8 @@ void nes_txrom_device::txrom_write(offs_t offset, uint8_t data) break; case 0x2000: - set_nt_mirroring(BIT(data, 0) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); + if (m_mirroring != PPU_MIRROR_4SCREEN) + set_nt_mirroring(BIT(data, 0) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); break; case 0x2001: