2026-09-02 (ps5 native execution) targeted SDK dictionary, procparam inspection, and PRX module contract
Resolved the native PS5 process startup blocker
0x80020063 (SCE_KERNEL_ERROR_ESDKVERSION), decoupled SDK
versioning into an external dictionary, canonized procparam auditing in
048-selfaudit, and uncovered the
PT_SCE_MODULE_PARAM contract on hardware.
Targeted SDK builds and external dictionary (D297):
- Created
selfish/data/sdk-versions.tomlmapping human-readable version strings (e.g."2.000.009","8.050.001"), aliases (ps5-native,ps5-current,ps4-compat), generations, and descriptions outside of source code. - Implemented
selfish-container::sdk::SdkDictionarywith validation against console generations (rejecting Gen-5 Prospero versions for Gen-4 packages and vice versa). - Added
patch_elf_procparam()to locatePT_SCE_PROCPARAMand stamp bothsdk_versionandsdk_version_second. - Exposed
--sdkonselfish-cli wrap,obscene-tool mkself, andMakefile. Default for native isps5-native(0x08050001/0x02000009). - Verified on PS5 FW 12.40 hardware:
[KERNEL] INFO: SDK vesion: PS4:08050001 PPR:02000009.SCE_KERNEL_ERROR_ESDKVERSIONis completely resolved.
- Created
libc_paramand SIGSEGV at 0x28 diagnosis (D298):- Setting
.libc_param = 0caused an immediateSIGSEGVpage fault at address0x0000000000000028insidelibkernel.sprxduring startup. - Restored
.libc_param = &obs_libc_param:libkernel,libSceLibcInternal,libSceSysmodule, andlibSceAmprloaded cleanly without memory faults.
- Setting
PT_SCE_MODULE_PARAMcontract identified (D298):- After the eboot's primary libraries loaded,
libSceSysmodulereportedPRX_SCE_MODULE_LOAD_ERROR (0xa0020102)("Lack of a .prx file in /app0/sce_module is detected"). - Investigation identified that PS5 PRX modules require program header
PT_SCE_MODULE_PARAM(0x61000002), which carries module parameters including SDK version (0x08050001/0x02000009). - Adding
PT_SCE_MODULE_PARAMdirectly to our syntheticsrc/probe/sce_module.csatisfieslibSceSysmodule, allowing modules to build completely from open source.
- After the eboot's primary libraries loaded,
Canonized
PT_SCE_PROCPARAMaudit in048-selfaudit(D299):- Extended
048-selfaudit/container-structureinsrc/probe/sections/selfaudit.cto locate and readPT_SCE_PROCPARAM, reportingps4_sdk,ppr_sdk, and libc/mem pointers. - Verified that both host harness (
make check) and tooling tests (all 209 unit tests) pass cleanly.
- Extended
End-to-end native execution on PS5 hardware (10,112 OBS records):
- Integrated
PT_SCE_MODULE_PARAM(0x61000002) directly intolink/library.ldandsrc/probe/sce_module.c, and omittedlibSceFios2for Gen-5. - Closed stuck processes cleanly via Home Menu (avoiding POSIX
killsignals that bypass VSH app lifecycle state). - Deployed the complete native build to
/user/data/homebrew/PPSA99980via./bin/obscene native --deploy. - Executed
launch PPSA99980on console FW 12.40: process ran natively without errors or faults, executing sections000-bootthrough910-bulk. - Captured full live run report in
reports/hardware/console-native-run.txt: 10,112 records, tally122|12|381|54, concluding cleanly atOBS|end|puts.
- Integrated