aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\notaz_cp2011-03-09 22:30:50 +0000
committernotaz2011-03-10 01:47:04 +0200
commitabbc1ca1f763c1f4aa46b60f3ea7dfb4bed3fb6f (patch)
treef92ca804daa8a5c692ad430afaf9258074889aeb
parent3e5353548dd510c805424878a1f0de1da7a44a0c (diff)
downloadpcsx_rearmed-abbc1ca1f763c1f4aa46b60f3ea7dfb4bed3fb6f.tar.gz
pcsx_rearmed-abbc1ca1f763c1f4aa46b60f3ea7dfb4bed3fb6f.tar.bz2
pcsx_rearmed-abbc1ca1f763c1f4aa46b60f3ea7dfb4bed3fb6f.zip
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
-rw-r--r--libpcsxcore/psxinterpreter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c
index 3258743..f171205 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) {