diff --git a/Core/MemMap.cpp b/Core/MemMap.cpp index 96e0924081..1d84aef94e 100644 --- a/Core/MemMap.cpp +++ b/Core/MemMap.cpp @@ -136,10 +136,16 @@ void DoState(PointerWrap &p) g_MemorySize = RAM_NORMAL_SIZE; g_PSPModel = PSP_MODEL_FAT; } else { + u32 oldMemorySize = g_MemorySize; p.Do(g_PSPModel); p.DoMarker("PSPModel"); - if (!g_RemasterMode) + if (!g_RemasterMode) { g_MemorySize = g_PSPModel == PSP_MODEL_FAT ? RAM_NORMAL_SIZE : RAM_DOUBLE_SIZE; + if (oldMemorySize < g_MemorySize) { + Shutdown(); + Init(); + } + } } p.DoArray(GetPointer(PSP_GetKernelMemoryBase()), g_MemorySize);