mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-29 12:15:39 +00:00
sceNpAppLauncherLaunchApp returned the libSceNpGameIntent codes 0x80553802/0x80553804, but the firmware tail remaps the internal launch library errors into the launcher family, so the export reports 0x80553A02 before initialize and 0x80553A04 on invalid arguments; the tests now assert those values and the unrelated GameIntent constants are untouched. The two assertions that a valid launch call must throw until implemented are removed; the production throw and its debt entry stay, and the validation and lifecycle coverage is unchanged. The debt file keeps the silent-stub, InitParamInit, InfoInit and remaining unknown-export entries, updating only the launcher parts.
3.9 KiB
3.9 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