parent
616dbfe34e
commit
2c087406d6
|
@ -553,7 +553,19 @@ X_RESULT KernelState::ApplyTitleUpdate(const object_ref<UserModule> module) {
|
||||||
content_manager()->OpenContent("UPDATE", title_update, disc_number);
|
content_manager()->OpenContent("UPDATE", title_update, disc_number);
|
||||||
|
|
||||||
// Use the corresponding patch for the launch module
|
// Use the corresponding patch for the launch module
|
||||||
std::filesystem::path patch_xexp = fmt::format("{0}.xexp", module->name());
|
std::filesystem::path patch_xexp;
|
||||||
|
|
||||||
|
std::string mount_path = "";
|
||||||
|
file_system()->FindSymbolicLink("game:", mount_path);
|
||||||
|
|
||||||
|
auto is_relative = std::filesystem::relative(module->path(), mount_path);
|
||||||
|
|
||||||
|
if (is_relative.empty()) {
|
||||||
|
return X_STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
patch_xexp =
|
||||||
|
is_relative.replace_extension(is_relative.extension().string() + "p");
|
||||||
|
|
||||||
std::string resolved_path = "";
|
std::string resolved_path = "";
|
||||||
file_system()->FindSymbolicLink("UPDATE:", resolved_path);
|
file_system()->FindSymbolicLink("UPDATE:", resolved_path);
|
||||||
|
|
|
@ -118,6 +118,7 @@ dword_result_t xeXexLoadImage(
|
||||||
// Not found; attempt to load as a user module.
|
// Not found; attempt to load as a user module.
|
||||||
auto user_module = load_callback();
|
auto user_module = load_callback();
|
||||||
if (user_module) {
|
if (user_module) {
|
||||||
|
kernel_state()->ApplyTitleUpdate(user_module);
|
||||||
kernel_state()->FinishLoadingUserModule(user_module);
|
kernel_state()->FinishLoadingUserModule(user_module);
|
||||||
// Give up object ownership, this reference will be released by the last
|
// Give up object ownership, this reference will be released by the last
|
||||||
// XexUnloadImage call
|
// XexUnloadImage call
|
||||||
|
|
Loading…
Reference in New Issue