Implement X07 mapper

This commit is contained in:
adelikat 2012-10-19 23:31:42 +00:00
parent 162932797b
commit 90a288afeb
2 changed files with 46 additions and 1 deletions

View File

@ -38,6 +38,50 @@ namespace BizHawk.Emulation.Consoles.Atari._2600
class mX07 : MapperBase
{
int rombank_2k = 0;
public override byte ReadMemory(ushort addr)
{
Address(addr);
if (addr < 0x1000)
{
return base.ReadMemory(addr);
}
else
{
return core.rom[(rombank_2k << 12) + (addr & 0xFFF)];
}
}
public override void WriteMemory(ushort addr, byte value)
{
Address(addr);
if (addr < 0x1000) base.WriteMemory(addr, value);
}
public override void SyncState(Serializer ser)
{
base.SyncState(ser);
ser.Sync("rombank_2k", ref rombank_2k);
}
void Address(ushort addr)
{
if ((addr & 0x180F) == 0x080D)
{
bank((addr & 0xF0) >> 4);
}
else if ((addr & 0x1880) == 0)
{
if ((rombank_2k & 0xE) == 0xE)
{
bank(((addr & 0x40) >> 6) | (rombank_2k & 0xE));
}
}
}
private void bank(int bank)
{
rombank_2k = (bank & 0x0F);
}
}
}

View File

@ -2689,4 +2689,5 @@ sha1:feb6bd37e5d722bd080433587972b980afff5fa5 Zoo Fun (HomeVision) A26 m=4K
sha1:e9cbd1348c7c2e6f7a1ed174554fc144f291debc Ko Avgn - Ntsc - 2009-08-16 A26 m=F4
sha1:080deaf5fe7c0e3b132365bfe9e8003becf3498d Ko Avgn - Ntsc - 2009-08-16 A26 m=F4
sha1:63C12146C183BCCBF05C0044A961DC40790E3212 Pleiades (1983) (UA Limited) (Prototype) A26 m=UA
sha1:86BBE6E62DACF6E5CD771BD9249C4ED51BF60092 dungeon_rc4 A26 m=F4
sha1:86BBE6E62DACF6E5CD771BD9249C4ED51BF60092 dungeon_rc4 A26 m=F4
sha1:C11F59AE0ECD376AF52AE57B5BE8B6F039DE0D0E MegaBoy (X07 Bankswitching Conversion) (2008) (Fred Quimby) A26 m=X07