diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h index 155965dfea..bf13c7114d 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h @@ -337,8 +337,11 @@ void MixAdd(int* out, const s16* input, u16* pvol, bool ramp) for (u32 i = 0; i < 32; ++i) { - s64 sample = 2 * (s16)input[i] * (s16)volume; - out[i] += (s32)(sample >> 16); + s64 sample = input[i]; + sample *= volume; + sample >>= 15; + + out[i] += (s32)sample; volume += volume_delta; } }