// 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;
}
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));