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]>
This commit is contained in:
BunnyFlandClaude Opus 5.5 committed 2026-10-29 13:28:21 +01:00
1 parent 00bde56c33
commit 3cc38e5923
3 files changed
+47 -2

No files matched your search

+17
View File
@@ -160,6 +160,23 @@ int main() {
Require(sceConvertKeycodeGetVirtualKeycode(28, layout, &virtualKey) == static_cast<int>(0x80BC001Du) && virtualKey == 0xABCD);
Require(sceConvertKeycodeGetCharacter(28, 0, layout, &rejectedCharacter) == static_cast<int>(0x80BC001Du) && rejectedCharacter == u'?');
}
const auto setSdkVersion = [&](std::uint32_t version) { std::memcpy(process.data() + 16, &version, sizeof(version)); };
setSdkVersion(0x03FFFFFFu);
Require(sceConvertKeycodeGetVirtualKeycode(28, 2, &virtualKey) == 0 && virtualKey == 89);
setSdkVersion(0x04000000u);
Require(sceConvertKeycodeGetVirtualKeycode(28, 2, &virtualKey) == 0 && virtualKey == 90);
setSdkVersion(0x05FFFFFFu);
KeyboardData oldKeyData{};
oldKeyData.length = 1;
oldKeyData.key_code[0] = 4;
Require(sceConvertKeycodeGetCharacterFromKeyboardData(&oldKeyData, 0, 0, 38, &rejectedCharacter) == static_cast<int>(0x80BC001Du) && rejectedCharacter == u'?');
setSdkVersion(0x06000000u);
Require(sceConvertKeycodeGetVirtualKeycode(28, 38, &virtualKey) == 0 && virtualKey == 89);
Require(sceConvertKeycodeGetVirtualKeycode(28, 39, &virtualKey) == static_cast<int>(0x80BC001Du));
setSdkVersion(0x07FFFFFFu);
Require(sceConvertKeycodeGetVirtualKeycode(28, 39, &virtualKey) == static_cast<int>(0x80BC001Du));
setSdkVersion(0x08000000u);
Require(sceConvertKeycodeGetVirtualKeycode(28, 39, &virtualKey) == 0 && virtualKey == 89);
std::memcpy(process.data() + 16, &sdkVersion, sizeof(sdkVersion));
}