From e227f69662c75a3df29eca7eaf248c8a8b9989b9 Mon Sep 17 00:00:00 2001 From: Sour Date: Fri, 22 Mar 2019 23:53:20 -0400 Subject: [PATCH] SPC: Improved/fixed reset behavior --- Core/Spc.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Core/Spc.cpp b/Core/Spc.cpp index d9d17d1..af99d5a 100644 --- a/Core/Spc.cpp +++ b/Core/Spc.cpp @@ -40,6 +40,9 @@ void Spc::Reset() _state.Timer0.Reset(); _state.Timer1.Reset(); _state.Timer2.Reset(); + + _state.RomEnabled = true; + _state.Cycle = 0; _state.PC = ReadWord(Spc::ResetVector); _dsp->soft_reset(); @@ -209,7 +212,9 @@ void Spc::ProcessEndFrame() Run(); int sampleCount = _dsp->sample_count(); - _console->GetSoundMixer()->PlayAudioBuffer(_soundBuffer, sampleCount / 2); + if(sampleCount != 0) { + _console->GetSoundMixer()->PlayAudioBuffer(_soundBuffer, sampleCount / 2); + } _dsp->set_output(_soundBuffer, Spc::SampleBufferSize >> 1); }