[XAM] Implemented XamGetOnlineLanguageAndCountry

This commit is contained in:
Gliniak
2026-05-19 22:37:14 +02:00
parent 9ce91e55fe
commit 072ef7eff7

View File

@@ -332,6 +332,37 @@ dword_result_t XamGetLanguageLocaleString_entry(dword_t language_id,
}
DECLARE_XAM_EXPORT1(XamGetLanguageLocaleString, kLocale, kImplemented);
void XamGetOnlineLanguageAndCountry_entry(qword_t xuid,
dword_t language_result_buffer,
dword_t country_result_buffer) {
const auto user = kernel_state()->xam_state()->GetUserProfile(xuid);
if (country_result_buffer) {
uint8_t* country_buffer =
kernel_memory()->TranslateVirtual<uint8_t*>(country_result_buffer);
const uint8_t country_id =
user ? user->GetCountry()
: kernel_state()->xconfig()->ReadSetting<uint8_t>(
XCONFIG_USER_CATEGORY, XCONFIG_USER_COUNTRY);
*country_buffer = country_id;
}
if (language_result_buffer) {
uint8_t* language_buffer =
kernel_memory()->TranslateVirtual<uint8_t*>(language_result_buffer);
const uint32_t desired_language =
user ? user->GetLanguage()
: kernel_state()->xconfig()->ReadSetting<uint32_t>(
XCONFIG_USER_CATEGORY,
XCONFIG_USER_CATEGORY_ENTRIES::XCONFIG_USER_LANGUAGE);
*language_buffer = static_cast<uint8_t>(desired_language);
}
}
DECLARE_XAM_EXPORT1(XamGetOnlineLanguageAndCountry, kLocale, kImplemented);
dword_result_t XamGetOnlineLanguageAndCountryString_entry(
dword_t language_id, dword_t country_id, dword_t buffer_length,
lpu16string_t buffer) {