aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/am/frontend/applet_software_keyboard.cpp9
-rw-r--r--src/core/hle/service/am/frontend/applet_software_keyboard_types.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/core/hle/service/am/frontend/applet_software_keyboard.cpp b/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
index fe07d72912..db42781e18 100644
--- a/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
+++ b/src/core/hle/service/am/frontend/applet_software_keyboard.cpp
@@ -213,6 +213,15 @@ void SoftwareKeyboard::InitializeForeground() {
std::memcpy(&swkbd_config_new, swkbd_config_data.data() + sizeof(SwkbdConfigCommon),
sizeof(SwkbdConfigNew));
break;
+ case SwkbdAppletVersion::Version1310736:
+ // The common and 8.0.0 parts keep their layout; the 0x68 bytes after them are unknown.
+ // This revision exchanges UTF-8 text: the game's text check replies are UTF-8, and a
+ // UTF-16 result reached it as its first character only.
+ ASSERT(swkbd_config_data.size() >= sizeof(SwkbdConfigCommon) + sizeof(SwkbdConfigNew));
+ std::memcpy(&swkbd_config_new, swkbd_config_data.data() + sizeof(SwkbdConfigCommon),
+ sizeof(SwkbdConfigNew));
+ swkbd_config_common.use_utf8 = true;
+ break;
default:
UNIMPLEMENTED_MSG("Unknown SwkbdConfig revision={} with size={}", swkbd_applet_version,
swkbd_config_data.size());
diff --git a/src/core/hle/service/am/frontend/applet_software_keyboard_types.h b/src/core/hle/service/am/frontend/applet_software_keyboard_types.h
index 6bb8f437d3..f263a704cd 100644
--- a/src/core/hle/service/am/frontend/applet_software_keyboard_types.h
+++ b/src/core/hle/service/am/frontend/applet_software_keyboard_types.h
@@ -30,6 +30,7 @@ enum class SwkbdAppletVersion : u32_le {
Version327689 = 0x50009, // 5.0.0 - 5.1.0
Version393227 = 0x6000B, // 6.0.0 - 7.0.1
Version524301 = 0x8000D, // 8.0.0+
+ Version1310736 = 0x140010, // Switch 2 (Pokemon Pokopia): 0x530-byte config, UTF-8 text
};
enum class SwkbdType : u32 {