mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-29 12:15:39 +00:00
4.3 KiB
4.3 KiB
libSceNpGameIntent technical debt
Silent stubs
- sceNpGameIntentVshInitialize, sceNpGameIntentVshTerminate (libSceNpGameIntent) - VSH initialization and termination return 0 without performing shell operations, matching
sceNpGameIntentInitializeandsceNpGameIntentTerminate - sceNpAppLauncherInitialize, sceNpAppLauncherTerminate (libSceNpGameIntent) - app-launcher lifecycle returns success without performing launch work;
sceNpAppLauncherInitializeaccepts its init parameter without validation, following the silent-stub precedent ofsceNpGameIntentInitialize— a title calls it early in boot, and returning success lets it continue; an atomic flag tracks initialized state sosceNpAppLauncherLaunchAppcan reject calls made outside the lifecycle
Unknown function info
- sceNpGameIntentReceiveIntent, sceNpGameIntentGetPropertyValueString (libSceNpGameIntent) - firmware 13.42 traces report
0x80553802beforesceNpGameIntentInitialize(precedence over argument validity), and0x80553804for invalid arguments (null pointer, empty key, or zero buffer size);sceNpGameIntentTerminateresetting initialized state is modeled lifecycle behavior rather than hardware-verified.sceNpGameIntentReceiveIntentreportedly requiresinfo->size == 0x4140on firmware 13.42, while AnyPS5NpGameIntentInfois0x560bytes (matching fpPS4) and set bysceNpGameIntentInfoInit, so initialized objects are rejected by the receiver's measured size guard. Complete retail layout, output field offsets, and retail behavior ofsceNpGameIntentInfoInitare unverified; expanding the type with unverified reserved bytes is not an evidence-backed solution. - sceNpAppLauncherLaunchApp (libSceNpGameIntent, NID
GbayQ7DO8jA) - its recovered signature is(int32_t, const char*, const char*): an unhandled first argument, a required non-empty string and an optional string rejected past 0x2000 bytes, returning0x80553A02beforesceNpAppLauncherInitializeand0x80553A04on invalid arguments. The launch itself is not implemented and throws; the firmware tail calls an internal launch through an extra library context and remaps its0x805538xxerrors into0x80553Axx - sceNpGameIntentGetUdsNpComId, sceNpGameIntentLaunchApp, sceNpGameIntentLaunchApp2, sceNpGameIntentNotifyAppLaunched, sceNpSessionServiceGetJoinedPartySession, sceNpSessionServiceGetRunningGamePlayerSession and sceNpSessionServiceSendPlayerSessionInvitations (libSceNpGameIntent) - names and NIDs are present in the PS5 3.20 export inventory. They are declared without parameters solely to resolve known imports and make no ABI claim.
- sceNpGameIntentInitParamInit (libSceNpGameIntent) - struct layout matches fpPS4
SceNpGameIntentInitParam; settingsize, zeroing reserved bytes, and throwing on null pointer follow Sony SDK*ParamInitconventions but are unverified on retail hardware - sceNpGameIntentInfoInit (libSceNpGameIntent) - struct layout matches fpPS4
SceNpGameIntentInfo; settingsize = 0x560,user_id = -1, zeroing fields, and throwing on null pointer follow fpPS4 defaults, but reported firmware 13.42 behavior requires0x4140forsceNpGameIntentReceiveIntent, so the helper's0x560size does not match retail receiver defaults; the complete retail structure layout and retail behavior ofsceNpGameIntentInfoInitremain unverified. Title code disagrees with that layout: before their onesceNpGameIntentReceiveIntentcall, PPSA01494, PPSA03984, PPSA21564, PPSA30839, PPSA31162 and PPSA34502 zero the 0x4138 bytes after an 8-byte size (five store size 0x4140); after it they read the type at 0xc but pass 0x134, not 0x153, as the intent data. None of them callssceNpGameIntentInfoInit