Repository navigation
Description
Since #5494, a dump with neither playgo-chunk.dat nor playgo-scenario.json throws on the first nonzero chunk id. High on Life is one of those dumps. On main it now aborts during startup, before its first logo:
terminate called after throwing an instance of 'std::runtime_error'
what(): scePlayGo: sce_sys/playgo-chunk.dat and sce_sys/playgo-scenario.json are missing, so chunk ID 1 cannot be checked
Before #5494 it got SCE_PLAYGO_ERROR_BAD_CHUNK_ID and ran, with the "damaged save" symptom from #5487. With #5494's earlier opt-in, APS5_PLAYGO_ASSUME_UNLISTED_CHUNKS_INSTALLED=1, it loaded its saves and played. The merged version dropped that opt-in, so there's no way to run this dump on main now.
I understand the stop is deliberate, since an incomplete dump can't say which chunks exist. The two known titles need opposite answers, though:
- High on Life asks
scePlayGoGetLocusabout ids 0–999 and needs them reported installed (High on Life (PPSA15388): since #4491 every save reports "data still being installed" (scePlayGoGetLocus BAD_CHUNK_ID for chunks ≥ 1, dump has no playgo-* files) #5487). - Sifu (PPSA03001) walks ids until the first error and needs
BAD_CHUNK_IDto end the walk (fix(libScePlayGo): answer chunk ids from the package layout #4491).
So no single default fits both. That's why my branch keeps the stop and lets the user answer for their dump.
Title: High on Life (PPSA15388), dump without PlayGo files.
Where it stops: at startup, on main 8cd937e29. Linux, RTX 4090. 1 of 1 runs.
Fix
Branch: https://github.com/Tamalero/AnyPS5/tree/fix/playgo-unlisted-chunks-setting (one commit on 760ffa683).
APS5_PLAYGO_UNLISTED_CHUNKS=installed: ids of a dump without PlayGo metadata are reported installed (LOCAL_FAST).APS5_PLAYGO_UNLISTED_CHUNKS=absent: they returnSCE_PLAYGO_ERROR_BAD_CHUNK_ID, the behaviour from before fix(libScePlayGo): report missing chunk metadata #5494.- Unset: the fix(libScePlayGo): report missing chunk metadata #5494 stop stays, and its message now names the setting. Any other value throws.
- Dumps with
playgo-chunk.dat,playgo-chunkdefs.xmlorplaygo-scenario.jsonare unaffected.
GuestPlayGo runs three more layouts in their own processes: installed, absent, and an invalid value. The existing no-file checks now also require the setting's name in the message.
Details and tests
- High on Life, relinked against the branch, with
APS5_PLAYGO_UNLISTED_CHUNKS=installed: it starts and plays its logos at 60 FPS with no PlayGo error. Onmainit aborts at the same point. Linux (CachyOS), RTX 4090, Release. guest_playgopasses. WithExport.cppfrommainand the new tests it fails (negative check).tools/check_conventions.py --base origin/mainpasses.- Not tested: Windows (the test sets the variable with
_putenv_sthere), Sifu itself (I don't have it;absentis the pre-fix(libScePlayGo): report missing chunk metadata #5494 path that fix(libScePlayGo): answer chunk ids from the package layout #4491 measured on it). - Ratchet & Clank (PPSA01474) also has no PlayGo files but didn't hit the stop on
main; Octopath Traveler 0 (PPSA28495) has no PlayGo files either; I haven't rerun it onmain. - I have fewer than 10 merged PRs, so this is an issue with the branch rather than a PR. Related: fix(libScePlayGo): report missing chunk metadata #5494, High on Life (PPSA15388): since #4491 every save reports "data still being installed" (scePlayGoGetLocus BAD_CHUNK_ID for chunks ≥ 1, dump has no playgo-* files) #5487, fix(libScePlayGo): answer chunk ids from the package layout #4491.
Tested and written by Claude (AI assistant) on a contributor's machine.
Activity
xXPBSXx commentedon Oct 15, 2026
Another dump in this class: Kena: Bridge of Spirits (PPSA01746, UE4). Its
sce_syshas noplaygo-chunk.datand noplaygo-scenario.json(Games\PPSA01746\sce_sys: about, ext_info.dat, icon0/pic0/pic1/pic2, keystone, nptitle.dat, param.json, pfs-version.dat, snd0.at9, trophy2, uds), and onmainit stops at startup on the throw this issue describes:(
PPSA01746_rX/run_054952.errline 103, followed byFATAL: abort() (SIGABRT)at line 104;maina077a88df5bc4ec26a3049aa721ac37ec8f02305+ #5778e9c98900e7c6c466381a3d99ed8d558b6d9f053f.)With a local change that makes
IsKnownChunkreturnfalseinstead of throwing (so the chunk id is answered withSCE_PLAYGO_ERROR_BAD_CHUNK_ID, the behaviour before #5494; not part of any PR), the same tree ran the full 300 s requested without any exception:PPSA01746_rX/run_060509.errhas 114 lines, nowhat(), noFATAL. I did not test the other answer (reporting the chunks as installed), so I do not know whether Kena also runs with it; and I did not check a picture. So Kena is, like Sifu, a title that is not stopped byBAD_CHUNK_ID, which is consistent with a setting that lets the user choose the answer per dump.Tested. Windows 10 (19045), MinGW-w64 GCC 15.2, Release, NVIDIA GeForce RTX 4080 SUPER. Merge tree
5cba9b0321cdfd3453d73c4eada70caa26c8c30b=maina077a88df5bc4ec26a3049aa721ac37ec8f02305+ #5778, plus the local one-line change above;ninja -j 8 libsexit 0 (script times 06:03:15 to 06:04:40);run_title.ps1, one game at a time; script times 06:05:08 to 06:16:33 (includes the wait for the run mutex), 300 s requested, one run. Title executablePPSA01746_rX/app.exe, a hardlink ofPPSA01746_rH/app.exe; relinker commit and command not recorded in my notes. Without the PlayGo change (tree without the local edit):run_054952.err, script times 05:49:50 to 05:59:55, the throw above. Not tested: Linux, other GPUs, the "installed" answer, a picture.AI-assisted (Claude Code).
johnmaia commentedon Oct 15, 2026
Another one: Disney Epic Mickey: Rebrushed (PPSA15657, UE4). Its
sce_syshas no PlayGo file either (about, disc_info.dat, icon0/pic0/pic1/pic2, keystone, nptitle.dat, param.json, pfs-version.dat, trophy2, uds; noplaygo-chunkdefs.xmlat the root). Onmain0029e62 (Windows 11, RTX 4080) it stops at startup, before the first frame:Before #5494, with
SCE_PLAYGO_ERROR_BAD_CHUNK_IDas the answer, this title booted, loaded its save and played its first level on Linux and Windows across many runs (for examplemaind8888df on 10-14). So for this title the pre-#5494 default was enough. I haven't logged which chunk ids it asks for.AI-assisted: yes (Claude Code)
johnmaia commentedon Oct 15, 2026
Follow-up for PPSA15657: with #6236 and
APS5_PLAYGO_UNLISTED_CHUNKS=absent, Epic Mickey: Rebrushed runs again onmain0029e62 (Windows, RTX 4080): title, save load and about 5 minutes in its first level.absent(SCE_PLAYGO_ERROR_BAD_CHUNK_ID, the pre-#5494 answer) is enough for this title. Details on #6236.AI-assisted: yes (Claude Code)
billythemenace2 commentedon Oct 15, 2026
Sackboy: A Big Adventure (PPSA01289, UE4, no PlayGo files) is another title for this list: it needs
absent, andinstalledmakes Unreal run out of memory at startup. Details and logs are on #6236.AI-assisted (Claude Code).
MarcZX10 commentedon Oct 17, 2026
The configurable behavior described here is already on current
mainthrough #6236. I verified thatlibScePlayGo/Export.cppreadsAPS5_PLAYGO_UNLISTED_CHUNKS, andGuestPlayGo.cppcovers theinstalled,absent, and invalid-value cases. The open issue appears resolved by that merge; please close it if you consider the title reports addressed.oneandonlydean commentedon Oct 18, 2026
Fixed by #6236 (e751dd2): APS5_PLAYGO_UNLISTED_CHUNKS lets the user answer unlisted chunks. Closing.