Files
AnyPS5/docs/dev/debt/libSceConvertKeycode.md
T

1.3 KiB
Raw Blame History

libSceConvertKeycode technical debt

Functional

  • sceConvertKeycodeGetVirtualKeycode and sceConvertKeycodeGetCharacter: layouts 31–39 throw until the guest platform and compiled SDK version are exposed. GetVirtualKeycode also throws for version-dependent Y/Z mappings in layouts 2, 3 and 12. Mapping tables and modifier behavior are recovered; no SDK version is guessed.
  • sceConvertKeycodeGetImeKeyboardType: implemented exactly as the repository owner (boykopovar) specified the UserService keyboard type (plus the Japanese variant for type 37 and the Traditional Chinese variant for type 39) to IME keyboard type table, the SDK compatibility rules (38 becomes 4 for PS5 SDK below 0x06000000 or PS4 SDK below 0x10000000; 39 becomes 29 for PS5 SDK below 0x08000000 and for every PS4 client), the error codes and the unmatched-type result (success, IME type 0). The PS4/PS5 client rule assumes a PS5 process because sceKernelIsPs4Process is unimplemented and AnyPS5 runs PS5 processes. UserService has no stored keyboard setting yet, so every user reports keyboard type 0 and the function returns IME type 0 until one is stored (see libSceUserService.md).