From 62057f60cb3f7f0dde2fe75e7c3616b8d65156eb Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Sun, 23 Oct 2016 20:48:51 -0400 Subject: [PATCH] Add files via upload --- .../Nintendo/NES/Boards/MMC3_family/MMC3.cs | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/MMC3.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/MMC3.cs index c83c17fd24..f0dcabb7e7 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/MMC3.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/MMC3_family/MMC3.cs @@ -291,22 +291,29 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public virtual void AddressPPU(int addr) { - int a12 = (addr >> 12) & 1; - bool rising_edge = (a12 == 1 && a12_old == 0); - if (rising_edge) + // see https://forums.nesdev.com/viewtopic.php?f=3&t=11361&start=60 + // apparently mmc3 can't see internal pattern tables + // fixes Recca + if (addr<0x3F00) { - if (separator_counter > 0) + int a12 = (addr >> 12) & 1; + bool rising_edge = (a12 == 1 && a12_old == 0); + if (rising_edge) { - separator_counter = 15; + if (separator_counter > 0) + { + separator_counter = 15; + } + else + { + separator_counter = 15; + irq_countdown = 6; + } } - else - { - separator_counter = 15; - irq_countdown = 6; - } - } - a12_old = a12; + a12_old = a12; + } + } }