From 18c4e3a47f3a5bac5e786866979e253f1e72e1ea Mon Sep 17 00:00:00 2001 From: Janne Pulkkinen Date: Mon, 16 Sep 2024 08:20:44 +0300 Subject: [PATCH] Support appinfo.vdf V29 Steam beta introduced a new version of appinfo.vdf with a space-saving optimization. Field keys are stored in a separate table at the end of the file, with the actual VDF segments having to be parsed using the table to map the indices to actual field names. `vdf` library does not support serializing appinfo.vdf using this format, at least yet, so just use appinfo.vdf V28 in tests for the time being. This might need to be fixed in the future once appinfo.vdf V28 is phased out. Fixes #304 --- CHANGELOG.md | 3 +++ src/protontricks/steam.py | 56 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ea31c2..13a3bde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `protontricks -c` and `protontricks-launch` now use the current working directory instead of the game's installation directory. `--cwd-app` can be used to restore old behavior. Scripts can also `$STEAM_APP_PATH` environment variable to determine the game's installation directory; this has been supported (albeit undocumented) since 1.8.0. - `protontricks` will now launch GUI if no arguments were provided +### Fixed + - Fix crash when parsing appinfo.vdf V29 version in new Steam client version + ## [1.11.1] - 2024-02-20 ### Fixed - Fix Protontricks crash when custom Proton has an invalid or empty `compatibilitytool.vdf` manifest diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py index a28e2f0..644124c 100644 --- a/src/protontricks/steam.py +++ b/src/protontricks/steam.py @@ -483,6 +483,7 @@ def find_legacy_steam_runtime_path(steam_root): APPINFO_STRUCT_HEADER = "<4sL" APPINFO_V28_STRUCT_SECTION = "