aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorZachary Cook2020-02-20 20:17:27 -0500
committerZachary Cook2020-02-21 12:28:59 -0500
commit8c9468f18461e1193c479c560a435154387191a9 (patch)
tree1f83b397228d275a3c82643d053533822ed93c02 /libpcsxcore
parent37e4b2cc27ccb08c1063c3db575d92191d141133 (diff)
downloadpcsx_rearmed-8c9468f18461e1193c479c560a435154387191a9.tar.gz
pcsx_rearmed-8c9468f18461e1193c479c560a435154387191a9.tar.bz2
pcsx_rearmed-8c9468f18461e1193c479c560a435154387191a9.zip
Fix second instance runahead without breaking reset
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/lightrec/plugin.c7
-rw-r--r--libpcsxcore/misc.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/libpcsxcore/lightrec/plugin.c b/libpcsxcore/lightrec/plugin.c
index 64587be..8c64c67 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 56b7552..d877513 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);