mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-31 15:09:42 +08:00
3ebfc56d4c
A title that ships no PlayGo sidecar was reported as a single-chunk package. That is wrong for any package whose content is split across chunks: the title is told everything past chunk 0 is not installed, even though a locally dumped title has all of its data present. The Invincible (PPSA06426) ships pakchunk0..8 and asks PlayGo which of those are available. Receiving BAD_CHUNK_ID for chunks 1..8, it re-queried scePlayGoGetLocus for the same chunk in a tight loop that never terminated (observed ~1000 consecutive dispatches with identical arguments). Discover the chunk ids from the pakchunk<N>-<platform>.pak files present under the app0 root instead. Those N are exactly the chunks the package has, so the answer is derived from the install rather than assumed. Chunk 0 is always included, so a title with no pak files at all keeps the previous single-chunk behaviour, and ids outside the discovered set still return BAD_CHUNK_ID so title-side chunk enumeration still terminates. Verified on The Invincible: the discovered set is [0..8], matching the nine pak files, and the GetLocus retry loop no longer occurs. No regression on Dead Cells (PPSA15552): still reaches AGC rendering and presents frames. The existing metadata-free contract test still passes -- its app0 fixture has no pak files, so the discovered set stays [0].