Implement hacky fix for some update files not loading. (#1327)
Some checks failed
validate-internal / build (push) Failing after 14m53s

This commit is contained in:
Skyth (Asilkan) 2025-03-24 22:23:09 +03:00 committed by GitHub
parent bd589ed641
commit 2344a6f10d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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())