2011-05-28 09:52:32 +00:00
|
|
|
|
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
|
2011-05-28 09:52:32 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
2012-03-22 06:20:10 +00:00
|
|
|
|
case "MAPPER004":
|
2011-06-06 10:27:42 +00:00
|
|
|
|
break;
|
2011-05-28 09:52:32 +00:00
|
|
|
|
case "NES-TBROM": //tecmo world cup soccer (DE) [untested]
|
|
|
|
|
AssertPrg(64); AssertChr(64); AssertVram(0); AssertWram(0);
|
|
|
|
|
AssertBattery(false);
|
|
|
|
|
break;
|
2011-06-08 01:03:32 +00:00
|
|
|
|
case "NES-TEROM": //Adventures of lolo 2
|
|
|
|
|
case "HVC-TEROM": //Adventures of Lolo (J)
|
2011-05-28 09:52:32 +00:00
|
|
|
|
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
|
2011-06-08 01:03:32 +00:00
|
|
|
|
case "HVC-TGROM": //Aa Yakyuu Jinsei Icchokusen (J)
|
2011-05-28 09:52:32 +00:00
|
|
|
|
AssertPrg(128, 256, 512); AssertChr(0); AssertVram(8); AssertWram(0);
|
|
|
|
|
AssertBattery(false);
|
|
|
|
|
break;
|
|
|
|
|
case "NES-TKROM": //kirby's adventure
|
2011-06-08 09:28:38 +00:00
|
|
|
|
case "HVC-TKROM": //Akuma No Shoutaijou (J)
|
2011-05-28 09:52:32 +00:00
|
|
|
|
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
|
2011-06-08 01:03:32 +00:00
|
|
|
|
case "HVC-TLROM": //8 eyes (J)
|
2011-05-28 09:52:32 +00:00
|
|
|
|
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;
|
2011-06-13 09:55:25 +00:00
|
|
|
|
case "HVC-TNROM": //Final Fantasy 3 (J)
|
|
|
|
|
AssertPrg(128, 256, 512); AssertChr(0, 8); AssertVram(0, 8); AssertWram(8);
|
|
|
|
|
break;
|
2011-05-28 09:52:32 +00:00
|
|
|
|
case "NES-TSROM": //super mario bros. 3 (U)
|
|
|
|
|
AssertPrg(128, 256, 512); AssertChr(128, 256); AssertVram(0); AssertWram(8);
|
|
|
|
|
AssertBattery(false);
|
|
|
|
|
break;
|
2012-10-16 22:27:48 +00:00
|
|
|
|
case "UNIF_TSROM":
|
|
|
|
|
Cart.wram_size = 8;
|
|
|
|
|
Cart.wram_battery = false;
|
|
|
|
|
break;
|
2011-06-08 09:28:38 +00:00
|
|
|
|
case "ACCLAIM-MC-ACC": //alien 3 (U)
|
|
|
|
|
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
|
|
|
|
|
AssertBattery(false);
|
|
|
|
|
break;
|
2011-05-28 09:52:32 +00:00
|
|
|
|
case "NES-B4": //batman (U)
|
|
|
|
|
AssertPrg(128); AssertChr(128); AssertVram(0); AssertWram(0);
|
|
|
|
|
AssertBattery(false);
|
|
|
|
|
break;
|
2012-10-16 22:27:48 +00:00
|
|
|
|
|
|
|
|
|
|
2011-05-28 09:52:32 +00:00
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BaseSetup();
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|