summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2014-09-07 12:50:08 +1000
committerskidau <skidau@gmail.com>2014-09-27 20:16:26 +1000
commit0f256715e0f41661bb3d28fa47b3de1acd48e663 (patch)
treeeb5b03e7a946502a6b21b04a05b4c556fcc132fa /Source/Core
parentd09e2abb0d963d794b9ff04b17b161f68b61b84b (diff)
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.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HW/DSP.cpp12
1 files 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)