X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=libpcsxcore%2Flightrec%2Fplugin.c;h=22342fef94838eaf67b22d143be450fb9e0a4f7a;hb=353119c25154ebaf019d28a7c28bb34d8f4e75fa;hp=e87396dcd67a8aef755bf6bd1fe1c4d844e24647;hpb=6c307d2d02698d02f84e4b7f8e0f3bac4c93f83c;p=pcsx_rearmed.git diff --git a/libpcsxcore/lightrec/plugin.c b/libpcsxcore/lightrec/plugin.c index e87396dc..22342fef 100644 --- a/libpcsxcore/lightrec/plugin.c +++ b/libpcsxcore/lightrec/plugin.c @@ -20,7 +20,7 @@ #include "../r3000a.h" #include "../psxinterpreter.h" #include "../psxhle.h" -#include "../new_dynarec/events.h" +#include "../psxevents.h" #include "../frontend/main.h" @@ -163,7 +163,7 @@ static void lightrec_tansition_from_pcsx(struct lightrec_state *state) } 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); @@ -173,7 +173,7 @@ static void hw_write_byte(struct lightrec_state *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); @@ -492,6 +492,9 @@ static void lightrec_plugin_execute_internal(bool block_only) 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); @@ -525,6 +528,8 @@ static void lightrec_plugin_execute_internal(bool block_only) 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; @@ -547,8 +552,6 @@ static void lightrec_plugin_execute_internal(bool block_only) static void lightrec_plugin_execute(void) { - extern int stop; - while (!stop) lightrec_plugin_execute_internal(false); }