mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-07 13:39:55 +00:00
Restores the existing sceGameUpdateCheck wording (the byte after found is cleared, the rest of the result untouched, the prosper link) and describes sceGameUpdateGetAddcontLatestVersion separately: it clears found and returns 0, and its service path in the module is not read. Names the title by its ID, PPSA24263. Fix-up on camezaro-intc's change.
16 lines
2.9 KiB
Markdown
16 lines
2.9 KiB
Markdown
# libSceGameUpdate technical debt
|
|
|
|
### Silent stubs
|
|
|
|
- [sceGameUpdateCreateRequest, sceGameUpdateCheck, sceGameUpdateGetAddcontLatestVersion](../../../core/libs/prx/libSceGameUpdate/Export.cpp) (libSceGameUpdate) - no patch service is asked. Check answers no update (`found` and the byte after it cleared, the rest untouched, return 0), what the module returns when its service reports `0x80412883`. sceGameUpdateGetAddcontLatestVersion clears `found` and returns 0 after its argument and initialization checks; its service path in the module is not read. Requests use the module's 8 slots with ids from `0x20000000` (a ninth returns `0x80412806`, an aborted request's Check `0x80412807`), as [prosper](https://github.com/mattias800/prosper) reads the PS5 3.20 `libSceGameUpdate.sprx`. Offline console answers are not measured. PPSA22408 aborted on the throw in sceGameUpdateCreateRequest, PPSA24263 on the one in sceGameUpdateGetAddcontLatestVersion. Closes when: measured on a PS5
|
|
|
|
### Unknown function info
|
|
|
|
- [sceGameUpdateCheckTitle](../../../core/libs/prx/libSceGameUpdate/Export.cpp) has an unknown signature and behaviour. The parameterless `int` declaration is an import-resolution placeholder, not a confirmed ABI signature, and every call throws through `NotImplemented_nid_no_patch`. Only its name and NID `sGNKn-jXzHQ` are established by the [13.60 export inventory](https://github.com/xdCloudy/PS5-13.60-Function-Stub-Library/blob/bfec40deb4c47a17d7603ee2bc79aa6862c0c56b/data/firmware-13.60/libscegameupdate-16da6af946.jsonl); not measured on a console.
|
|
|
|
### Functional
|
|
|
|
- [libSceGameUpdate](../../../core/libs/prx/libSceGameUpdate/Export.cpp): initialization tracks host state but does not connect the patch service.
|
|
- [sceGameUpdateCheck](../../../core/libs/prx/libSceGameUpdate/Export.cpp): option zero is supported for argument validation. The original additionally permits option one when a kernel platform predicate succeeds; that platform mode is not modeled. Three titles disassembled for this entry (PPSA01494 01.100.002 at 0x63f1982, PPSA30839 01.003.000 at 0x6bf0c92, PPSA31162 02.000.001 at 0x6a204e1) pass option zero: right after `sceGameUpdateCreateRequest` they fill both the parameter and the result with a 64-bit `size` of 0x30 and zeros after it. On a non-negative return they read only `found` (PPSA01494 tests it for nonzero, the other two for 1), never `addcont_found` or `content_version`; PPSA01494 and PPSA30839 then call `sceGameUpdateDeleteRequest` whatever the result.
|
|
- [sceGameUpdateGetAddcontLatestVersion](../../../core/libs/prx/libSceGameUpdate/Export.cpp): the supplied module confirms a 20-byte entitlement-label input and a 48-byte service output. Null pointers are rejected before initialization is checked. There is no local output-size validation or blanket clearing of the output; answers `found = false` and returns 0 without contacting the patch service, matching `sceGameUpdateCheck`.
|