Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Properly set the DMAState flag while ARAM DMA transfers are underway.
Fixes issue 6118.
  • Loading branch information
skidau committed Mar 19, 2013
1 parent befe6e6 commit a6249b5
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions Source/Core/Core/Src/HW/DSP.cpp
Expand Up @@ -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)
Expand Down

0 comments on commit a6249b5

Please sign in to comment.