mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-22 12:26:21 +02:00
Add a reader for PKG game update packages
PSP game updates were distributed as NPDRM .pkg files holding a patched EBOOT (PBOOT.PBP) plus the data files the patch replaces. PkgUnpack reads one: header, item table, both PARAM.SFOs, and the AES-128-CTR that covers everything past the header - including the per-item key split, where an item's pspType byte picks between the PSP and PS3 keys. Nothing new is needed to decrypt these. All packages checked use PRX tag 0x2E5E10F0 for their PBOOT, which PrxDecrypter already has a key for. Also adds "PPSSPPHeadless --install-pkg=DIR", a sibling of --unpack-updater, which installs without any UI. All packages install through it byte -identically to a reference implementation. Format notes are in docs/pkg_notes.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ddc673916d
commit
5089caf2a0
@@ -211,6 +211,7 @@ static const CommandLineParam g_autoParams[] = {
|
||||
{POFF(unpackUpdater), CmdParamType::String, "unpack-updater", '\0', "Unpack the firmware in an updater EBOOT.PBP into DIR and exit", CmdLineMode::Headless},
|
||||
{POFF(unpackUpdaterModel), CmdParamType::String, "unpack-updater-model", '\0', "PSP model to unpack for (01g..12g, default any)", CmdLineMode::Headless},
|
||||
{POFF(unpackUpdaterFilter), CmdParamType::String, "unpack-updater-filter", '\0', "Only unpack entries under this path, e.g. flash0:/font/", CmdLineMode::Headless},
|
||||
{POFF(installPkg), CmdParamType::String, "install-pkg", '\0', "Install the game update in a .pkg into DIR and exit", CmdLineMode::Headless},
|
||||
{POFF(odsLog), CmdParamType::Bool, "odslog", 'o', "Also log through OutputDebugString (Windows)", CmdLineMode::Headless},
|
||||
{POFF(generateInterpreterDispatch), CmdParamType::Bool, "generate-interpreter-dispatch", '\0', "Generate C++ interpreter dispatch code (ExecInstruction) to stdout and exit", CmdLineMode::Headless},
|
||||
{POFF(resolutionScale), CmdParamType::Int, "resolution-scale", '\0', "Set the resolution scale factor"},
|
||||
|
||||
Reference in New Issue
Block a user