From: Zachary Cook Date: Fri, 21 Feb 2020 01:17:27 +0000 (-0500) Subject: Fix second instance runahead without breaking reset X-Git-Tag: r24l~661^2 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c9468f18461e1193c479c560a435154387191a9;p=pcsx_rearmed.git Fix second instance runahead without breaking reset --- 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);