diff --git a/src/xenia/kernel/xam/user_data.cc b/src/xenia/kernel/xam/user_data.cc index 957e1dd4f..349902f0b 100644 --- a/src/xenia/kernel/xam/user_data.cc +++ b/src/xenia/kernel/xam/user_data.cc @@ -73,7 +73,7 @@ UserData::UserData(const X_USER_DATA_TYPE data_type, static_cast(data_.data.binary.size), kMaxUserDataSize); if (!data_.data.binary.size) { - data_.data.binary.size = data_max_size; + return; } extended_data_.resize(data_.data.binary.size); diff --git a/src/xenia/kernel/xam/user_settings.cc b/src/xenia/kernel/xam/user_settings.cc index d07af3b1a..6a167fda1 100644 --- a/src/xenia/kernel/xam/user_settings.cc +++ b/src/xenia/kernel/xam/user_settings.cc @@ -47,7 +47,7 @@ UserSetting::UserSetting(const X_USER_PROFILE_SETTING* profile_setting) &profile_setting->data), setting_id_( static_cast(profile_setting->setting_id.get())), - setting_source_(X_USER_PROFILE_SETTING_SOURCE::DEFAULT) {} + setting_source_(profile_setting->source) {} UserSetting::UserSetting(const X_XDBF_GPD_SETTING_HEADER* profile_setting, std::span extended_data) @@ -121,7 +121,8 @@ void UserSetting::WriteToGuest(X_USER_PROFILE_SETTING* setting_ptr, memcpy(kernel_memory()->TranslateVirtual(extended_data_address), extended_data_.data(), extended_data_.size()); - extended_data_address += static_cast(extended_data_.size()); + extended_data_address += + static_cast(get_max_size(get_setting_id())); } }