diff --git a/BizHawk.Emulation/BizHawk.Emulation.csproj b/BizHawk.Emulation/BizHawk.Emulation.csproj index 277dd7031e..bb14fa5698 100644 --- a/BizHawk.Emulation/BizHawk.Emulation.csproj +++ b/BizHawk.Emulation/BizHawk.Emulation.csproj @@ -173,6 +173,7 @@ + diff --git a/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/Mapper177.cs b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/Mapper177.cs new file mode 100644 index 0000000000..f7706b21d5 --- /dev/null +++ b/BizHawk.Emulation/Consoles/Nintendo/NES/Boards/Mapper177.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BizHawk.Emulation.Consoles.Nintendo +{ + // china + // behavior from fceux + public class Mapper177 : NES.NESBoardBase + { + int prg; + + public override bool Configure(NES.EDetectionOrigin origin) + { + switch (Cart.board_type) + { + case "MAPPER177": + break; + default: + return false; + } + AssertPrg(1024); + SetMirrorType(Cart.pad_h, Cart.pad_v); + return true; + } + + public override void WritePRG(int addr, byte value) + { + prg = value & 0x1f; + + if ((value & 0x20) != 0) + SetMirrorType(EMirrorType.Horizontal); + else + SetMirrorType(EMirrorType.Vertical); + } + + public override byte ReadPRG(int addr) + { + return ROM[addr | prg << 15]; + } + + public override void SyncState(Serializer ser) + { + base.SyncState(ser); + ser.Sync("prg", ref prg); + } + } +}