Commit Graph
16 Commits
Author SHA1 Message Date
BunnyFlandClaude Opus 5.5 3cc38e5923 test(libSceConvertKeycode): cover both sides of each SDK threshold on PS4 and PS5
Adds the boundary rows suggested in review: PS5 SDK 0x03FFFFFF/0x04000000
for Y/Z, 0x05FFFFFF/0x06000000 for layout 38, 0x07FFFFFF/0x08000000 for 39,
and a PS4 run of the cusa title case for 0x04FFFFFF/0x05000000,
0x08FFFFFF/0x09000000, 0x0FFFFFFF/0x10000000 and layout 39. Every expected
value matches firmware 13.42's module.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 13:28:21 +01:00
BunnyFlandClaude Opus 5.5 00bde56c33 Merge upstream main into fix/convertkeycode-sdk-layouts
Resolves the debt-entry conflict with #10437 and applies the same layout rules to sceConvertKeycodeGetCharacterFromKeyboardData.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 11:41:11 +01:00
BunnyFlandClaude Opus 5.5 525bc94840 fix(libSceConvertKeycode): apply the SDK rules instead of throwing for layouts 31-39 and Y/Z
GetVirtualKeycode and GetCharacter threw for keyboard layouts 31 to 39,
and GetVirtualKeycode for the Y and Z keys of layouts 2, 3 and 12, which
ended the title. GetImeKeyboardType returns layouts 31 to 37 for seven
system languages, and layout 2 for another.

They now follow firmware 13.42's module: a layout the title's SDK does not
know returns INVALID_KEYBOARD_TYPE, and below PS5 SDK 0x04000000 or PS4
SDK 0x09000000 the Y and Z keys of layouts 2, 3 and 12 are swapped.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 11:14:39 +01:00
InfinitySpeed b0ed32bd6c feat(libSceConvertKeycode): implement sceConvertKeycodeGetCharacterFromKeyboardData 2026-10-28 14:27:07 +01:00
MarcZX10 89af2b225e test(libSceConvertKeycode): check the keyboard type lookup at both int32 limits at compile time
LookUp is constexpr, so static_assert evaluates it for INT32_MIN and INT32_MAX in a constant expression, where signed overflow is an error. With the previous 32-bit subtraction the test file no longer compiles ('overflow in constant expression'); the existing runtime case for 0x80000000 only showed the overflow under UBSan.
2026-10-25 12:31:23 +00:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03: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 b5dbd377ed fix(keycode): restore layout modifiers and character conversion 2026-10-21 21:48:08 +03:00
boykopovar 0d237011c7 fix(keycode): restore virtual key mappings and argument types 2026-10-21 21:48:07 +03:00
al3w0f205 df0780c623 test(libSceConvertKeycode): cover space, punctuation and keypad keycode mappings 2026-10-19 23:01:34 -05:00
Nithishvelan M 0585eccbca test(libSceConvertKeycode): cover null character buffer in guest test 2026-10-18 14:35:58 +05:30
xxLnolan 127e111048 test(keycode): cover non-US backslash mapping 2026-10-16 20:24:35 +02:00
simonbronkandClaude Opus 5.5 378ac61788 fix(libSceConvertKeycode): ignore the state bit 0x4000000 RE Engine titles pass
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 12:02:20 +02:00
melihcanandClaude Opus 5.5 0afa191660 test(libSceConvertKeycode): cover sceConvertKeycodeGetImeKeyboardType
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 14:59:08 +02:00