aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);