From 0f256715e0f41661bb3d28fa47b3de1acd48e663 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 7 Sep 2014 12:50:08 +1000 Subject: [PATCH] Re-added the ARAM DMA exception check. This fixes the audio cutting in and out of Resident Evil 2 and 3. Removed the special case for short transfers as it is no longer required. --- Source/Core/Core/HW/DSP.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/HW/DSP.cpp b/Source/Core/Core/HW/DSP.cpp index 82c7149c71..5eed344331 100644 --- a/Source/Core/Core/HW/DSP.cpp +++ b/Source/Core/Core/HW/DSP.cpp @@ -532,14 +532,10 @@ void UpdateAudioDMA() static void Do_ARAM_DMA() { g_dspState.DSPControl.DMAState = 1; - if (g_arDMA.Cnt.count == 32) - { - CompleteARAM(0, 0); - } - else - { - CoreTiming::ScheduleEvent_Threadsafe(0, et_CompleteARAM); - } + CoreTiming::ScheduleEvent_Threadsafe(0, et_CompleteARAM); + + // Force an early exception check on large transfers. Fixes RE2 audio. + CoreTiming::ForceExceptionCheck(250); // Real hardware DMAs in 32byte chunks, but we can get by with 8byte chunks if (g_arDMA.Cnt.dir)