From 9a9b56c69b1edd0e5c83e4b905aefcbfd638cf3d Mon Sep 17 00:00:00 2001 From: Asnivor Date: Tue, 20 Mar 2018 15:28:23 +0000 Subject: [PATCH] ZXHawk: Improvements to reset methods --- .../SinclairSpectrum/Machine/SpectrumBase.cs | 40 +++++++++++++++++++ .../Machine/ZXSpectrum48K/ZX48.cs | 15 +++++++ 2 files changed, 55 insertions(+) diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs index 9b4d49030f..aa5548f645 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs @@ -232,6 +232,26 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum TapeDevice.Reset(); if (AYDevice != null) AYDevice.Reset(); + + byte[][] rams = new byte[][] + { + RAM0, + RAM1, + RAM2, + RAM3, + RAM4, + RAM5, + RAM6, + RAM7 + }; + + foreach (var r in rams) + { + for (int i = 0; i < r.Length; i++) + { + r[i] = 0x00; + } + } } /// @@ -264,6 +284,26 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum TapeDevice.Reset(); if (AYDevice != null) AYDevice.Reset(); + + byte[][] rams = new byte[][] + { + RAM0, + RAM1, + RAM2, + RAM3, + RAM4, + RAM5, + RAM6, + RAM7 + }; + + foreach (var r in rams) + { + for (int i = 0; i < r.Length; i++) + { + r[i] = 0x00; + } + } } #endregion diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ZXSpectrum48K/ZX48.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ZXSpectrum48K/ZX48.cs index d9737a40f1..9dacc597f3 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ZXSpectrum48K/ZX48.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ZXSpectrum48K/ZX48.cs @@ -37,5 +37,20 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum } #endregion + + #region Reset + + public override void HardReset() + { + base.HardReset(); + + Random rn = new Random(); + for (int d = 0; d < 6912; d++) + { + RAM0[d] = (byte)rn.Next(255); + } + } + + #endregion } }