AxibugEmuOnline/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper034.cs
2024-07-03 18:22:22 +08:00

51 lines
1.1 KiB
C#

namespace MyNes.Core
{
[BoardInfo("BxROM/NINA-001", 34)]
internal class Mapper034 : Board
{
private bool BxROM;
private byte writeData;
internal override void HardReset()
{
base.HardReset();
BxROM = true;
if (base.BoardType.Contains("NINA"))
{
BxROM = false;
}
}
internal override void WriteSRM(ref ushort address, ref byte data)
{
base.WriteSRM(ref address, ref data);
if (!BxROM)
{
switch (address)
{
case 32765:
Switch32KPRG(data, PRGArea.Area8000);
break;
case 32766:
Switch04KCHR(data, CHRArea.Area0000);
break;
case 32767:
Switch04KCHR(data, CHRArea.Area1000);
break;
}
}
}
internal override void WritePRG(ref ushort address, ref byte data)
{
if (BxROM)
{
ReadPRG(ref address, out writeData);
writeData &= data;
Switch32KPRG(writeData, PRGArea.Area8000);
}
}
}
}