From ca69c60e1bb74798410242f1d9f68b8079b59ace Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Thu, 28 Dec 2023 23:57:42 +0100 Subject: [PATCH 1/2] DSPHLE/Zelda: add another 32-bit getter/setter (NFC) --- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index ec5f4ef2c6..16360bbccb 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -950,6 +950,7 @@ struct ReverbPB // Base address of the circular buffer in MRAM. u16 circular_buffer_base_h; u16 circular_buffer_base_l; + DEFINE_32BIT_ACCESSOR(circular_buffer_base, CircularBufferBase) struct Destination { @@ -1059,8 +1060,7 @@ void ZeldaAudioRenderer::ApplyReverb(bool post_rendering) u16 mram_buffer_idx = m_reverb_pb_frames_count[rpb_idx]; - u32 mram_addr = ((rpb.circular_buffer_base_h << 16) | rpb.circular_buffer_base_l) + - mram_buffer_idx * 0x50 * sizeof(s16); + u32 mram_addr = rpb.GetCircularBufferBase() + mram_buffer_idx * 0x50 * sizeof(s16); s16* mram_ptr = (s16*)HLEMemory_Get_Pointer(mram_addr); if (!post_rendering) From 594b55c448af3f610129374027a8c6dd149bb243 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Fri, 29 Dec 2023 02:24:37 +0100 Subject: [PATCH 2/2] DSPHLE/Zelda: fix use of wrong reverb buffer --- Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index 16360bbccb..c6d2fdb907 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -991,7 +991,7 @@ void ZeldaAudioRenderer::PrepareFrame() 0xB820); AddBuffersWithVolume(m_buf_front_left_reverb.data(), m_buf_back_right_reverb.data() + 0x28, 0x28, 0xB820); - AddBuffersWithVolume(m_buf_front_right_reverb.data(), m_buf_back_left_reverb.data() + 0x28, 0x28, + AddBuffersWithVolume(m_buf_front_right_reverb.data(), m_buf_back_right_reverb.data() + 0x28, 0x28, 0x7FFF); m_buf_back_left_reverb.fill(0); m_buf_back_right_reverb.fill(0);