Use MEMSIZE SFO param to detect 64MB homebrew.

Now, use 32MB for normal games even in PSP-2000 mode, which is how real
firmware behaves.
This commit is contained in:
Unknown W. Brackets committed 2015-12-23 15:16:48 -08:00
1 parent d5219ebafc
commit d273deedeb
6 files changed
+75 -11

No files matched your search

+14 -2
View File
@@ -340,7 +340,7 @@ void Init()
void DoState(PointerWrap &p)
{
auto s = p.Section("Memory", 1, 2);
auto s = p.Section("Memory", 1, 3);
if (!s)
return;
@@ -348,7 +348,8 @@ void DoState(PointerWrap &p)
if (!g_RemasterMode)
g_MemorySize = RAM_NORMAL_SIZE;
g_PSPModel = PSP_MODEL_FAT;
} else {
} else if (s == 2) {
// In version 2, we determine memory size based on PSP model.
u32 oldMemorySize = g_MemorySize;
p.Do(g_PSPModel);
p.DoMarker("PSPModel");
@@ -359,6 +360,17 @@ void DoState(PointerWrap &p)
Init();
}
}
} else {
// In version 3, we started just saving the memory size directly.
// It's no longer based strictly on the PSP model.
u32 oldMemorySize = g_MemorySize;
p.Do(g_PSPModel);
p.DoMarker("PSPModel");
p.Do(g_MemorySize);
if (oldMemorySize != g_MemorySize) {
Shutdown();
Init();
}
}
p.DoArray(GetPointer(PSP_GetKernelMemoryBase()), g_MemorySize);