Changed the maximum slice length to 1000 from 20000. This makes the emulator check external exceptions more regularly. Fixes the audio cutting in and out in the Resident Evil GC games using DSP HLE.

Triggered the ARAM interrupt by the scheduler instead of directly in function.  Fixes a hang in Mario Super Baseball.

Fixes issue 5825.
Fixes issue 5096.
This commit is contained in:
skidau 2013-03-01 20:23:55 +11:00
parent 73da6f4f3f
commit 4c6bbec600
2 changed files with 2 additions and 2 deletions

View File

@ -24,7 +24,7 @@
#include "StringUtil.h"
#include "VideoBackendBase.h"
#define MAX_SLICE_LENGTH 20000
#define MAX_SLICE_LENGTH 1000
namespace CoreTiming
{

View File

@ -698,7 +698,7 @@ void Do_ARAM_DMA()
if (!GetDSPEmulator()->IsLLE())
g_dspState.DSPControl.DMAState = 1;
GenerateDSPInterrupt(INT_ARAM, true);
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)