mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
6.2 KiB
6.2 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
- libSceNpGameIntent additional exports - these name/NID pairs are present in the inspected export inventory. Parameter lists, return types and behavior are unverified. Parameterless
intdeclarations are import-resolution placeholders, not verified ABI prototypes; every entry throws throughNotImplemented_nid_no_patch. No runtime functionality is implemented.
The inventory label is not authenticated retail-firmware provenance. The inspected image contains raw module-parameter words 0x13590001 at +0x10 and 0x13600007 at +0x14. Using the published static ELF membership procedure, its 20 unique function NIDs have sorted-LF SHA-256 04952ce9705980433d9f6f51c9e20d2f6b354a102c085dd3b545ed0b96f5b6f7; all 5 entries below are present. This digest identifies the function-NID set, not the whole binary or its ABI. An independent review on this PR corroborated these identities using a separately reported 13.42 reference; that does not establish matching binaries, prototypes or behavior.
| Name | NID |
|---|---|
sceNpGameIntentGetPermittedIntentTypes |
+u0P5feg100 |
sceNpGameIntentLaunchAppForPinvoke |
4hjt8Rxl9CY |
sceNpGameIntentLaunchAppRequestToGkp |
hSVuTA3vJuQ |
sceNpGameIntentRemoveLaunchCallback |
RQPgtaOJdTk |
sceNpGameIntentRequest |
aScB-WDl+L0 |
- 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.
- sceNpSessionServiceInitialize, sceNpSessionServiceSendPlayerSessionRequestToJoin and sceNpSessionServiceTerminate (libSceNpGameIntent) - names and NIDs are present in the PS5 13.60 export inventory. Their signatures and behavior are unknown; they are declared without parameters solely to resolve known imports, make no ABI claim, and throw on every call.
- 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