diff --git a/UnleashedRecomp/kernel/io/file_system.cpp b/UnleashedRecomp/kernel/io/file_system.cpp index 8193364f..a765d12a 100644 --- a/UnleashedRecomp/kernel/io/file_system.cpp +++ b/UnleashedRecomp/kernel/io/file_system.cpp @@ -383,7 +383,17 @@ std::filesystem::path FileSystem::ResolvePath(const std::string_view& path, bool if (index != std::string::npos) { // rooted folder, handle direction - const std::string_view root = path.substr(0, index); + std::string_view root = path.substr(0, index); + + // HACK: The game tries to load work folder from the "game" root path for + // Application and shader archives, which does not work in Recomp because + // we don't support stacking the update and game files on top of each other. + // + // We can fix it by redirecting it to update instead as we know the original + // game files don't have a work folder. + if (path.starts_with("game:\\work\\")) + root = "update"; + const auto newRoot = XamGetRootPath(root); if (!newRoot.empty())