regs = lightrec_get_registers(lightrec_state);
gen_interupt((psxCP0Regs *)regs->cp0);
+ if (!block_only && stop)
+ return;
+
cycles_pcsx = next_interupt - psxRegs.cycle;
assert((s32)cycles_pcsx > 0);
if (flags & LIGHTREC_EXIT_SYSCALL)
psxException(R3000E_Syscall << 2, 0, (psxCP0Regs *)regs->cp0);
+ if (flags & LIGHTREC_EXIT_BREAK)
+ psxException(R3000E_Bp << 2, 0, (psxCP0Regs *)regs->cp0);
else if (flags & LIGHTREC_EXIT_UNKNOWN_OP) {
u32 op = intFakeFetch(psxRegs.pc);
u32 hlec = op & 0x03ffffff;
static void lightrec_plugin_execute(void)
{
- extern int stop;
-
while (!stop)
lightrec_plugin_execute_internal(false);
}