AxibugEmuOnline/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Mapper/Mapper201.cs

41 lines
1.0 KiB
C#

//////////////////////////////////////////////////////////////////////////
// Mapper201 21-in-1 //
//////////////////////////////////////////////////////////////////////////
using static VirtualNes.MMU;
using BYTE = System.Byte;
namespace VirtualNes.Core
{
public class Mapper201 : Mapper
{
public Mapper201(NES parent) : base(parent)
{
}
public override void Reset()
{
// SetPROM_32K_Bank( 0, 1, PROM_8K_SIZE-2, PROM_8K_SIZE-1 );
SetPROM_16K_Bank(4, 0);
SetPROM_16K_Bank(6, 0);
if (VROM_1K_SIZE != 0)
{
SetVROM_8K_Bank(0);
}
}
//void Mapper201::Write(WORD addr, BYTE data)
public override void Write(ushort addr, byte data)
{
BYTE bank = (byte)((BYTE)addr & 0x03);
if (!((addr & 0x08) != 0))
bank = 0;
SetPROM_32K_Bank(bank);
SetVROM_8K_Bank(bank);
}
}
}