diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index fa346e616..caca369c3 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -579,6 +579,14 @@ X_STATUS Emulator::LaunchXexFile(const std::filesystem::path& path) { if (!kernel::IsSystemTitle(title_id)) { // Assumption that any loaded game is loaded as a disc. kernel_state_->deployment_type_ = XDeploymentType::kOpticalDisc; + } else { + const std::string mount_path = xe::path_to_utf8( + std::filesystem::path(kernel_state_->GetExecutableModule()->path()) + .parent_path()); + + // System related symlinks + file_system_->RegisterSymbolicLink("media:", mount_path); + file_system_->RegisterSymbolicLink("font:", mount_path); } } return result; diff --git a/src/xenia/kernel/title_id_utils.h b/src/xenia/kernel/title_id_utils.h index 2ac49c690..80a582a59 100644 --- a/src/xenia/kernel/title_id_utils.h +++ b/src/xenia/kernel/title_id_utils.h @@ -73,11 +73,11 @@ static constexpr bool IsSystemTitle(const uint32_t title_id) { } if (!IsXboxTitle(title_id)) { - return IsValidGameId(title_id); + return !IsValidGameId(title_id); } if (IsXblaTitle(title_id)) { - return IsValidGameId(title_id); + return !IsValidGameId(title_id); } return true; diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc index 4c8914f21..e81ce64bd 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_xconfig.cc @@ -135,7 +135,7 @@ X_STATUS xeExGetXConfigSetting(uint16_t category, uint16_t setting, case 0x000C: // XCONFIG_USER_RETAIL_FLAGS setting_size = 4; // TODO(benvanik): get this value. - xe::store_and_swap(value, 0); + xe::store_and_swap(value, 0x40); break; case 0x000E: // XCONFIG_USER_COUNTRY setting_size = 1;