psxinterpreter: do interrupt test after doing target instruction
authorSND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>
Wed, 9 Mar 2011 22:30:50 +0000 (22:30 +0000)
committernotaz <notasas@gmail.com>
Wed, 9 Mar 2011 23:47:04 +0000 (01:47 +0200)
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

libpcsxcore/psxinterpreter.c

index 3258743..f171205 100644 (file)
@@ -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) {