mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-28 12:05:06 +00:00
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
3.1 KiB
3.1 KiB
libSceInvitationDialog technical debt
Silent stubs
- sceInvitationDialogOpen, sceInvitationDialogGetResult (libSceInvitationDialog, PS4) - no dialog is shown and no invitation is sent:
Openmoves the dialog straight toFINISHED, andGetResultreturns 0 witherrorCode0,resultUSER_CANCELED(1), thecallbackArgof the lastOpenand a recipient count of 0, as shadPS4 reports when its window is dismissed and as libSceNpProfileDialog does. Not measured on a console.
Unknown function info
- sceInvitationDialogOpen, sceInvitationDialogGetResult (libSceInvitationDialog, PS4) - the field names and the 144-byte
InvitationDialogParamcome from the shadPS4 header. They match the suppliedlibSceInvitationDialog.sprx: export8XKR6wa64iQat 0xFF0 checks the reserved bytes 0x18..0x37 of the result and writes its status at 0x08, and the helper at 0x410 copies eight bytes of the saved open parameter to 0x00, the eight result bytes to 0x08 and up to 16 20-byte online ids through the pointer at 0x10, after a four-byte count. A param whosesizeis not 144, or whosemodeis neither 1 (send) nor 2 (receive), throws, and so does a result with a non-zero reserved byte.baseParam,userIdanddataParam, with its 1 to 16 recipients, are not checked. - sceInvitationDialogOpen, sceInvitationDialogClose, sceInvitationDialogGetResult (libSceInvitationDialog, PS4) - two paths throw because shadPS4 and the other common dialogs here return different errors:
OpenbeforeInitialize(shadPS4INVALID_STATE, the Signin familyNOT_INITIALIZED) andCloseon a dialog that is not running, which is everyCloseafterInitializehere (shadPS4NOT_RUNNING, the Signin family 0).GetResultbefore the dialog finishes returnsNOT_FINISHEDeven for a null result, as in shadPS4. shadPS4 returns theresultvalue fromGetResult; this returns 0, which the module writes at 0x08 aserrorCode.
Functional
- sceInvitationDialogInitialize, sceInvitationDialogTerminate (libSceInvitationDialog, PS4) -
InitializereturnsNOT_SYSTEM_INITIALIZEDbeforesceCommonDialogInitialize, thenALREADY_INITIALIZED, thenBUSYwhile another dialog holds the common dialog system, in shadPS4's order, andTerminatefrees the system. Only this library takes the system through libSceCommonDialog so far, so the other common dialogs neither returnBUSYbecause of it nor make it returnBUSY. Not measured on a console.