diff options
| author | skidau <skidau@gmail.com> | 2014-09-07 12:50:08 +1000 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2014-09-27 20:16:26 +1000 |
| commit | 0f256715e0f41661bb3d28fa47b3de1acd48e663 (patch) | |
| tree | eb5b03e7a946502a6b21b04a05b4c556fcc132fa /Source/Core | |
| parent | d09e2abb0d963d794b9ff04b17b161f68b61b84b (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.cpp | 12 |
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) |
