From 270e88a7a76c7aa9c1ae6566199dc6a7463e3fb8 Mon Sep 17 00:00:00 2001 From: Gliniak Date: Tue, 27 May 2025 20:22:42 +0200 Subject: [PATCH] [Emulator] Removed marking extracted games as booted from disc --- src/xenia/emulator.cc | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 79c5c2c2a..af4fc358a 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -573,30 +573,31 @@ X_STATUS Emulator::LaunchXexFile(const std::filesystem::path& path) { auto fs_path = "game:\\" + xe::path_to_utf8(file_name); X_STATUS result = CompleteLaunch(path, fs_path); - if (XSUCCEEDED(result)) { - kernel_state_->deployment_type_ = XDeploymentType::kInstalledToHDD; - auto title_id = kernel_state_->title_id(); - 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()); + if (XFAILED(result)) { + return result; + } - // System related symlinks - file_system_->RegisterSymbolicLink("media:", mount_path); - file_system_->RegisterSymbolicLink("font:", mount_path); + kernel_state_->deployment_type_ = XDeploymentType::kInstalledToHDD; - auto module = kernel_state_->LoadUserModule("xam.xex"); - if (!module) { - module = kernel_state_->LoadUserModule("$flash_xam.xex"); - } + if (!kernel::IsSystemTitle(kernel_state_->title_id())) { + return result; + } - if (module) { - result = kernel_state_->FinishLoadingUserModule(module, false); - } - } + 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); + + auto module = kernel_state_->LoadUserModule("xam.xex"); + if (!module) { + module = kernel_state_->LoadUserModule("$flash_xam.xex"); + } + + if (module) { + result = kernel_state_->FinishLoadingUserModule(module, false); } return result; }