mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
Initialize, Terminate, UpdateStatus, GetStatus, Open, OpenA, Close and GetResult run the common-dialog state machine. There is no PSN profile UI, so Open and OpenA finish at once and GetResult reports result 0, userAction USER_CANCELED and the caller's userData, as shadPS4 does when its window is dismissed. Paths where shadPS4 and the other common dialogs here return different errors throw, and so does a param whose size or mode does not match the shadPS4 layout. The common-dialog codes the library uses are added to libSceCommonDialog/CommonDialog.hpp.
2.3 KiB
2.3 KiB
libSceNpProfileDialog technical debt
Silent stubs
- sceNpProfileDialogOpen, sceNpProfileDialogOpenA, sceNpProfileDialogGetResult (libSceNpProfileDialog) - no profile is shown:
OpenandOpenAmove the dialog straight toFINISHED, andGetResultreportsresult0,userActionUSER_CANCELED(1) and the caller'suserData, as shadPS4 does when its window is dismissed. Not measured on a console.
Unknown function info
- sceNpProfileDialogOpen, sceNpProfileDialogOpenA, sceNpProfileDialogGetResult (libSceNpProfileDialog) - the layouts come from the shadPS4 header alone:
SceNpProfileDialogParam128 bytes withuserDataat 88,SceNpProfileDialogParamA120 bytes with 4 unnamed bytes aftertargetAccountIdanduserDataat 80, the result 48 bytes. A param whosesizeis not that size, or whosemodeis not 1 to 4, throws.baseParam(size, magic),userIdand the target ID are not checked. - sceNpProfileDialogOpen, sceNpProfileDialogOpenA, sceNpProfileDialogClose, sceNpProfileDialogGetResult (libSceNpProfileDialog) - these paths throw because shadPS4 and the other common dialogs here return different errors:
OpenorOpenAbeforeInitialize(shadPS4INVALID_STATE, the Signin familyNOT_INITIALIZED);Closeon a dialog that is not running, which is everyCloseafterInitializehere (shadPS4NOT_RUNNING, the Signin family 0 andFINISHED);GetResultwith a null result before the dialog finishes (shadPS4ARG_NULL, Signin and NetCtlApNOT_FINISHED).
Functional
- sceNpProfileDialogInitialize (libSceNpProfileDialog) - never returns shadPS4's
NOT_SYSTEM_INITIALIZED(sceCommonDialogInitializenot called) orBUSY(another common dialog in use): libSceCommonDialog shares neither state here.