X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=libpcsxcore%2Fpsxinterpreter.c;h=b171b0a6ff9be9fa10be61ece08b2ce9027309ad;hb=81dbbf4cbb16fc6c9a82a5b91e102c8005c5726a;hp=02e00a9f16906d80f6c6b94aabd98244df642342;hpb=943a507a4156b8f5b00e4431152e41eeb4dc6f3d;p=pcsx_rearmed.git diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c index 02e00a9f..b171b0a6 100644 --- a/libpcsxcore/psxinterpreter.c +++ b/libpcsxcore/psxinterpreter.c @@ -26,6 +26,7 @@ #include "gte.h" #include "psxhle.h" #include "debug.h" +#include "psxinterpreter.h" static int branch = 0; static int branch2 = 0; @@ -39,8 +40,6 @@ static u32 branchPC; #define debugI() #endif -void execI(); - // Subsets void (*psxBSC[64])(); void (*psxSPC[64])(); @@ -935,7 +934,10 @@ void psxCOP0() { } void psxCOP2() { - psxCP2[_Funct_]((struct psxCP2Regs *)&psxRegs.CP2D); + u32 f = _Funct_; + if (f != 0 || _Rs_ < 4) // not MTC2/CTC2 + gteCheckStall(f); + psxCP2[f]((struct psxCP2Regs *)&psxRegs.CP2D); } void psxBASIC(struct psxCP2Regs *regs) {