Fix with proper mirroring mode

This commit is contained in:
alyosha-tas 2016-09-15 18:05:19 -04:00 committed by GitHub
parent ec582fb35c
commit f3b996b2ba
1 changed files with 12 additions and 11 deletions

View File

@ -1,5 +1,5 @@
using BizHawk.Common; using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Nintendo.NES namespace BizHawk.Emulation.Cores.Nintendo.NES
{ {
public sealed class Mapper142 : NES.NESBoardBase public sealed class Mapper142 : NES.NESBoardBase
@ -22,24 +22,25 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
default: default:
return false; return false;
} }
SetMirrorType(EMirrorType.Horizontal);
lastBank = Cart.prg_size / 8 - 1; lastBank = Cart.prg_size / 8 - 1;
return true; return true;
} }
public override byte ReadWRAM(int addr) public override byte ReadWRAM(int addr)
{ {
return ROM[(reg[4] << 13) + (addr & 0x1FFF)]; return ROM[(reg[4] << 13) + (addr & 0x1FFF)];
} }
public override byte ReadPRG(int addr) public override byte ReadPRG(int addr)
{ {
if (addr < 0x2000) { return ROM[(reg[1] << 13) + (addr & 0x1FFF)]; }
if (addr < 0x4000) { return ROM[(reg[2] << 13) + (addr & 0x1FFF)]; } if (addr < 0x2000) { return ROM[(reg[1] << 13) + (addr & 0x1FFF)]; }
if (addr < 0x6000) { return ROM[(reg[3] << 13) + (addr & 0x1FFF)]; } if (addr < 0x4000) { return ROM[(reg[2] << 13) + (addr & 0x1FFF)]; }
if (addr < 0x6000) { return ROM[(reg[3] << 13) + (addr & 0x1FFF)]; }
return ROM[(lastBank << 13) + (addr & 0x1FFF)];
return ROM[(lastBank << 13) + (addr & 0x1FFF)];
} }
public override void WriteEXP(int addr, byte value) public override void WriteEXP(int addr, byte value)