aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games/games
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-17 17:26:05 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-03-17 17:26:05 -0500
commit2efc7e6124ef814ac9abd874bff0dc6b3e6768d0 (patch)
tree6167ebc6b89b1799506f426a58661c9e1e26400d /libs/basic_games/games
parente41a79a9033761916fa133260ff1849288db7df1 (diff)
Fix Steam game mode: clear LD_LIBRARY_PATH, deploy native basic_games, add env var detection
Steam game mode injects its scout/soldier runtime into LD_LIBRARY_PATH, which breaks Python extension modules and Qt internals that resolve dependencies via LD_LIBRARY_PATH rather than RPATH. This caused all Python-based basic_games plugins (Witcher 3, Oblivion Remastered, BG3, etc.) to fail to load when launched through Steam. Changes: - Launcher script: set LD_LIBRARY_PATH to only bundled lib/ dir instead of leaving Steam's runtime in the path - AppRun: same fix — replace rather than append to LD_LIBRARY_PATH - Deploy libbasic_games_native.so in tarball (was built but never copied) so basic_games entries work without Python dependency - Add STEAM_COMPAT_CLIENT_INSTALL_PATH env var check to Python steam_utils.py (mirrors C++ fix from e41a79a) for game mode detection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/basic_games/games')
-rw-r--r--libs/basic_games/games/game_arkhamcity.py2
-rw-r--r--libs/basic_games/games/game_vampirebloodlines.py1
2 files changed, 2 insertions, 1 deletions
diff --git a/libs/basic_games/games/game_arkhamcity.py b/libs/basic_games/games/game_arkhamcity.py
index 0b8269f..adcf6d4 100644
--- a/libs/basic_games/games/game_arkhamcity.py
+++ b/libs/basic_games/games/game_arkhamcity.py
@@ -53,7 +53,7 @@ class ArkhamCityGame(BasicGame):
# This will only detect saves from the earliest-created Steam profile on the user's PC.
def savesDirectory(self) -> QDir:
- docSaves = QDir(self.documentsDirectory().cleanPath("../../SaveData"))
+ docSaves = QDir(self.documentsDirectory().absoluteFilePath("../../SaveData"))
if self.is_steam():
if (steamDir := find_steam_path()) is None:
return docSaves
diff --git a/libs/basic_games/games/game_vampirebloodlines.py b/libs/basic_games/games/game_vampirebloodlines.py
index a63b308..41d63cc 100644
--- a/libs/basic_games/games/game_vampirebloodlines.py
+++ b/libs/basic_games/games/game_vampirebloodlines.py
@@ -83,6 +83,7 @@ class VampireTheMasqueradeBloodlinesGame(BasicGame):
for iniFile in self.iniFiles():
iniPath = Path(self.documentsDirectory().absoluteFilePath(iniFile))
if not iniPath.exists():
+ iniPath.parent.mkdir(parents=True, exist_ok=True)
with open(iniPath, "w") as _:
pass