From: notaz Date: Fri, 4 Feb 2011 23:10:26 +0000 (+0200) Subject: interpreter: backport fixes from pcsxr X-Git-Tag: r6~16 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=commitdiff_plain;h=862bfc0d6da5d83c8af5bf3a1fdd189474d25812 interpreter: backport fixes from pcsxr shalma: - (nhyone) fix load delay bgez, bgezal Xenogears - psxinterpreter.c - lbu v1 - beq v1 = no load delay - fix battle loading (interpreter only) --- diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c index 3736b231..3258743b 100644 --- a/libpcsxcore/psxinterpreter.c +++ b/libpcsxcore/psxinterpreter.c @@ -153,8 +153,12 @@ int psxTestLoadDelay(int reg, u32 tmp) { case 0x01: // REGIMM switch (_tRt_) { - case 0x00: case 0x02: - case 0x10: case 0x12: // BLTZ/BGEZ... + case 0x00: case 0x01: + case 0x10: case 0x11: // BLTZ/BGEZ... + // Xenogears - lbu v0 / beq v0 + // - no load delay (fixes battle loading) + break; + if (_tRs_ == reg) return 2; break; } @@ -166,10 +170,18 @@ int psxTestLoadDelay(int reg, u32 tmp) { break; case 0x04: case 0x05: // BEQ/BNE + // Xenogears - lbu v0 / beq v0 + // - no load delay (fixes battle loading) + break; + if (_tRs_ == reg || _tRt_ == reg) return 2; break; case 0x06: case 0x07: // BLEZ/BGTZ + // Xenogears - lbu v0 / beq v0 + // - no load delay (fixes battle loading) + break; + if (_tRs_ == reg) return 2; break;