AxibugEmuOnline/AxibugEmuOnline.Client/Assets/MyNes.Core/Mapper078.cs

34 lines
885 B
C#
Raw Normal View History

2024-07-03 18:22:22 +08:00
namespace MyNes.Core
2024-07-03 18:15:28 +08:00
{
2024-07-03 18:22:22 +08:00
[BoardInfo("Irem 74HC161/32", 78)]
internal class Mapper078 : Board
{
private bool mirroring_mode_single;
2024-07-03 18:15:28 +08:00
2024-07-03 18:22:22 +08:00
internal override void HardReset()
{
base.HardReset();
Switch16KPRG(PRG_ROM_16KB_Mask, PRGArea.AreaC000);
mirroring_mode_single = false;
if (base.BoardType == "JALECO-JF-16")
{
mirroring_mode_single = true;
}
}
2024-07-03 18:15:28 +08:00
2024-07-03 18:22:22 +08:00
internal override void WritePRG(ref ushort address, ref byte data)
{
Switch08KCHR((data >> 4) & 0xF);
Switch16KPRG(data & 7, PRGArea.Area8000);
if (mirroring_mode_single)
{
Switch01KNMTFromMirroring(((data & 8) == 8) ? Mirroring.OneScB : Mirroring.OneScA);
}
else
{
Switch01KNMTFromMirroring(((data & 8) == 8) ? Mirroring.Vert : Mirroring.Horz);
}
}
}
2024-07-03 15:40:13 +08:00
}