From e45c25c4c9569ed0a0d5dd565e70d63cb27c6341 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Sat, 4 Jul 2026 20:24:35 +0200 Subject: [PATCH] [XAM] Added check for UserSetting max ID --- src/xenia/kernel/xam/user_settings.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/xenia/kernel/xam/user_settings.h b/src/xenia/kernel/xam/user_settings.h index 3c0471b84..b97735e1a 100644 --- a/src/xenia/kernel/xam/user_settings.h +++ b/src/xenia/kernel/xam/user_settings.h @@ -27,6 +27,8 @@ namespace xam { enum class X_USER_PROFILE_SETTING_SOURCE : uint32_t; struct X_USER_PROFILE_SETTING; +constexpr uint32_t kMaxUserSettingId = 0x58; + constexpr uint32_t SettingKey(X_USER_DATA_TYPE type, uint16_t size, uint16_t id) { return static_cast(type) << 28 | size << 16 | id; @@ -530,6 +532,12 @@ class UserSetting : public UserData { } static bool is_setting_valid(uint32_t setting_id) { + const auto setting = static_cast(setting_id); + + if (setting.id < kMaxUserSettingId) { + return true; + } + return std::find(known_settings.cbegin(), known_settings.cend(), static_cast(setting_id)) != known_settings.cend();