mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-31 11:37:00 +01:00
POPS: Converted PS1 EBOOTs, as CFW's popcorn plugin runs them
EBOOTs made with popstation and similar tools have a plain disc image of raw DEFLATE blocks, where a store game has a PGD in the emulator's own format, and no MACs. Like popcorn: the emulator's decoder calls go to its scePopsMan_0090B2C8 import, which now inflates; its CD audio track index check always takes the full-length branch, as the converted image adds CD audio tracks the index doesn't count; and the manager's two MAC checks pass. A converted EBOOT is one whose disc image doesn't start with a PGD. Crash Bandicoot is playable.
This commit is contained in:
1 parent
0b1e1a9bb3
commit
926bf9d390
4 files changed
+132
-5
No files matched your search
@@ -2252,7 +2252,13 @@ static PSPModule *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 load
|
||||
}
|
||||
|
||||
if (PopsBootActive() && !strcmp(modinfo->name, "pops")) {
|
||||
__PopsBootPatchEmulator(module->nm.text_addr, module->nm.text_size);
|
||||
u32 decodeStub = 0;
|
||||
for (const FuncSymbolImport &func : module->importedFuncs) {
|
||||
if (func.nid == 0x0090B2C8 && !strncmp(func.moduleName, "scePopsMan", KERNELOBJECT_MAX_NAME_LENGTH)) {
|
||||
decodeStub = func.stubAddr;
|
||||
}
|
||||
}
|
||||
__PopsBootPatchEmulator(module->nm.text_addr, module->nm.text_size, decodeStub);
|
||||
}
|
||||
|
||||
System_Notify(SystemNotification::SYMBOL_MAP_UPDATED);
|
||||
|
||||
Reference in new issue
Block a user