Implement hacky fix for some update files not loading.

This commit is contained in:
Skyth 2025-03-11 17:22:50 +03:00
parent cc1018a8fc
commit 9fe16b5c2d

View file

@ -383,7 +383,17 @@ std::filesystem::path FileSystem::ResolvePath(const std::string_view& path, bool
if (index != std::string::npos) if (index != std::string::npos)
{ {
// rooted folder, handle direction // 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); const auto newRoot = XamGetRootPath(root);
if (!newRoot.empty()) if (!newRoot.empty())