aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/r3000a.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c
index 1e8d0b0..cccfa60 100644
--- a/libpcsxcore/r3000a.c
+++ b/libpcsxcore/r3000a.c
@@ -79,13 +79,13 @@ void psxShutdown() {
}
void psxException(u32 code, u32 bd) {
- if (!Config.HLE && (((PSXMu32(psxRegs.pc) >> 24) & 0xfe) == 0x4a)) {
+ if (!Config.HLE && ((((psxRegs.code = PSXMu32(psxRegs.pc)) >> 24) & 0xfe) == 0x4a)) {
// "hokuto no ken" / "Crash Bandicot 2" ...
// BIOS does not allow to return to GTE instructions
// (just skips it, supposedly because it's scheduled already)
- // so we step over it with the interpreter
- extern void execI();
- execI();
+ // so we execute it here
+ extern void (*psxCP2[64])(void *cp2regs);
+ psxCP2[psxRegs.code & 0x3f](&psxRegs.CP2D);
}
// Set the Cause