BizHawk/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/MMC3_family/Mapper012.cs

57 lines
1.1 KiB
C#
Raw Normal View History

using System;
using System.IO;
using System.Diagnostics;
namespace BizHawk.Emulation.Consoles.Nintendo
{
public class Mapper012 : MMC3Board_Base
{
public override bool Configure(NES.EDetectionOrigin origin)
{
//analyze board type
switch (Cart.board_type)
{
case "MAPPER012":
break;
default:
return false;
}
BaseSetup();
mmc3.MMC3Type = MMC3.EMMC3Type.MMC3A;
return true;
}
public override void SyncState(Serializer ser)
{
base.SyncState(ser);
ser.Sync("block0", ref block0);
ser.Sync("block1", ref block1);
}
int block0, block1;
public override void WritePRG(int addr, byte value)
{
base.WritePRG(addr, value);
}
public override void WriteEXP(int addr, byte value)
{
base.WriteEXP(addr, value);
block0 = value & 1;
block1 = (value >> 4) & 1;
}
protected override int Get_CHRBank_1K(int addr)
{
int bank_1k = base.Get_CHRBank_1K(addr);
if (addr < 0x1000)
bank_1k += (block0 << 8);
else bank_1k += (block1 << 8);
return bank_1k;
}
}
}