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:
parent
73da6f4f3f
commit
4c6bbec600
|
@ -24,7 +24,7 @@
|
|||
#include "StringUtil.h"
|
||||
#include "VideoBackendBase.h"
|
||||
|
||||
#define MAX_SLICE_LENGTH 20000
|
||||
#define MAX_SLICE_LENGTH 1000
|
||||
|
||||
namespace CoreTiming
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue