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

115 lines
3.3 KiB
C#
Raw Normal View History

using System;
using System.IO;
using System.Diagnostics;
//http://wiki.nesdev.com/w/index.php/TxROM
//read some background info on namco 108 and DxROM boards here
namespace BizHawk.Emulation.Consoles.Nintendo
{
public class TxROM : MMC3Board_Base
{
public override void WritePRG(int addr, byte value)
{
base.WritePRG(addr, value);
2011-06-09 22:59:54 +00:00
SetMirrorType(mmc3.MirrorType); //often redundant, but gets the job done
}
public override byte[] SaveRam
{
get
{
if (!Cart.wram_battery) return null;
return WRAM;
//some boards have a wram that is backed-up or not backed-up. need to handle that somehow
//(nestopia splits it into NVWRAM and WRAM but i didnt like that at first.. but it may player better with this architecture)
}
}
public override void SyncState(Serializer ser)
{
base.SyncState(ser);
}
public override bool Configure(NES.EDetectionOrigin origin)
{
//analyze board type
switch (Cart.board_type)
{
2012-06-23 08:52:12 +00:00
case "MAPPER116_HACKY":
break;
case "MAPPER004":
2011-06-06 10:27:42 +00:00
break;
case "NES-TBROM": //tecmo world cup soccer (DE) [untested]
AssertPrg(64); AssertChr(64); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-TEROM": //Adventures of lolo 2
case "HVC-TEROM": //Adventures of Lolo (J)
AssertPrg(32); AssertChr(32); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-TFROM": //legacy of the wizard
AssertPrg(128); AssertChr(32, 64); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-TGROM": //mega man 4 & 6
case "HVC-TGROM": //Aa Yakyuu Jinsei Icchokusen (J)
AssertPrg(128, 256, 512); AssertChr(0); AssertVram(8); AssertWram(0);
AssertBattery(false);
break;
case "NES-TKROM": //kirby's adventure
case "HVC-TKROM": //Akuma No Shoutaijou (J)
AssertPrg(128, 256, 512); AssertChr(128, 256); AssertVram(0); AssertWram(8);
break;
case "NES-TLROM": //mega man 3
2011-08-29 00:38:29 +00:00
case "KONAMI-TLROM": //Super C
case "HVC-TLROM": //8 eyes (J)
AssertPrg(128, 256, 512); AssertChr(128, 256); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-TL1ROM": //Double dragon 2
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-TL2ROM": //batman (U) ?
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "HVC-TNROM": //Final Fantasy 3 (J)
AssertPrg(128, 256, 512); AssertChr(0, 8); AssertVram(0, 8); AssertWram(8);
break;
case "NES-TSROM": //super mario bros. 3 (U)
AssertPrg(128, 256, 512); AssertChr(128, 256); AssertVram(0); AssertWram(8);
AssertBattery(false);
break;
case "UNIF_TSROM":
Cart.wram_size = 8;
Cart.wram_battery = false;
break;
case "ACCLAIM-MC-ACC": //alien 3 (U)
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
case "NES-B4": //batman (U)
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
AssertBattery(false);
break;
default:
return false;
}
BaseSetup();
return true;
}
}
}