From fbfd926f3d9ec3920c9cff921e5e98beb2a8f5a0 Mon Sep 17 00:00:00 2001 From: nimbice <5924799+nimbice@users.noreply.github.com> Date: Sun, 4 Oct 2026 11:28:01 -0700 Subject: [PATCH] Witcher 3: accept DX12-only (next-gen) installs Current Steam builds can ship only bin/x64_dx12/witcher3.exe without bin/x64/, which made looksValid() reject the install. Fall back to the DX12 executable when the DX11 one is missing. Co-Authored-By: Claude Opus 5.5 --- games/game_witcher3.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/games/game_witcher3.py b/games/game_witcher3.py index ff64df21..60644dc7 100644 --- a/games/game_witcher3.py +++ b/games/game_witcher3.py @@ -27,6 +27,8 @@ class Witcher3Game(BasicGame): GameSteamId = [499450, 292030] GameGogId = [1640424747, 1495134320, 1207664663, 1207664643] GameBinary = "bin/x64/witcher3.exe" + # Next-gen installs may ship only the DX12 build (no bin/x64). + _DX12_BINARY = "bin/x64_dx12/witcher3.exe" GameDataPath = "Mods" GameSaveExtension = "sav" GameDocumentsDirectory = "%DOCUMENTS%/The Witcher 3" @@ -41,6 +43,15 @@ def init(self, organizer: mobase.IOrganizer): self._register_feature(BasicGameSaveGameInfo(lambda s: s.with_suffix(".png"))) return True + def binaryName(self) -> str: + game_dir = self.gameDirectory() + if not game_dir.exists(self.GameBinary) and game_dir.exists(self._DX12_BINARY): + return self._DX12_BINARY + return super().binaryName() + + def looksValid(self, directory: QDir): + return directory.exists(self.GameBinary) or directory.exists(self._DX12_BINARY) + def iniFiles(self): return ["user.settings", "input.settings"]