diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs index 7d50d216b4..f2c4de0c31 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/SpectrumBase.cs @@ -183,10 +183,6 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum // we have reached the end of a frame LastFrameStartCPUTick = CPU.TotalExecutedCycles - OverFlow; - // paint the buffer at end of frame - if (_render) - ULADevice.RenderScreen(ULADevice.FrameLength); - ULADevice.LastTState = 0; if (AYDevice != null) diff --git a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ULA.cs b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ULA.cs index 3def75bca8..0f46892833 100644 --- a/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ULA.cs +++ b/BizHawk.Emulation.Cores/Computers/SinclairSpectrum/Machine/ULA.cs @@ -141,7 +141,8 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum public virtual void CycleClock(long totalCycles) { // render the screen - RenderScreen((int)_machine.CurrentFrameCycle); + if (_machine._render) + RenderScreen((int)_machine.CurrentFrameCycle); // has more than one cycle past since this last ran // (this can be true if contention has taken place)