mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
3.8 KiB
3.8 KiB
libSceUserService technical debt
Unknown function info
- sceUserServiceGetNpAccountId (libSceUserService) - the account id for a user with no linked PSN account is assumed to be 0 with success; libSceNpManager's
sceNpGetAccountIdAanswers the same question withSCE_NP_ERROR_SIGNED_OUT - sceUserServiceInitialize and sceUserServiceInitialize2 (libSceUserService) - event delivery has no background service thread, so the confirmed priority and Initialize2 CPU affinity mask do not affect host scheduling.
- sceUserServiceGetUserColor (libSceUserService) - the profile colour corresponds to user index (0: blue, 1: red, 2: green, 3: pink); colours 1, 2 and 3 are assumed, not measured
- sceUserServiceGetUserName (libSceUserService) -
0x80960105, which a PS5 (firmware 13.60) returns for a user id it does not know, has no known name; it isUSER_SERVICE_ERROR_UNKNOWN_USERhere. On the console a registered user who is not logged in still gets their name; here up to 4 users ("Player", "Player2", "Player3", "Player4") are supported; user names "Player2", "Player3" and "Player4" are assumed, not measured - sceUserServiceGetEvent (libSceUserService) - login and logout events queued dynamically on controller hotplug have no source and are assumed, not measured
- sceUserServiceGetAgeLevel (libSceUserService) - on a PS5 (firmware 13.60) the value is the age set in the user's parental restriction (0, 7, 12 and 15 were measured) and
0xFFFFFFFFwithout one; a user who is not logged in returns0x80960009with or without an output. Parental restrictions are not modelled, so the initial user is always reported as unrestricted. PPSA12544 (Unity) only stores the value for its user profile - sceUserServiceGetAccessibilityChatTranscription, PressAndHoldDelay, TriggerEffect, Vibration, ZoomEnabled, ZoomFollowFocus (libSceUserService) - report 0, 0, 1, 1, 0 and 1, what a PS5 (firmware 13.60) reports for a user whose accessibility settings are all at their defaults; the console reports the user's own settings (a changed vibration intensity read 3), which are not modelled. What each number means is unknown. A user who is not logged in returns
0x80960009with or without an output. One title (PPSA04354) disassembled for this entry calls all six in a row (first at 0xea0efa) with its user ID, only when a flag bit (0x10) is set; a result other than 0 from any of them ends the block and is returned, and only when all six return 0 does it store the six values in its object. - sceUserServiceGetKeyboardType, sceUserServiceGetJapaneseInputType, sceUserServiceGetTraditionalChineseInputType (libSceUserService) - AnyPS5 stores no per-user keyboard setting, so the initial user reports the keyboard type of the configured system language (
ANYPS5_LANGUAGE, English US by default) and 0 for the two input variants, and any other user id returnsUSER_SERVICE_ERROR_UNKNOWN_USER. The language-to-keyboard-type table is the repository owner's (languages 0 to 29); a valid language outside it, such as Ukrainian (30), reports 20 (US English). A value that is not a console language number is rejected bysceSystemServiceParamGetIntwith an error namingANYPS5_LANGUAGE; the call throws it and leaves the output untouched. The input variant is 0 because the owner's table gives 0 for Japanese and Traditional Chinese, the only languages needing one.sceConvertKeycodeGetImeKeyboardTypeconsumes these values.