mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-02 23:03:42 +00:00
Simple workaround for timing issue with coreState after syscall.
Also fixes off by one in ForceCheck.
This commit is contained in:
parent
5b2504120d
commit
5923013d65
@ -567,10 +567,10 @@ void MoveEvents()
|
||||
|
||||
void ForceCheck()
|
||||
{
|
||||
int cyclesExecuted = slicelength - currentMIPS->downcount;
|
||||
int cyclesExecuted = slicelength - currentMIPS->downcount + 1;
|
||||
globalTimer += cyclesExecuted;
|
||||
// This will cause us to check for new events immediately.
|
||||
currentMIPS->downcount = 0;
|
||||
currentMIPS->downcount = -1;
|
||||
// But let's not eat a bunch more time in Advance() because of this.
|
||||
slicelength = 0;
|
||||
}
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include "Core/HLE/ReplaceTables.h"
|
||||
#include "Core/MIPS/MIPSTables.h"
|
||||
#include "Core/MIPS/MIPSVFPUUtils.h"
|
||||
#include "Core/System.h"
|
||||
#include "Core/CoreTiming.h"
|
||||
|
||||
#include "math/math_util.h"
|
||||
#include "Common/CommonTypes.h"
|
||||
@ -583,6 +585,8 @@ u32 IRInterpret(MIPSState *mips, const IRInst *inst, const u32 *constPool, int c
|
||||
{
|
||||
MIPSOpcode op(constPool[inst->src1]);
|
||||
CallSyscall(op);
|
||||
if (coreState != CORE_RUNNING)
|
||||
CoreTiming::ForceCheck();
|
||||
return mips->pc;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user