diff options
Diffstat (limited to 'libpcsxcore')
-rw-r--r-- | libpcsxcore/lightrec/plugin.c | 7 | ||||
-rw-r--r-- | libpcsxcore/misc.c | 5 |
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); |