From 4e470cf17ad30f85c68c9e0c1e2de9457c2705fb Mon Sep 17 00:00:00 2001 From: Asnivor Date: Tue, 21 Aug 2018 14:16:14 +0100 Subject: [PATCH] ZXHawk: DeterministicEmulation to be overridden (TRUE) when recording a movie - #1290 --- BizHawk.Client.Common/RomLoader.cs | 10 ++++++++-- .../Computers/SinclairSpectrum/ZXSpectrum.cs | 12 +++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index 84a91bbf7d..9470689b1d 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -671,7 +671,8 @@ namespace BizHawk.Client.Common xmlGame.Assets.Select(a => a.Value), //.First(), zxGI, // GameInfo.NullInstance, (ZXSpectrum.ZXSpectrumSettings)GetCoreSettings(), - (ZXSpectrum.ZXSpectrumSyncSettings)GetCoreSyncSettings()); + (ZXSpectrum.ZXSpectrumSyncSettings)GetCoreSyncSettings(), + Deterministic); break; case "PSX": var entries = xmlGame.AssetFullPaths; @@ -1014,7 +1015,12 @@ namespace BizHawk.Client.Common nextEmulator = c64; break; case "ZXSpectrum": - var zx = new ZXSpectrum(nextComm, Enumerable.Repeat(rom.RomData, 1), Enumerable.Repeat(rom.GameInfo, 1).ToList(), GetCoreSettings(), GetCoreSyncSettings()); + var zx = new ZXSpectrum(nextComm, + Enumerable.Repeat(rom.RomData, 1), + Enumerable.Repeat(rom.GameInfo, 1).ToList(), + GetCoreSettings(), + GetCoreSyncSettings(), + Deterministic); nextEmulator = zx; break; case "GBA": diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.cs index edaaac4d4b..f630d6e257 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/ZXSpectrum.cs @@ -20,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum isReleased: true)] public partial class ZXSpectrum : IRegionable, IDriveLight { - public ZXSpectrum(CoreComm comm, IEnumerable files, List game, object settings, object syncSettings) + public ZXSpectrum(CoreComm comm, IEnumerable files, List game, object settings, object syncSettings, bool? deterministic) { var ser = new BasicServiceProvider(this); ServiceProvider = ser; @@ -52,6 +52,16 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum deterministicEmulation = ((ZXSpectrumSyncSettings)syncSettings as ZXSpectrumSyncSettings).DeterministicEmulation; + if (deterministic != null && deterministic == true) + { + if (deterministicEmulation == false) + { + CoreComm.Notify("Forcing Deterministic Emulation"); + } + + deterministicEmulation = deterministic.Value; + } + switch (SyncSettings.MachineType) { case MachineType.ZXSpectrum16: