From a8a0d35a97de874959cee6c5621edccd10785622 Mon Sep 17 00:00:00 2001 From: goyuken Date: Sun, 11 Jan 2015 23:37:17 +0000 Subject: [PATCH] coolboy 400 in 1: fix some games --- .../Consoles/Nintendo/NES/Boards/CoolBoy.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/CoolBoy.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/CoolBoy.cs index b3cb891892..979abfbdd9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/CoolBoy.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/CoolBoy.cs @@ -49,6 +49,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (!exp[3].Bit(7)) { exp[addr & 3] = value; + /* + if (exp[3].Bit(7)) + { + Console.WriteLine("EXP Write Protect Activated"); + } + if (exp[3].Bit(4)) + { + Console.WriteLine("Funky Mode Active"); + } + */ } } } @@ -89,7 +99,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES int v = base.Get_PRGBank_8K(addr); int ret = baseaddr << shift | v & mask; - if (exp[3].Bit(0)) + if (exp[3].Bit(4)) { ret |= exp[3] & (0x0e ^ exp[1] & 2); } @@ -113,5 +123,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES base.SyncState(ser); ser.Sync("exp", ref exp, false); } + + public override void NESSoftReset() + { + Array.Clear(exp, 0, 4); + } } }