#include "../r3000a.h"
#include "../psxinterpreter.h"
#include "../psxhle.h"
-#include "../new_dynarec/events.h"
+#include "../psxevents.h"
#include "../frontend/main.h"
}
static void hw_write_byte(struct lightrec_state *state,
- u32 op, void *host, u32 mem, u8 val)
+ u32 op, void *host, u32 mem, u32 val)
{
lightrec_tansition_to_pcsx(state);
}
static void hw_write_half(struct lightrec_state *state,
- u32 op, void *host, u32 mem, u16 val)
+ u32 op, void *host, u32 mem, u32 val)
{
lightrec_tansition_to_pcsx(state);
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);
}