Atari 2600 - implement hard reset, also fix a few missing Dispose calls in some mappers that utilize ram
This commit is contained in:
parent
bba2e254d3
commit
8a239b53bc
|
@ -94,7 +94,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
CoreComm.MemoryCallbackSystem.CallExecute(addr);
|
CoreComm.MemoryCallbackSystem.CallExecute(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HardReset()
|
public void RebootCore()
|
||||||
{
|
{
|
||||||
// Regenerate mapper here to make sure its state is entirely clean
|
// Regenerate mapper here to make sure its state is entirely clean
|
||||||
switch (this._game.GetOptionsDict()["m"])
|
switch (this._game.GetOptionsDict()["m"])
|
||||||
|
@ -230,6 +230,28 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
_mapper.GetType());
|
_mapper.GetType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HardReset()
|
||||||
|
{
|
||||||
|
Ram = new byte[128];
|
||||||
|
_mapper.HardReset();
|
||||||
|
|
||||||
|
Cpu = new MOS6502X
|
||||||
|
{
|
||||||
|
ReadMemory = this.ReadMemory,
|
||||||
|
WriteMemory = this.WriteMemory,
|
||||||
|
PeekMemory = this.PeekMemory,
|
||||||
|
DummyReadMemory = this.ReadMemory,
|
||||||
|
OnExecFetch = this.ExecFetch
|
||||||
|
};
|
||||||
|
|
||||||
|
_tia.Reset();
|
||||||
|
|
||||||
|
M6532 = new M6532(this);
|
||||||
|
Cpu.PC = (ushort)(ReadMemory(0x1FFC) + (ReadMemory(0x1FFD) << 8)); // set the initial PC
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool _hardResetSignal;
|
||||||
|
|
||||||
public void FrameAdvance(bool render, bool rendersound)
|
public void FrameAdvance(bool render, bool rendersound)
|
||||||
{
|
{
|
||||||
_frame++;
|
_frame++;
|
||||||
|
@ -251,6 +273,13 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
_mapper.ClockCpu();
|
_mapper.ClockCpu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_hardResetSignal)
|
||||||
|
{
|
||||||
|
HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
_hardResetSignal = Controller["Power"];
|
||||||
|
|
||||||
if (_islag)
|
if (_islag)
|
||||||
{
|
{
|
||||||
LagCount++;
|
LagCount++;
|
||||||
|
|
|
@ -60,7 +60,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine("Game uses mapper " + game.GetOptionsDict()["m"]);
|
Console.WriteLine("Game uses mapper " + game.GetOptionsDict()["m"]);
|
||||||
HardReset();
|
RebootCore();
|
||||||
}
|
}
|
||||||
|
|
||||||
public string SystemId { get { return "A26"; } }
|
public string SystemId { get { return "A26"; } }
|
||||||
|
@ -104,7 +104,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
"P1 Up", "P1 Down", "P1 Left", "P1 Right", "P1 Button",
|
"P1 Up", "P1 Down", "P1 Left", "P1 Right", "P1 Button",
|
||||||
"P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 Button",
|
"P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 Button",
|
||||||
"Reset", "Select"
|
"Reset", "Select", "Power"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,5 +26,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
public virtual void Dispose() { }
|
public virtual void Dispose() { }
|
||||||
|
|
||||||
public virtual void ClockCpu() { }
|
public virtual void ClockCpu() { }
|
||||||
|
|
||||||
|
public virtual void HardReset() { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _bank4K;
|
private int _bank4K;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank_4k", ref _bank4K);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4K = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -59,12 +71,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank_4k", ref _bank4K);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
switch (addr & 0x1840)
|
switch (addr & 0x1840)
|
||||||
|
|
|
@ -36,6 +36,15 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
ser.Sync("hasRam", ref _hasRam);
|
ser.Sync("hasRam", ref _hasRam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_lowbank_2K = 0;
|
||||||
|
_rambank_1K = 0;
|
||||||
|
_hasRam = false;
|
||||||
|
_ram = new ByteBuffer(256 * 1024);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
public override void Dispose()
|
public override void Dispose()
|
||||||
{
|
{
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
|
|
|
@ -23,12 +23,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
internal class m3F : MapperBase
|
internal class m3F : MapperBase
|
||||||
{
|
{
|
||||||
private int _lowbank_2K;
|
private int _lowbank2K;
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
public override void SyncState(Serializer ser)
|
||||||
{
|
{
|
||||||
base.SyncState(ser);
|
base.SyncState(ser);
|
||||||
ser.Sync("lowbank_2k", ref _lowbank_2K);
|
ser.Sync("lowbank_2k", ref _lowbank2K);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_lowbank2K = 0;
|
||||||
|
base.HardReset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte ReadMemory(ushort addr)
|
public override byte ReadMemory(ushort addr)
|
||||||
|
@ -40,7 +46,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
if (addr < 0x17FF) // Low 2k Bank
|
if (addr < 0x17FF) // Low 2k Bank
|
||||||
{
|
{
|
||||||
return Core.Rom[(_lowbank_2K << 11) + (addr & 0x07FF)];
|
return Core.Rom[(_lowbank2K << 11) + (addr & 0x07FF)];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr < 0x2000) // High bank fixed to last 2k of ROM
|
if (addr < 0x2000) // High bank fixed to last 2k of ROM
|
||||||
|
@ -62,11 +68,11 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
if ((value << 11) < Core.Rom.Length)
|
if ((value << 11) < Core.Rom.Length)
|
||||||
{
|
{
|
||||||
_lowbank_2K = value;
|
_lowbank2K = value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_lowbank_2K = value & (Core.Rom.Length >> 11);
|
_lowbank2K = value & (Core.Rom.Length >> 11);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,26 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank4k", ref _bank4k);
|
||||||
|
ser.Sync("ram", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4k = 0;
|
||||||
|
_ram = new ByteBuffer(6144);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -46,19 +66,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
return ReadMem(addr, true);
|
return ReadMem(addr, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank4k", ref _bank4k);
|
|
||||||
ser.Sync("ram", ref _ram);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose()
|
|
||||||
{
|
|
||||||
base.Dispose();
|
|
||||||
_ram.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF8)
|
if (addr == 0x1FF8)
|
||||||
|
|
|
@ -18,7 +18,25 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
internal class mCV: MapperBase
|
internal class mCV: MapperBase
|
||||||
{
|
{
|
||||||
private ByteBuffer _auxRam = new ByteBuffer(1024);
|
private ByteBuffer _ram = new ByteBuffer(1024);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("aux_ram", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_ram = new ByteBuffer(1024);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
public override byte ReadMemory(ushort addr)
|
public override byte ReadMemory(ushort addr)
|
||||||
{
|
{
|
||||||
|
@ -29,7 +47,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
if (addr < 0x1400)
|
if (addr < 0x1400)
|
||||||
{
|
{
|
||||||
return _auxRam[(addr & 0x3FF)];
|
return _ram[(addr & 0x3FF)];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr >= 0x1800 && addr < 0x2000)
|
if (addr >= 0x1800 && addr < 0x2000)
|
||||||
|
@ -53,14 +71,8 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
else if (addr >= 0x1400 && addr < 0x1800)
|
else if (addr >= 0x1400 && addr < 0x1800)
|
||||||
{
|
{
|
||||||
_auxRam[(addr & 0x3FF)] = value;
|
_ram[(addr & 0x3FF)] = value;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("aux_ram", ref _auxRam);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -427,6 +427,12 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
ser.Sync("RandomNumber", ref RandomNumber);
|
ser.Sync("RandomNumber", ref RandomNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateMusicModeDataFetchers()
|
private void UpdateMusicModeDataFetchers()
|
||||||
{
|
{
|
||||||
// Calculate the number of cycles since the last update
|
// Calculate the number of cycles since the last update
|
||||||
|
|
|
@ -29,6 +29,22 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
private int _toggle2;
|
private int _toggle2;
|
||||||
private int _toggle3;
|
private int _toggle3;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle1", ref _toggle1);
|
||||||
|
ser.Sync("toggle2", ref _toggle2);
|
||||||
|
ser.Sync("toggle3", ref _toggle3);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle1 = 0;
|
||||||
|
_toggle2 = 0;
|
||||||
|
_toggle3 = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -78,14 +94,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle1", ref _toggle1);
|
|
||||||
ser.Sync("toggle2", ref _toggle2);
|
|
||||||
ser.Sync("toggle3", ref _toggle3);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
switch (addr)
|
switch (addr)
|
||||||
|
|
|
@ -29,12 +29,39 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
internal class mE7 : MapperBase
|
internal class mE7 : MapperBase
|
||||||
{
|
{
|
||||||
private int _rombank_1K;
|
private int _rombank1K;
|
||||||
private int _rambank1Toggle;
|
private int _rambank1Toggle;
|
||||||
private ByteBuffer _rambank0 = new ByteBuffer(1024);
|
private ByteBuffer _rambank0 = new ByteBuffer(1024);
|
||||||
private ByteBuffer _rambank1 = new ByteBuffer(1024);
|
private ByteBuffer _rambank1 = new ByteBuffer(1024);
|
||||||
private bool _enableRam0;
|
private bool _enableRam0;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _rombank1K);
|
||||||
|
ser.Sync("rambank0", ref _rambank0);
|
||||||
|
ser.Sync("rambank1", ref _rambank1);
|
||||||
|
ser.Sync("EnableRam0", ref _enableRam0);
|
||||||
|
ser.Sync("rambank1_toggle", ref _rambank1Toggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_rombank1K = 0;
|
||||||
|
_rambank1Toggle = 0;
|
||||||
|
_rambank0 = new ByteBuffer(1024);
|
||||||
|
_rambank1 = new ByteBuffer(1024);
|
||||||
|
_enableRam0 = false;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_rambank0.Dispose();
|
||||||
|
_rambank1.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (addr < 0x1000)
|
if (addr < 0x1000)
|
||||||
|
@ -59,7 +86,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
return _rambank0[addr & 0x3FF];
|
return _rambank0[addr & 0x3FF];
|
||||||
}
|
}
|
||||||
|
|
||||||
return Core.Rom[(_rombank_1K * 0x800) + (addr & 0x7FF)];
|
return Core.Rom[(_rombank1K * 0x800) + (addr & 0x7FF)];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr < 0x1900) // Ram 1 Read port
|
if (addr < 0x1900) // Ram 1 Read port
|
||||||
|
@ -110,40 +137,30 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _rombank_1K);
|
|
||||||
ser.Sync("rambank0", ref _rambank0);
|
|
||||||
ser.Sync("rambank1", ref _rambank1);
|
|
||||||
ser.Sync("EnableRam0", ref _enableRam0);
|
|
||||||
ser.Sync("rambank1_toggle", ref _rambank1Toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
switch (addr)
|
switch (addr)
|
||||||
{
|
{
|
||||||
case 0x1FE0:
|
case 0x1FE0:
|
||||||
_rombank_1K = 0;
|
_rombank1K = 0;
|
||||||
break;
|
break;
|
||||||
case 0x1FE1:
|
case 0x1FE1:
|
||||||
_rombank_1K = 1;
|
_rombank1K = 1;
|
||||||
break;
|
break;
|
||||||
case 0x1FE2:
|
case 0x1FE2:
|
||||||
_rombank_1K = 2;
|
_rombank1K = 2;
|
||||||
break;
|
break;
|
||||||
case 0x1FE3:
|
case 0x1FE3:
|
||||||
_rombank_1K = 3;
|
_rombank1K = 3;
|
||||||
break;
|
break;
|
||||||
case 0x1FE4:
|
case 0x1FE4:
|
||||||
_rombank_1K = 4;
|
_rombank1K = 4;
|
||||||
break;
|
break;
|
||||||
case 0x1FE5:
|
case 0x1FE5:
|
||||||
_rombank_1K = 5;
|
_rombank1K = 5;
|
||||||
break;
|
break;
|
||||||
case 0x1FE6:
|
case 0x1FE6:
|
||||||
_rombank_1K = 6;
|
_rombank1K = 6;
|
||||||
break;
|
break;
|
||||||
case 0x1FE7:
|
case 0x1FE7:
|
||||||
_enableRam0 = true;
|
_enableRam0 = true;
|
||||||
|
|
|
@ -16,6 +16,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _toggle;
|
private int _toggle;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _toggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -50,12 +62,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FE0) _toggle = 0;
|
if (addr == 0x1FE0) _toggle = 0;
|
||||||
|
|
|
@ -12,6 +12,26 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
private int _bank4k;
|
private int _bank4k;
|
||||||
private ByteBuffer _ram = new ByteBuffer(128);
|
private ByteBuffer _ram = new ByteBuffer(128);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank4k", ref _bank4k);
|
||||||
|
ser.Sync("auxRam", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4k = 0;
|
||||||
|
_ram = new ByteBuffer(128);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -61,19 +81,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank4k", ref _bank4k);
|
|
||||||
ser.Sync("auxRam", ref _ram);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose()
|
|
||||||
{
|
|
||||||
base.Dispose();
|
|
||||||
_ram.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FE0) _bank4k = 0;
|
if (addr == 0x1FE0) _bank4k = 0;
|
||||||
|
|
|
@ -22,6 +22,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _bank;
|
private int _bank;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank", ref _bank);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -62,12 +74,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank", ref _bank);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Increment()
|
private void Increment()
|
||||||
{
|
{
|
||||||
_bank++;
|
_bank++;
|
||||||
|
|
|
@ -14,6 +14,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _toggle;
|
private int _toggle;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _toggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -48,12 +60,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF4) _toggle = 0;
|
if (addr == 0x1FF4) _toggle = 0;
|
||||||
|
|
|
@ -11,6 +11,26 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
private int _bank4k;
|
private int _bank4k;
|
||||||
private ByteBuffer _ram = new ByteBuffer(128);
|
private ByteBuffer _ram = new ByteBuffer(128);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _bank4k);
|
||||||
|
ser.Sync("auxRam", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4k = 0;
|
||||||
|
_ram = new ByteBuffer(128);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -59,19 +79,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _bank4k);
|
|
||||||
ser.Sync("auxRam", ref _ram);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose()
|
|
||||||
{
|
|
||||||
base.Dispose();
|
|
||||||
_ram.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF4) _bank4k = 0;
|
if (addr == 0x1FF4) _bank4k = 0;
|
||||||
|
|
|
@ -15,6 +15,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _toggle;
|
private int _toggle;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _toggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -49,12 +61,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF6) _toggle = 0;
|
if (addr == 0x1FF6) _toggle = 0;
|
||||||
|
|
|
@ -11,6 +11,26 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
private int _bank4k;
|
private int _bank4k;
|
||||||
private ByteBuffer _ram = new ByteBuffer(128);
|
private ByteBuffer _ram = new ByteBuffer(128);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank_4k", ref _bank4k);
|
||||||
|
ser.Sync("auxRam", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4k = 0;
|
||||||
|
_ram = new ByteBuffer(128);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -60,19 +80,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank_4k", ref _bank4k);
|
|
||||||
ser.Sync("auxRam", ref _ram);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose()
|
|
||||||
{
|
|
||||||
base.Dispose();
|
|
||||||
_ram.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF6) _bank4k = 0;
|
if (addr == 0x1FF6) _bank4k = 0;
|
||||||
|
|
|
@ -21,7 +21,19 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
internal class mF8 : MapperBase
|
internal class mF8 : MapperBase
|
||||||
{
|
{
|
||||||
private int _bank_4K;
|
private int _bank4K;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank_4k", ref _bank4K);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4K = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
|
@ -35,7 +47,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
return base.ReadMemory(addr);
|
return base.ReadMemory(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Core.Rom[(_bank_4K << 12) + (addr & 0xFFF)];
|
return Core.Rom[(_bank4K << 12) + (addr & 0xFFF)];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte ReadMemory(ushort addr)
|
public override byte ReadMemory(ushort addr)
|
||||||
|
@ -57,21 +69,15 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank_4k", ref _bank_4K);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF8)
|
if (addr == 0x1FF8)
|
||||||
{
|
{
|
||||||
_bank_4K = 0;
|
_bank4K = 0;
|
||||||
}
|
}
|
||||||
else if (addr == 0x1FF9)
|
else if (addr == 0x1FF9)
|
||||||
{
|
{
|
||||||
_bank_4K = 1;
|
_bank4K = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,13 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
private int _bank_4K;
|
private int _bank_4K;
|
||||||
private ByteBuffer _ram = new ByteBuffer(128);
|
private ByteBuffer _ram = new ByteBuffer(128);
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank_4K = 0;
|
||||||
|
_ram = new ByteBuffer(128);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
|
|
@ -17,7 +17,27 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
internal class mFA : MapperBase
|
internal class mFA : MapperBase
|
||||||
{
|
{
|
||||||
private int _toggle;
|
private int _toggle;
|
||||||
private ByteBuffer _auxRam = new ByteBuffer(256);
|
private ByteBuffer _ram = new ByteBuffer(256);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _toggle);
|
||||||
|
ser.Sync("auxRam", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
_ram.Dispose();
|
||||||
|
base.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle = 0;
|
||||||
|
_ram = new ByteBuffer(128);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
|
@ -38,7 +58,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
if (addr < 0x1200)
|
if (addr < 0x1200)
|
||||||
{
|
{
|
||||||
return _auxRam[addr & 0xFF];
|
return _ram[addr & 0xFF];
|
||||||
}
|
}
|
||||||
|
|
||||||
return Core.Rom[(_toggle << 12) + (addr & 0xFFF)];
|
return Core.Rom[(_toggle << 12) + (addr & 0xFFF)];
|
||||||
|
@ -63,17 +83,10 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
else if (addr < 0x1100)
|
else if (addr < 0x1100)
|
||||||
{
|
{
|
||||||
_auxRam[addr & 0xFF] = value;
|
_ram[addr & 0xFF] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _toggle);
|
|
||||||
ser.Sync("auxRam", ref _auxRam);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF8) _toggle = 0;
|
if (addr == 0x1FF8) _toggle = 0;
|
||||||
|
|
|
@ -11,7 +11,27 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
internal class mFA2 : MapperBase
|
internal class mFA2 : MapperBase
|
||||||
{
|
{
|
||||||
private int _bank4k;
|
private int _bank4k;
|
||||||
private ByteBuffer _auxRam = new ByteBuffer(256);
|
private ByteBuffer _ram = new ByteBuffer(256);
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("bank4k", ref _bank4k);
|
||||||
|
ser.Sync("auxRam", ref _ram);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
_ram.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_bank4k = 0;
|
||||||
|
_ram = new ByteBuffer(256);
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
|
@ -32,7 +52,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
if (addr < 0x1200)
|
if (addr < 0x1200)
|
||||||
{
|
{
|
||||||
return _auxRam[addr & 0xFF];
|
return _ram[addr & 0xFF];
|
||||||
}
|
}
|
||||||
|
|
||||||
return Core.Rom[(_bank4k << 12) + (addr & 0xFFF)];
|
return Core.Rom[(_bank4k << 12) + (addr & 0xFFF)];
|
||||||
|
@ -57,23 +77,10 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
else if (addr < 0x1100)
|
else if (addr < 0x1100)
|
||||||
{
|
{
|
||||||
_auxRam[addr & 0xFF] = value;
|
_ram[addr & 0xFF] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("bank4k", ref _bank4k);
|
|
||||||
ser.Sync("auxRam", ref _auxRam);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Dispose()
|
|
||||||
{
|
|
||||||
base.Dispose();
|
|
||||||
_auxRam.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x1FF5) _bank4k = 0;
|
if (addr == 0x1FF5) _bank4k = 0;
|
||||||
|
|
|
@ -16,6 +16,18 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
{
|
{
|
||||||
private int _toggle;
|
private int _toggle;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("toggle", ref _toggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_toggle = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
if (!peek)
|
if (!peek)
|
||||||
|
@ -50,12 +62,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("toggle", ref _toggle);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if (addr == 0x0220)
|
if (addr == 0x0220)
|
||||||
|
|
|
@ -35,7 +35,19 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
|
|
||||||
internal class mX07 : MapperBase
|
internal class mX07 : MapperBase
|
||||||
{
|
{
|
||||||
private int _rombank_2K;
|
private int _rombank2K;
|
||||||
|
|
||||||
|
public override void SyncState(Serializer ser)
|
||||||
|
{
|
||||||
|
base.SyncState(ser);
|
||||||
|
ser.Sync("rombank_2k", ref _rombank2K);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void HardReset()
|
||||||
|
{
|
||||||
|
_rombank2K = 0;
|
||||||
|
base.HardReset();
|
||||||
|
}
|
||||||
|
|
||||||
private byte ReadMem(ushort addr, bool peek)
|
private byte ReadMem(ushort addr, bool peek)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +61,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
return base.ReadMemory(addr);
|
return base.ReadMemory(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Core.Rom[(_rombank_2K << 12) + (addr & 0xFFF)];
|
return Core.Rom[(_rombank2K << 12) + (addr & 0xFFF)];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte ReadMemory(ushort addr)
|
public override byte ReadMemory(ushort addr)
|
||||||
|
@ -71,12 +83,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SyncState(Serializer ser)
|
|
||||||
{
|
|
||||||
base.SyncState(ser);
|
|
||||||
ser.Sync("rombank_2k", ref _rombank_2K);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Address(ushort addr)
|
private void Address(ushort addr)
|
||||||
{
|
{
|
||||||
if ((addr & 0x180F) == 0x080D)
|
if ((addr & 0x180F) == 0x080D)
|
||||||
|
@ -85,16 +91,16 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
else if ((addr & 0x1880) == 0)
|
else if ((addr & 0x1880) == 0)
|
||||||
{
|
{
|
||||||
if ((_rombank_2K & 0xE) == 0xE)
|
if ((_rombank2K & 0xE) == 0xE)
|
||||||
{
|
{
|
||||||
Bank(((addr & 0x40) >> 6) | (_rombank_2K & 0xE));
|
Bank(((addr & 0x40) >> 6) | (_rombank2K & 0xE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Bank(int bank)
|
private void Bank(int bank)
|
||||||
{
|
{
|
||||||
_rombank_2K = bank & 0x0F;
|
_rombank2K = bank & 0x0F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,25 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
_player1.ScanCnt = 8;
|
_player1.ScanCnt = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Reset()
|
||||||
|
{
|
||||||
|
_hsyncCnt = 0;
|
||||||
|
_capChargeStart = 0;
|
||||||
|
_capCharging = false;
|
||||||
|
_vblankEnabled = false;
|
||||||
|
_vsyncEnabled = false;
|
||||||
|
_scanline = new uint[160];
|
||||||
|
|
||||||
|
_player0 = new PlayerData();
|
||||||
|
_player1 = new PlayerData();
|
||||||
|
_playField = new PlayfieldData();
|
||||||
|
_hmove = new HMoveData();
|
||||||
|
_ball = new BallData();
|
||||||
|
|
||||||
|
_player0.ScanCnt = 8;
|
||||||
|
_player1.ScanCnt = 8;
|
||||||
|
}
|
||||||
|
|
||||||
public bool FrameComplete { get; set; }
|
public bool FrameComplete { get; set; }
|
||||||
public int MaxVolume { get; set; }
|
public int MaxVolume { get; set; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue