From 36f56f35308a6ff636c948adce9ea13f29c8af49 Mon Sep 17 00:00:00 2001 From: zeromus Date: Mon, 10 Aug 2015 17:12:36 -0500 Subject: [PATCH] neshawk - fix NES mapper 31 CHR-ROM support #470 --- .../Consoles/Nintendo/NES/Boards/inlnsf.cs | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/inlnsf.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/inlnsf.cs index f788e86df5..6a34c25e5c 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/inlnsf.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/inlnsf.cs @@ -26,34 +26,35 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES switch (Cart.board_type) { case "MAPPER031": - Cart.vram_size = 8; - break; - case "MAPPER0031-00": - AssertVram(8); + AssertChr(0, 8); + if(Cart.chr_size == 0) + Cart.vram_size = 8; + break; + case "MAPPER0031-00": + AssertVram(8); break; default: return false; } SetMirrorType(CalculateMirrorType(Cart.pad_h, Cart.pad_v)); - AssertChr(0); AssertPrg(16, 32, 64, 128, 256, 512, 1024); Cart.wram_size = 0; prg_bank_mask_4k = Cart.prg_size / 4 - 1; - prg[7] = prg_bank_mask_4k; + prg[7] = prg_bank_mask_4k; return true; } - public override void WriteEXP(int addr, byte value) - { - if (addr >= 0x1000) - prg[addr & 0x07] = value & prg_bank_mask_4k; - else - base.WriteEXP(addr, value); - } + public override void WriteEXP(int addr, byte value) + { + if (addr >= 0x1000) + prg[addr & 0x07] = value & prg_bank_mask_4k; + else + base.WriteEXP(addr, value); + } public override byte ReadPRG(int addr) { - return ROM[prg[(addr & 0x7000)>>12] << 12 | addr & 0x0fff]; + return ROM[prg[(addr & 0x7000) >> 12] << 12 | addr & 0x0fff]; } } }