summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/HW/DSP.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Source/Core/Core/Src/HW/DSP.cpp b/Source/Core/Core/Src/HW/DSP.cpp
index 41f371cee2..1ffd1f96ad 100644
--- a/Source/Core/Core/Src/HW/DSP.cpp
+++ b/Source/Core/Core/Src/HW/DSP.cpp
@@ -274,7 +274,8 @@ void Init(bool hle)
g_ARAM.ptr = (u8 *)AllocateMemoryPages(g_ARAM.size);
}
- g_audioDMA.AudioDMAControl.Hex = 0;
+ memset(&g_audioDMA, 0, sizeof(g_audioDMA));
+ memset(&g_arDMA, 0, sizeof(g_arDMA));
g_dspState.DSPControl.Hex = 0;
g_dspState.DSPControl.DSPHalt = 1;
@@ -682,8 +683,7 @@ void Do_ARAM_DMA()
{
// Fake the DMA taking time to complete. The delay is not accurate, but
// seems like a good estimate
- CoreTiming::ScheduleEvent_Threadsafe(
- g_arDMA.Cnt.count >> 1, et_GenerateDSPInterrupt, INT_ARAM | (1<<16));
+ //CoreTiming::ScheduleEvent_Threadsafe(g_arDMA.Cnt.count >> 1, 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)
@@ -720,6 +720,7 @@ void Do_ARAM_DMA()
g_arDMA.Cnt.count -= 8;
}
}
+ GenerateDSPInterrupt(INT_ARAM);
}