From 0f1ef49da19cd8636a812d7c881052280df6444d Mon Sep 17 00:00:00 2001 From: skidau Date: Wed, 6 Mar 2013 17:08:40 +1100 Subject: [PATCH] Used a scheduled event to generate the ARAM DMA interrupt if the DMA is greater than a certain size. Fixes NFS:HP2 GC. --- Source/Core/Core/Src/HW/DSP.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/HW/DSP.cpp b/Source/Core/Core/Src/HW/DSP.cpp index 9dfaf35a55..fa1d23f186 100644 --- a/Source/Core/Core/Src/HW/DSP.cpp +++ b/Source/Core/Core/Src/HW/DSP.cpp @@ -697,7 +697,7 @@ void Do_ARAM_DMA() if (!GetDSPEmulator()->IsLLE()) g_dspState.DSPControl.DMAState = 1; - if (g_arDMA.Cnt.dir) + if (g_arDMA.Cnt.dir || g_arDMA.Cnt.count > 10240) CoreTiming::ScheduleEvent_Threadsafe(0, et_GenerateDSPInterrupt, INT_ARAM | (1<<16)); else GenerateDSPInterrupt(INT_ARAM);