From 7fc3777e450fcc6576c591e4f94cc24f0c6635c1 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 9 Aug 2015 19:42:47 -0400 Subject: [PATCH] Nes - fix mapper 243 chr handling, we were correctly doing what was documented in the disch docs, but Nintendulator and FCEUX did something slightly different that is working. Changed to do against the docs and do what working emulators do --- .../Consoles/Nintendo/NES/Boards/Mapper243.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper243.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper243.cs index 169cfc06c3..fde299f49f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper243.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper243.cs @@ -126,7 +126,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES { if (addr < 0x2000) { - int chr_bank = regs[4] | (regs[6] << 1) | (regs[2] << 3); + // FCEUX and Nintendulator do HLDD instead of HDDL + // THis pattern works and HDDL does not, Seems like the disch docs wrong so we are going with what works + int chr_bank = regs[4] << 2 | (regs[6]) | (regs[2] << 3); + return VROM[((chr_bank & chr_bank_mask_8k) * 0x2000) + addr]; } else