From d09575f25e71a178aee116d1e51519fa139d8f1d Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Wed, 8 Jan 2014 00:06:27 -0800 Subject: [PATCH] When loading a savestate with more ram, realloc. Also, I'm not sure the extra ram is being handled correctly, I think it's not meant to be exposed to games except homebrew, not sure of the exact method... --- Core/MemMap.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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);