From 22db1125238e54b29538102727c36284e122e703 Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Mon, 7 Sep 2026 16:02:26 -0400 Subject: feat: refine game discovery and profile UX --- py_modules/lsfg_vk/config_schema.py | 4 ++-- py_modules/lsfg_vk/steam_service.py | 26 +++++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) (limited to 'py_modules/lsfg_vk') diff --git a/py_modules/lsfg_vk/config_schema.py b/py_modules/lsfg_vk/config_schema.py index 675ab61..ce109f3 100644 --- a/py_modules/lsfg_vk/config_schema.py +++ b/py_modules/lsfg_vk/config_schema.py @@ -20,7 +20,7 @@ PROFILE_DEFAULTS: Dict[str, Any] = { "active_in": [], "pacing_mode": "vsync", "multiplier": 2, - "flow_scale": 1.0, + "flow_scale": 0.8, "performance_mode": False, "override_present_mode": True, "preserve_swapchain_image_count": False, @@ -78,7 +78,7 @@ class ConfigurationManager: if not path_value: return "" path = Path(path_value) - if path.name.lower() in {"lossless.dll", "losslessscaling.dll"}: + if path.name.lower() in {"lossless.dll"}: return str(path.with_name("lsfg-vk.dll")) return path_value diff --git a/py_modules/lsfg_vk/steam_service.py b/py_modules/lsfg_vk/steam_service.py index 8c50cfd..f46a091 100644 --- a/py_modules/lsfg_vk/steam_service.py +++ b/py_modules/lsfg_vk/steam_service.py @@ -56,15 +56,18 @@ class SteamService(BaseService): for candidate in self._steam_roots(): yield from self._unique_existing_root(candidate, seen) - library_file = candidate / "steamapps/libraryfolders.vdf" - try: - content = library_file.read_text(encoding="utf-8") - except OSError: - continue + for library_file in ( + candidate / "steamapps/libraryfolders.vdf", + candidate / "config/libraryfolders.vdf", + ): + try: + content = library_file.read_text(encoding="utf-8") + except OSError: + continue - for raw_path in re.findall(r'(?m)^\s*"path"\s+"((?:\\.|[^"])*)"', content): - path = raw_path.replace(r'\"', '"').replace(r'\\', '\\') - yield from self._unique_existing_root(Path(path), seen) + for raw_path in re.findall(r'(?m)^\s*"path"\s+"((?:\\.|[^"])*)"', content): + path = raw_path.replace(r'\"', '"').replace(r'\\', '\\') + yield from self._unique_existing_root(Path(path), seen) @staticmethod def _read_shortcuts(data: bytes) -> Dict[str, object]: @@ -88,6 +91,11 @@ class SteamService(BaseService): raise ValueError("truncated binary VDF integer") value = int.from_bytes(data[offset:offset + 4], "little", signed=True) offset += 4 + elif value_type == 7: + if offset + 8 > len(data): + raise ValueError("truncated binary VDF 64-bit integer") + value = int.from_bytes(data[offset:offset + 8], "little", signed=True) + offset += 8 else: raise ValueError(f"unsupported binary VDF type {value_type}") values[key] = value @@ -254,7 +262,7 @@ class SteamService(BaseService): elif fields["restart_required"]: message = "lsfg-vk is selected; restart Steam to finish the branch switch" else: - message = "Lossless Scaling is not using the lsfg-vk Steam branch" + message = "Select lsfg-vk in Lossless Scaling's Steam Properties > Betas" return self._success_response(dict, message, **fields) except Exception as error: return self._error_response( -- cgit v1.2.3