diff options
| author | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-03-09 22:30:50 +0000 |
|---|---|---|
| committer | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2011-03-09 22:30:50 +0000 |
| commit | 1b70fa81feaca1d699357e99a5718df50f400b65 (patch) | |
| tree | 87d40310a473b11652c6ca6497fd2cc2d258d635 /libpcsxcore | |
| parent | 6fc02b8fdb424a77405bf90ed70947a1058b7aa3 (diff) | |
| download | pcsxr-1b70fa81feaca1d699357e99a5718df50f400b65.tar.gz | |
psxinterpreter: do interrupt test after doing target instruction
otherwise in case interrupt happens, target insn is executed twice,
causing occasional glitches in Tekken 2.
Also clear branch flag for it - it's not in delay slot.
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@64369 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
| -rw-r--r-- | libpcsxcore/psxinterpreter.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c index 398142cd..69d0061f 100644 --- a/libpcsxcore/psxinterpreter.c +++ b/libpcsxcore/psxinterpreter.c @@ -59,13 +59,13 @@ static void delayRead(int reg, u32 bpc) { psxRegs.pc = bpc; - psxBranchTest(); + branch = 0; psxRegs.GPR.r[reg] = rold; execI(); // first branch opcode psxRegs.GPR.r[reg] = rnew; - branch = 0; + psxBranchTest(); } static void delayWrite(int reg, u32 bpc) { |
