From a6249b53889ac27cd815927684501be5f7b0c53a Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 19 Mar 2013 23:03:38 +1100 Subject: [PATCH] Properly set the DMAState flag while ARAM DMA transfers are underway. Fixes issue 6118. --- Source/Core/Core/Src/HW/DSP.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/Src/HW/DSP.cpp b/Source/Core/Core/Src/HW/DSP.cpp index fa1d23f186..6fb6778d9d 100644 --- a/Source/Core/Core/Src/HW/DSP.cpp +++ b/Source/Core/Core/Src/HW/DSP.cpp @@ -693,14 +693,8 @@ void UpdateAudioDMA() void Do_ARAM_DMA() { - // Emulating the DMA wait time fixes Knockout Kings 2003 in DSP HLE mode - if (!GetDSPEmulator()->IsLLE()) - g_dspState.DSPControl.DMAState = 1; - - if (g_arDMA.Cnt.dir || g_arDMA.Cnt.count > 10240) - CoreTiming::ScheduleEvent_Threadsafe(0, et_GenerateDSPInterrupt, INT_ARAM | (1<<16)); - else - GenerateDSPInterrupt(INT_ARAM); + g_dspState.DSPControl.DMAState = 1; + CoreTiming::ScheduleEvent_Threadsafe(0, et_GenerateDSPInterrupt, INT_ARAM | (1<<16)); // Real hardware DMAs in 32byte chunks, but we can get by with 8byte chunks if (g_arDMA.Cnt.dir)