From 33f0f9fd9fc6d66c82038b00d90a277b97a6e661 Mon Sep 17 00:00:00 2001 From: nitsuja Date: Mon, 19 Dec 2011 21:52:47 -0800 Subject: [PATCH] fix ZWW intro music crackling with DSPHLE --- .../Core/Core/Src/HW/DSPHLE/UCodes/UCode_Zelda_Voice.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_Zelda_Voice.cpp b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_Zelda_Voice.cpp index a3e787cd8c..67f354007e 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_Zelda_Voice.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_Zelda_Voice.cpp @@ -426,18 +426,15 @@ void CUCode_Zelda::RenderVoice_Raw(ZeldaVoicePB &PB, s16 *_Buffer, int _Size) PB.Unk36[0] = (u16)(ACC0 >> 16); - // This subtract does really not make much sense at all. ACC0 -= AX0 << 16; if ((s64)ACC0 < 0) { - // There's something wrong with this looping code. - - ERROR_LOG(DSPHLE, "Raw loop: ReadAudio size = %04x 34:%04x %08x", PB.Unk36[0], PB.raw[0x34 ^ 1], (int)ACC0); + // ERROR_LOG(DSPHLE, "Raw loop: ReadAudio size = %04x 34:%04x %08x", PB.Unk36[0], PB.raw[0x34 ^ 1], (int)ACC0); Decoder21_ReadAudio(PB, PB.Unk36[0], _Buffer); - ACC0 = _Size << 16; - ACC0 -= PB.Unk36[0] << 16; + ACC0 = -(s64)ACC0; + _Buffer += PB.Unk36[0]; PB.raw[0x34 ^ 1] = 0;