[XAM] Fixed issue with invalid settings in UE games

This commit is contained in:
Gliniak 2025-03-12 22:53:27 +01:00
parent 25b3540480
commit c4867250e4
2 changed files with 4 additions and 3 deletions

View File

@ -73,7 +73,7 @@ UserData::UserData(const X_USER_DATA_TYPE data_type,
static_cast<uint32_t>(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);

View File

@ -47,7 +47,7 @@ UserSetting::UserSetting(const X_USER_PROFILE_SETTING* profile_setting)
&profile_setting->data),
setting_id_(
static_cast<UserSettingId>(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<const uint8_t> 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<uint32_t>(extended_data_.size());
extended_data_address +=
static_cast<uint32_t>(get_max_size(get_setting_id()));
}
}