From b00ef39c1c8c3aa2e02bcae4a6aa80ff927c381b Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 6 Nov 2017 09:15:05 +0100 Subject: Fix DTK audio not working after loading a savestate The main problem was that the volume of the mixer wasn't savestated. The volume is typically 0 at the beginning of a game, so loading a savestate at the beginning of a game would lead to silent DTK audio. I also added savestating to StreamADPCM.cpp. --- Source/Core/AudioCommon/Mixer.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Source/Core/AudioCommon/Mixer.cpp') diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp index 374cb89d9a..da0f81c87e 100644 --- a/Source/Core/AudioCommon/Mixer.cpp +++ b/Source/Core/AudioCommon/Mixer.cpp @@ -8,6 +8,7 @@ #include #include "AudioCommon/DPL2Decoder.h" +#include "Common/ChunkFile.h" #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Common/MathUtil.h" @@ -25,6 +26,13 @@ Mixer::~Mixer() { } +void Mixer::DoState(PointerWrap& p) +{ + m_dma_mixer.DoState(p); + m_streaming_mixer.DoState(p); + m_wiimote_speaker_mixer.DoState(p); +} + // Executed from sound stream thread unsigned int Mixer::MixerFifo::Mix(short* samples, unsigned int numSamples, bool consider_framelimit) @@ -333,6 +341,13 @@ void Mixer::StopLogDSPAudio() } } +void Mixer::MixerFifo::DoState(PointerWrap& p) +{ + p.Do(m_input_sample_rate); + p.Do(m_LVolume); + p.Do(m_RVolume); +} + void Mixer::MixerFifo::SetInputSampleRate(unsigned int rate) { m_input_sample_rate = rate; -- cgit v1.2.3