evprintf("MTC0 %d #%x @%08x %u\n", reg, val, psxRegs.pc, psxRegs.cycle);
MTC0(&psxRegs, reg, val);
gen_interupt(&psxRegs.CP0);
- if (psxRegs.CP0.n.Cause & psxRegs.CP0.n.Status & 0x0300) // possible sw irq
+ if (psxRegs.CP0.n.Cause & psxRegs.CP0.n.SR & 0x0300) // possible sw irq
pending_exception = 1;
}
}
}
+static void ari64_execute_block(enum blockExecCaller caller)
+{
+ if (caller == EXEC_CALLER_BOOT)
+ stop++;
+
+ ari64_execute_until();
+
+ if (caller == EXEC_CALLER_BOOT)
+ stop--;
+}
+
static void ari64_clear(u32 addr, u32 size)
{
size *= 4; /* PCSX uses DMA units (words) */
ari64_init,
ari64_reset,
ari64_execute,
- ari64_execute_until,
+ ari64_execute_block,
ari64_clear,
ari64_notify,
ari64_apply_config,