From 573cce0fe2724cbdcab38a22153009275c26672e Mon Sep 17 00:00:00 2001 From: The-Little-Wolf <116989599+The-Little-Wolf@users.noreply.github.com> Date: Sun, 28 Jun 2026 14:38:08 -0700 Subject: [PATCH] [Xam/Locale] - Implement XTLGetLanguageV2 - Implement XTLGetLanguageV2 - Used by Internet Explorer --- src/xenia/kernel/xam/xam_locale.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/xenia/kernel/xam/xam_locale.cc b/src/xenia/kernel/xam/xam_locale.cc index 37445f0f7..26fd37c5d 100644 --- a/src/xenia/kernel/xam/xam_locale.cc +++ b/src/xenia/kernel/xam/xam_locale.cc @@ -601,6 +601,27 @@ dword_result_t XamGetLanguage_entry() { } DECLARE_XAM_EXPORT1(XamGetLanguage, kNone, kImplemented); +dword_result_t XTLGetLanguageV2_entry() { + auto desired_language = + static_cast(kernel_state()->xconfig()->ReadSetting( + XCONFIG_USER_CATEGORY, + XCONFIG_USER_CATEGORY_ENTRIES::XCONFIG_USER_LANGUAGE)); + + uint32_t region = xeXGetGameRegion(); + if (desired_language < XLanguage::kSwedish) { + return static_cast(desired_language); + } + if ((region & 0xff00) != 0x100) { + return static_cast(XLanguage::kEnglish); + } + if (region == 0x101) { + return static_cast(XLanguage::kJapanese); + } else { + return static_cast(XLanguage::kKorean); + } +} +DECLARE_XAM_EXPORT1(XTLGetLanguageV2, kNone, kImplemented); + pointer_result_t XamGetLanguageLocaleFallbackString_entry(dword_t language) { assert_false(language >= static_cast(XLanguage::kMaxLanguages)); return kernel_state()->xam_state()->GetLanguageFallbackAddress(language);