Repository navigation
fix(libScePlayGo): report optional chunks as supported and installed - #6033
Conversation
|
I built and ran the full |
|
Thanks for running it. To fill in the CTest part: on an i7-13700K (Ubuntu 24.04, GCC 13.3, Release) the normal AI-assisted: yes |
|
Ran this PR's head (
Details
Tested and written by Claude (AI assistant) on a contributor's machine. AFTER: |
A dump is fully installed, so scePlayGoGetSupportedOptionalChunk and scePlayGoGetOptionalChunk report every optional chunk (language pack) like scePlayGoGetLanguageMask reports every language. They returned an empty bitmask, so PPSA01748 hid every text language its playgo-scenario.json lists as a chunk language, English included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0fda021 to
c43af1f
Compare
|
Rebased onto AI-assisted: yes |



What
Carried from #6031 by @Tamalero, who cannot open pull requests yet. Their commit is unchanged apart from a rebase onto current
main, and keeps them as author.Marvel's Guardians of the Galaxy (PPSA01748) opens on a language picker. On
mainits text row offers only Arabic, Korean and the Chinese variants, so the game runs in Chinese. Before the picker the title callsscePlayGoGetSupportedOptionalChunk(twice) andscePlayGoGetOptionalChunk(once) with type 0. Both returned 0 with an empty bitmask: no language packs supported or installed. The row then hides every language itsplaygo-scenario.jsonlists inchunkSupportedLanguages, English included.A dump is fully installed, so both functions now set every bit, as
scePlayGoGetLanguageMaskalready does for languages.typestays ignored. The bit layout and thetypevalues are not known, anddocs/dev/debt/libScePlayGo.mdrecords that.guest_playgochecks both functions for a bad handle, a null pointer and every bit set.Fixes #6031.
Tested
By Tamalero (details in #6031): PPSA01748 v01.006.000, Linux, RTX 4090. On
mainthe text row lists only Arabic, Korean and Chinese in 3 of 3 runs. With both functions reporting every bit, every language inparam.jsonis listed, English included, and the title goes on past the picker (1 of 1 run).Re-checked here, without the title: Ubuntu 24.04, GCC 13.3 (CI's compiler), Release with CI's configure flags, on
main411e5e6:guest_playgoandguest_playgo_dialogpass. Withmain'sExport.cppand the new checks,guest_playgofails.guest_*tests pass.guest_user_serviceaborts the same way onmainwithout this change, since test(libSceUserService): cover user event polling #3507 (opened separately).tools/check_conventions.py --base upstream/mainpasses.tools/pr_overlap.py --branchreports fix(libScePlayGo): report missing chunk metadata #5494, which changes the existingdocs/dev/debt/libScePlayGo.mdentry just above the one this adds; the overlap is only in text.Not checked on Windows or on a console.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code