mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-21 08:12:09 -05:00
1.3 KiB
1.3 KiB
libSceConvertKeycode technical debt
Unknown function info
- sceConvertKeycodeGetCharacter (libSceConvertKeycode) - the signature
(uint16_t keycode, uint32_t, uint32_t keyboardType, char16_t* character)is inferred from PPSA12361, which passes a 16-bit keycode, 0, the type fromsceConvertKeycodeGetImeKeyboardTypeand a pointer it reads one UTF-16 unit from when the result is 0. The meaning of the second argument is unknown. PRAGMATA (PPSA02530, #5726) and Onimusha: Way of the Sword (PPSA27836) pass0x4000000as a constant: Onimusha calls it for every keycode from 0 to 0x8F to build a table of key names, upper-casesatozitself and skips keycodes that fail or return 0, so that bit is ignored and the unshifted character is returned as for 0. Any other bit throws, and so does a keyboard type other than 0.
Functional
- sceConvertKeycodeGetCharacter (libSceConvertKeycode) takes the keycode as a USB HID keyboard usage and returns the unshifted character of the US layout for letters, digits, punctuation, space and the keypad. A keycode without a character returns 0 with the character 0; whether the console returns an error instead is not measured.