Commit Graph
15 Commits
Author SHA1 Message Date
Adrià eeb7760717 Merge pull request #10169 from xXPBSXx/docs/debt-userservice-accessibility-title
docs(debt): note how a title calls the sceUserService accessibility getters
2026-10-26 16:12:19 +01:00
SlugZero d950147cdc docs(debt): record unverified values in libSceUserService and libScePad 2026-10-24 19:21:15 +02:00
SlugZero 58a1bcc5a3 feat(pad): support up to 4 controllers with dynamic user discovery
- Track up to 4 pad slots in libScePad with per-slot inputs, outputs, sensor fusion, and deadbands
- Support dynamic user login/logout events and multi-user registration in libSceUserService
- Map SDL controllers 0-3 to Players 1-4 in libSceVideoOut while preserving Player 1 keyboard and mouse composition
- Add test coverage for multi-controller pads and multi-user services
2026-10-24 19:21:15 +02:00
xXPBSXxandClaude Sonnet 5.5 edb66d9cc1 docs(debt): note how a title calls the sceUserService accessibility getters
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:25:52 +02:00
Dean Galvin f9cbe3f1ac docs(libSceUserService): keep the keyboard type entry under the length limit 2026-10-23 23:29:29 +13:00
Dean Galvin 9ec09517ee fix(libSceConvertKeycode): treat oversized app metadata as a PS5 title
AppMetadata throws length_error for a title or title ID that does not fit its
buffer, which the title ID lookup did not catch, so a homebrew title with a long
ID made sceConvertKeycodeGetImeKeyboardType throw instead of using the PS5
fallback. Catch it with the other metadata failures and cover oversized,
malformed and missing metadata at the export. sceUserServiceGetKeyboardType also
gets a test that a malformed ANYPS5_LANGUAGE is rejected with the output left
untouched, and the debt entries say so.
2026-10-23 23:25:25 +13:00
Dean Galvin 835c2995ed feat(libSceUserService): report the keyboard type of the system language
sceUserServiceGetKeyboardType now returns the keyboard type of the configured
system language from the repository owner's table (languages 0 to 29), with 20
(US English) for a language outside it. The input variants stay 0, the only
value the table gives for Japanese and Traditional Chinese.

sceConvertKeycodeGetImeKeyboardType takes the PS4 client rule from the title ID
prefix (CUSA is PS4); a missing or custom ID is treated as PS5. Tests walk the
owner's table through both calls and the title ID cases; both debt entries
updated.
2026-10-23 22:40:29 +13:00
Dean Galvin 1e869157d0 fix(libSceUserService): report keyboard type 20 (US English) by default
The initial user reported keyboard type 0, which the converter maps to IME type 0
and then rejects, so a title reading the layout still could not use it. Report 20
for sceUserServiceGetKeyboardType, which the owner's table maps to IME keyboard
type 4 (English, US); the Japanese and Traditional Chinese input variants stay 0.
Tests and both debt entries updated.
2026-10-23 19:39:38 +13:00
Dean Galvin f648ad61e2 fix(libSceConvertKeycode): map the user's keyboard type to the IME keyboard type 2026-10-23 18:19:52 +13:00
boykopovar 5862c362f4 fix(user-service): restore initialization and accessibility signatures 2026-10-21 21:48:00 +03:00
KernelPanicNTandClaude Opus 5.5 1fbbad7c55 fix(libSceUserService): check the thread priority on initialization
sceUserServiceInitialize reads the thread priority from the first int
of its parameters, and sceUserServiceInitialize2 takes it as its
argument. A PS5 returns 0x80960005 for a priority outside 0x100 to
0x2FF, and 0x80960003 when Initialize2 is called on an initialized
service, where this returned success.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 10:37:19 +00:00
Nithishvelan M 63cfca8466 feat(libSceUserService): declare KeyremapEnable and Zoom as throwing stubs 2026-10-17 08:43:48 +05:30
Nithishvelan M e92484a251 feat(libSceUserService): implement sceUserServiceGetAccessibilityKeyremapEnable and sceUserServiceGetAccessibilityZoom 2026-10-16 08:42:16 +05:30
hugodearaujoandClaude Opus 5.5 bae9b32ce3 fix(libSceUserService): report initialization the way the console does
Measured on a PS5 (firmware 13.60): before sceUserServiceInitialize and
after sceUserServiceTerminate, the login list, the event poll and
Terminate return NOT_INITIALIZED (0x80960002); a second Initialize
returns ALREADY_INITIALIZED (0x80960003); a new initialization reports
the initial user's login again.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 12:10:35 -03:00
Adrià FranchandClaude 342a8c4590 docs(debt): move library entries to one file per library
Co-Authored-By: Claude <[email protected]>
2026-10-12 20:38:29 +02:00