From 4ace79024df07dbf6486d5a688e7a3552a4281da Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Mon, 22 Dec 2014 05:50:34 +0100 Subject: [PATCH] Zelda HLE: Add a missing mixing buffer used by GC IPL. Not completely sure what it's used for yet, but TWW has references to it so I'll get to it at some point. --- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 2 ++ Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h | 1 + 2 files changed, 3 insertions(+) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index 23083f9b93..0754e1fc0c 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -882,6 +882,7 @@ ZeldaAudioRenderer::MixingBuffer* ZeldaAudioRenderer::BufferForID(u16 buffer_id) case 0x0DC0: return &m_buf_unk0_reverb; case 0x0E20: return &m_buf_unk1_reverb; case 0x09A0: return &m_buf_unk0; // Used by the GC IPL as a reverb dest. + case 0x0FA0: return &m_buf_unk1; // Used by the GC IPL as a mixing dest. default: return nullptr; } } @@ -1508,6 +1509,7 @@ void ZeldaAudioRenderer::DoState(PointerWrap& p) p.Do(m_buf_unk0_reverb); p.Do(m_buf_unk1_reverb); p.Do(m_buf_unk0); + p.Do(m_buf_unk1); p.Do(m_resampling_coeffs); p.Do(m_const_patterns); diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h index b49ffe117e..7a3ad011a5 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h @@ -118,6 +118,7 @@ private: MixingBuffer m_buf_unk0_reverb{}; MixingBuffer m_buf_unk1_reverb{}; MixingBuffer m_buf_unk0{}; + MixingBuffer m_buf_unk1{}; // Maps a buffer "ID" (really, their address in the DSP DRAM...) to our // buffers. Returns nullptr if no match is found.