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