Atari 2600 - make MapperBase abstract and make HardReset() abstract since we need implementations to properly reset variables (we can't get rid of hard reset so easily, since HardReset is the mechanism that multi-cart roms use

This commit is contained in:
adelikat 2020-03-18 15:58:53 -05:00
parent db6bbe22bb
commit f10b51558b
31 changed files with 12 additions and 36 deletions

View File

@ -2,9 +2,9 @@
namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
public class MapperBase
public abstract class MapperBase
{
public MapperBase(Atari2600 core)
protected MapperBase(Atari2600 core)
{
Core = core;
}
@ -33,11 +33,9 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
}
public virtual void HardReset()
{
}
public abstract void HardReset();
// This is here purely for mapper 3E because it needs the 13th bit to determine bankswitching (but only receives the first 12 on read memory)
public bool Bit13 { get; set; }
public bool Bit13 { protected get; set; }
}
}

View File

@ -38,7 +38,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_bank4K = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -6,6 +6,8 @@
{
}
public override void HardReset() { }
public override byte ReadMemory(ushort addr)
{
if (addr < 0x1000)

View File

@ -48,7 +48,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_ramBank1K = 0;
_hasRam = false;
_ram = new byte[256 * 1024];
base.HardReset();
}
public override byte ReadMemory(ushort addr)

View File

@ -37,7 +37,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_lowBank2K = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr)

View File

@ -126,8 +126,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_sliceHigh = 0;
_sliceLow = 0;
_sliceMiddle = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -6,6 +6,8 @@
{
}
public override void HardReset() { }
public override byte ReadMemory(ushort addr)
{
if (addr < 0x1000)

View File

@ -155,7 +155,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_elapsedCycles = 0;
InitializeSettings();
base.HardReset();
}
public override void SyncState(Serializer ser)

View File

@ -203,8 +203,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_column = 0;
_funcKey = false;
_shiftKey = false;
base.HardReset();
}
public override void SyncState(Serializer ser)

View File

@ -34,7 +34,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_ram = new byte[1024];
base.HardReset();
}
public override byte ReadMemory(ushort addr)

View File

@ -276,8 +276,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_currentRandomVal = 0;
_elapsedCycles = 85;
_fractionalClocks = 0;
base.HardReset();
}
public override void ClockCpu()

View File

@ -65,8 +65,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_currentRandomVal = 0;
_elapsedCycles = 85;
_fractionalClocks = 0;
base.HardReset();
}
public override void ClockCpu()

View File

@ -45,7 +45,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_toggle1 = 0;
_toggle2 = 0;
_toggle3 = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -54,7 +54,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
_ramBank1Toggle = 0;
_ram = new byte[2048];
_enableRam0 = false;
base.HardReset();
}
public override byte[] CartRam => _ram;

View File

@ -28,7 +28,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_toggle = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -29,7 +29,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_bank4K = 0;
_ram = new byte[128];
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -34,7 +34,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_bank = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -26,7 +26,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_toggle = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -28,7 +28,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_bank4K = 0;
_ram = new byte[128];
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -28,7 +28,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_toggle = 0;
base.HardReset();
}
private byte ReadMem(ushort addr, bool peek)

View File

@ -28,7 +28,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_bank4K = 0;
_ram = new byte[128];
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -36,7 +36,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_bank4K = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -21,7 +21,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_bank4K = 0;
_ram = new byte[128];
base.HardReset();
}
public override void SyncState(Serializer ser)

View File

@ -25,7 +25,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_bank4K = 1;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -35,7 +35,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_toggle = 0;
_ram = new byte[256];
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -30,7 +30,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
_bank4K = 0;
_ram = new byte[256];
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -60,6 +60,8 @@
{
}
public override void HardReset() { }
public override byte ReadMemory(ushort addr)
{
if (addr < 0x1000)

View File

@ -64,5 +64,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{
throw new NotImplementedException();
}
public override void HardReset() { }
}
}

View File

@ -25,7 +25,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_bank4K = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr)

View File

@ -28,7 +28,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_toggle = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);

View File

@ -50,7 +50,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
public override void HardReset()
{
_romBank2K = 0;
base.HardReset();
}
public override byte ReadMemory(ushort addr) => ReadMem(addr, false);