From 8c9468f18461e1193c479c560a435154387191a9 Mon Sep 17 00:00:00 2001 From: Zachary Cook Date: Thu, 20 Feb 2020 20:17:27 -0500 Subject: [PATCH] Fix second instance runahead without breaking reset --- libpcsxcore/lightrec/plugin.c | 7 +++++-- libpcsxcore/misc.c | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libpcsxcore/lightrec/plugin.c b/libpcsxcore/lightrec/plugin.c index 64587be6..8c64c67f 100644 --- a/libpcsxcore/lightrec/plugin.c +++ b/libpcsxcore/lightrec/plugin.c @@ -553,8 +553,11 @@ static void lightrec_plugin_execute(void) static void lightrec_plugin_clear(u32 addr, u32 size) { - /* size * 4: PCSX uses DMA units */ - lightrec_invalidate(lightrec_state, addr, size * 4); + if (addr == 0 && size == UINT32_MAX) + lightrec_invalidate_all(lightrec_state); + else + /* size * 4: PCSX uses DMA units */ + lightrec_invalidate(lightrec_state, addr, size * 4); } static void lightrec_plugin_shutdown(void) diff --git a/libpcsxcore/misc.c b/libpcsxcore/misc.c index 56b7552f..d877513b 100644 --- a/libpcsxcore/misc.c +++ b/libpcsxcore/misc.c @@ -657,6 +657,11 @@ int LoadState(const char *file) { if (Config.HLE) psxBiosInit(); +#if defined(LIGHTREC) + if (Config.Cpu != CPU_INTERPRETER) + psxCpu->Clear(0, UINT32_MAX); //clear all + else +#endif psxCpu->Reset(); SaveFuncs.seek(f, 128 * 96 * 3, SEEK_CUR); -- 2.39.5