Closed kalash222222 closed 9 months ago
You seem to have a custom compatibility tool for Steam that has a weird compatibilitytool.vdf
file that Protontricks can't parse correctly. It could be broken for some reason, or a valid VDF that Protontricks can't parse yet.
Since you've installed Protontricks from AUR, could you try running the following command:
$ python -m pdb -c continue /usr/bin/protontricks --gui
When the crash occurs, enter command locals()
, which should print a list of variables related to the VDF file that was being parsed. You can then copy the output into a reply.
For example, here's an example of the command-line session where I've deliberately modified the VDF file for SteamTinkerLaunch to cause a similar error (compatibilitytools
changed to scompatibilitytools
):
❯ python -m pdb -c continue /usr/bin/protontricks --gui
Traceback (most recent call last):
File "/usr/lib/python3.11/pdb.py", line 1765, in main
pdb._run(target)
File "/usr/lib/python3.11/pdb.py", line 1643, in _run
self.run(target.code)
File "/usr/lib/python3.11/bdb.py", line 598, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "/usr/bin/protontricks", line 8, in <module>
sys.exit(cli())
^^^^^
File "/usr/lib/python3.11/site-packages/protontricks/cli/main.py", line 32, in cli
main(args)
File "/usr/lib/python3.11/site-packages/protontricks/cli/util.py", line 149, in wrapper
return cli_func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/protontricks/cli/main.py", line 241, in main
steam_apps = get_steam_apps(
^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/protontricks/steam.py", line 1264, in get_steam_apps
steam_apps += get_custom_compat_tool_installations(steam_root=steam_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/protontricks/steam.py", line 1028, in get_custom_compat_tool_installations
for tool_app in get_custom_compat_tool_installations_in_dir(dir_):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/protontricks/steam.py", line 973, in get_custom_compat_tool_installations_in_dir
compat_tools = compat_tools["compatibilitytools"]
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'compatibilitytools'
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/lib/python3.11/site-packages/protontricks/steam.py(973)get_custom_compat_tool_installations_in_dir()
-> compat_tools = compat_tools["compatibilitytools"]
(Pdb) locals()
{'compat_tool_dir': PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d'), 'comptool_files': [PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/GE-Proton7-55/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-6.8-GE-2/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-5.9-GE-3-ST/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-6.12-GE-1/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/GE-Proton7-25/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/GE-Proton7-53/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-6.16-GE-1/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-4.21-GE-1/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-4.15-GE-1/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton-6.10-GE-1/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/GE-Proton7-38/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton Mega Version/compatibilitytool.vdf'), PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf')], 'custom_tool_apps': [<protontricks.steam.SteamApp object at 0x7fa31cff41d0>, <protontricks.steam.SteamApp object at 0x7fa31c4b4450>, <protontricks.steam.SteamApp object at 0x7fa31c4b4bd0>, <protontricks.steam.SteamApp object at 0x7fa31c4b4c20>, <protontricks.steam.SteamApp object at 0x7fa31c4b4a90>, <protontricks.steam.SteamApp object at 0x7fa31c4b4ef0>, <protontricks.steam.SteamApp object at 0x7fa31c4b4fe0>, <protontricks.steam.SteamApp object at 0x7fa31c4b5260>, <protontricks.steam.SteamApp object at 0x7fa31c4b5210>, <protontricks.steam.SteamApp object at 0x7fa31c4b5030>, <protontricks.steam.SteamApp object at 0x7fa31c4b5490>, <protontricks.steam.SteamApp object at 0x7fa31c4b5670>], 'vdf_path': PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf'), 'content': '"scompatibilitytools"\n{\n "compat_tools"\n {\n\t"Proton-stl" // Internal name of this tool\n\t{\n\t "install_path" "."\n\t "display_name" "Steam Tinker Launch"\n\n\t "from_oslist" "windows"\n\t "to_oslist" "linux"\n\t}\n }\n}\n', 'vdf_data': {'scompatibilitytools': {'compat_tools': {'Proton-stl': {'install_path': '.', 'display_name': 'Steam Tinker Launch', 'from_oslist': 'windows', 'to_oslist': 'linux'}}}}, 'compat_tools': {'scompatibilitytools': {'compat_tools': {'Proton-stl': {'install_path': '.', 'display_name': 'Steam Tinker Launch', 'from_oslist': 'windows', 'to_oslist': 'linux'}}}}, 'internal_name': 'Proton Mega Version', 'tool_info': {'install_path': '.', 'display_name': 'Proton Mega Version Super', 'from_oslist': 'windows', 'to_oslist': 'linux'}, 'install_path_name': '.', 'from_oslist': 'windows', 'to_oslist': 'linux', 'install_path': PosixPath('/home/matoking/.local/share/Steam/compatibilitytools.d/Proton Mega Version'), 'required_tool_appid': None}
@Matoking here is myoutput:
It seems all my compatibilitytool.vdf file is empty
Thanks, I've pushed a fix to master that should ignore empty compatibility tool manifest files since the Steam client also does the same thing. Since you're on Arch, you can install protontricks-git
from AUR to get the fix working immediately.
Do you have any idea what might have caused the compatibilitytool.vdf
files to become empty? I checked GE-Proton 7.55 myself and it has a valid compatibility tool manifest, so I'm guessing some third party tool might have emptied the file for some reason?
Describe the bug protontricks doesen't work as it should cant use gui or use protontricks to tinker with proton prefixes
System (please complete the following information):
Additional context
tried reinstalling arch did nothing to it cant play il 2 cuz of it need help please