X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fpsxinterpreter.c;fp=libpcsxcore%2Fpsxinterpreter.c;h=9ece259cf7273d0e30bd490349a40a9cb7915341;hp=3d0836459ba9207edbac98af1441061d1fe03236;hb=679d5ee3c46235923a99391922de1df0239e9ff3;hpb=d75460620efa21df695967c72a92265dac04001f diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c index 3d083645..9ece259c 100644 --- a/libpcsxcore/psxinterpreter.c +++ b/libpcsxcore/psxinterpreter.c @@ -911,7 +911,9 @@ void MTC0(psxRegisters *regs_, int reg, u32 val) { // SysPrintf("MTC0 %d: %x\n", reg, val); switch (reg) { case 12: // Status - regs_->CP0.r[12] = val; + if ((regs_->CP0.n.Status ^ val) & (1 << 16)) + psxMemOnIsolate((val >> 16) & 1); + regs_->CP0.n.Status = val; psxTestSWInts(regs_); break; @@ -1114,7 +1116,7 @@ static void intClear(u32 Addr, u32 Size) { } void intNotify (int note, void *data) { - /* Gameblabla - Only clear the icache if it's isolated */ + /* Armored Core won't boot without this */ if (note == R3000ACPU_NOTIFY_CACHE_ISOLATED) { memset(&ICache, 0xff, sizeof(ICache));