Closed ExpandingMan closed 2 years ago
Can you run the command again with protontricks -v --gui
and copy the output? Could you repeat the same for a Proton-GE enabled game as well? Finally, does STEAM_DIR=$HOME/.local/share/Steam protontricks -v --gui
help with the issue?
Protontricks looks inside ~/.steam/steam
first, and while that should pose no problem (it's a symlink to ~/.local/share/Steam
on my system), it might explain the problem if that's not the case.
Here is the verbose log output
protontricks (INFO): Found Steam directory at /home/expandingman/.steam/steam. You can also define Steam directory manually using $STEAM_DIR
protontricks (INFO): Using default Steam Runtime at /home/expandingman/.steam/root/ubuntu12_32/steam-runtime
protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH.
protontricks (INFO): Found 1 Steam library folders
protontricks (INFO): Currently logged-in Steam user: savastio
protontricks (INFO): Couldn't find custom shortcuts. Maybe none have been created yet?
protontricks (INFO): Using 'zenity' as GUI provider
protontricks (ERROR): Could not find the Steam Play manifest in appinfo.vdf
protontricks (ERROR): Could not find compatibility tool's App ID from appinfo.vdf
protontricks (ERROR): Active Proton installation could not be found automatically.
Proton installation could not be found!
It looks like it can find steam but not proton? Which is weird because proton experimental and GE are in the default locations within ~/.steam/steam
.
Protontricks parses ~/.steam/steam/appcache/appinfo.vdf
to find the app ID for Valve's built-in Proton versions. That's not working here, probably because the file hasn't been updated for some reason. Could you check if the file's modification date is recent (eg. the same as the current day)?
Protontricks doesn't need to parse that file if you're using a custom compatibility tool such as Proton-GE, and should be able to detect it. Does Protontricks print the same error if you select a game that uses Proton-GE instead?
Also, does running STEAM_DIR=$HOME/.local/share/Steam protontricks -v --gui
cause the same result?
My appinfo.vdf
does seem to be getting updated regularly (maybe when steam starts?) and was updated today.
I get the same behavior if I set STEAM_DIR
as you showed above.
However, protontricks
seems to work fine for games which I currently have set to run on Proton-GE, so I've only seen this problem for games which run proton experimental. Note that my Proton experimental installation is in the standard location $HOME/.local/share/Steam/steamapps/common/Proton\ -\ Experimental/
.
Okay, try closing Steam, removing the ~/.steam/steam/appcache/appinfo.vdf
file and then restarting Steam. The file should be regenerated shortly after Steam has finished relaunching. When it reappears, check if Protontricks works.
If Protontricks still doesn't work, there's a chance that the appinfo.vdf
has the needed data in a different place that Protontricks doesn't recognize. To investigate that, run the following command:
python -c "from pathlib import Path; import pprint; from protontricks.steam import get_appinfo_sections; pprint.pprint(get_appinfo_sections(Path('/home/expandingman/.steam/steam/appcache/appinfo.vdf')))" > ~/appinfo-output.txt
This will parse the file using Protontricks and save the output into a file called appinfo-output.txt
in your home directory. Open that file in an editor of your choice and look for "Proton Experimental" and "proton_experimental". In my case, the file contains the following section for an app named Proton Experimental (abbreviated for brevity):
{'appinfo': {'appid': 1493710,
'common': {'gameid': 1493710,
'name': 'Proton Experimental',
'osarch': '',
'osextended': '',
'oslist': 'linux',
'releasestate': 'released',
'section_type': 'ownersonly',
'type': 'Tool'},
'config': {'installdir': 'Proton - Experimental'},
and the following section under the appinfo.extended
entry for SteamPlay 2.0 Manifests:
'compat_tools': {'proton_316': {'aliases': 'proton_316_beta',
'appid': 961940,
'depotid': 961941,
'depotsizemb': 395,
'display_name': 'Proton '
'3.16-9',
'from_oslist': 'windows',
'to_oslist': 'linux'},
...
'proton_63': {'appid': 1580130,
'depotid': 1580131,
'depotsizemb': 667,
'display_name': 'Proton '
'6.3-8',
'from_oslist': 'windows',
'require_tool_appid': 1391110,
'to_oslist': 'linux'},
'proton_7': {'aliases': 'proton-stable',
'appid': 1887720,
'depotid': 1887721,
'depotsizemb': 667,
'display_name': 'Proton '
'7.0-1',
'from_oslist': 'windows',
'require_tool_appid': 1391110,
'to_oslist': 'linux'},
'proton_experimental': {'appid': 1493710,
'depotid': 1493711,
'depotsizemb': 666,
'display_name': 'Proton '
'Experimental',
'from_oslist': 'windows',
'require_tool_appid': 1391110,
'to_oslist': 'linux'},
The latter section with the proton_experimental
name is what allows Protontricks to map the game's Proton selection to the actual Proton installation on disk. In this case, Protontricks finds the string proton_experimental
in the game configuration and is able to map it into the Proton installation directory on disk using the app ID 1493710. If those fields are found elsewhere in the file, where exactly?
You can also send the file to me using the email address on my GitHub profile. AFAIK, it shouldn't contain anything sensitive but it's probably better to be safe than sorry.
I tried deleting the appinfo.vdf
, but after it is re-generated I'm getting the same behavior.
Hm... what I'm seeing looks the same as what you posted here. As a start, I have extracted only the relevant sections from the file and included them in the attached. Perhaps you can find a discrepancy that I did not see.
Note that the string proton_experimental
occurs exactly once in the entire file (included) and the string Proton Experimental
occurs exactly once in the entire file (included).
If you can't find anything from what I've included here I will set up a debug environment and hunt down for you exactly where it's failing to find they key it's looking for.
Could you copy the entire appinfo section from the parsed output starting from the line:
{'appinfo': {'appid': 891390,
and ending with the last field? The relevant section from my own appinfo.vdf
file can be found here for comparison's sake.
From the looks of it, it looks like it should be identical, but better to check it.
If that's the case, appinfo.vdf
probably isn't the culprit here. If so, please check the ~/.steam/steam/config/config.vdf
file and search it for proton_experimental
. There should be a list of "app ID -> compatibility tool name" mappings, like so:
"CompatToolMapping"
{
"0"
{
"name" "proton_63"
"config" ""
"Priority" "75"
}
"1055540"
{
"name" "proton_experimental"
"config" ""
"Priority" "250"
}
There are currently two potential locations for the Proton configuration field. The newest location should be Software.Valve.Steam.CompatToolMapping
as listed in the code here. That said, it's probably the value of the name
field that's causing grief here, if that's the case.
Ok, I've gotten a chance to come back to this and dig into it a bit. I have gone in and inserted some debug changes.
What's happening is that inside find_steam_compat_tool_app
, it gets
potential_names = ['Proton-7.0rc2-GE-1', 'proton_experimental', None, None]
This is pretty weird because I haven't used Proton-7.0rc2-GE-1
for quite a while. I looked in appinfo.vdf
and this string does not appear anywhere in that file, but it does appear in config.vdf
. So it appears
Proton-7.0rc2-GE-1
appears in config.vdf
when it probably should have been removed. I tried deleting the file so it would be re-generated, but it looks identical to the original. Is there a way to force a comprehensive refresh of it?protontricks
clearly needs to be doing something a bit different here to find the proper app. I would suggest that in this case it should default to proton_experimental
, but even this does not seem sufficient, there probably needs to be an option to set it. Ideally this would include a default that picks the tool set to be used in steam for that particular app.Going by the contents of the potential_names
:
Can you check if that's the case? There's a chance there's old data in config.vdf
, and Steam is now storing those configurations elsewhere, but I'm not seeing that with my own Steam Beta installation.
You shouldn't find the Proton-7.0rc2-GE-1
string inside appinfo.vdf
. appinfo.vdf
only contains data for Valve's own Proton releases.
🤦 Ok, not sure how it got stuck in that state, but yes, the game I was testing with most of the time was in some sort of broken state. This was fixed by going into steam, telling it to use some specific version, then unchecking the box and letting it revert to its default (proton experimental state)...
I could have sworn this was also happening with other games... maybe it was, but now I can't reproduce the problem.
So, I don't think this was a protontricks
issue at all, sorry about that.
I'll close this because I don't think there's anything to be done here, I'll re-open if it pops up again.
Thanks for your help!
Describe the bug Both proton experimental and proton-GE are installed in the default locations, but protontricks reports they cannot be found.
To Reproduce e.g.
protontricks --gui
Expected behavior No error, present usual options.
System (please complete the following information):
protontricks (1.7.0)
Additional context
Proton experimental can be found at
~/.local/share/Steam/steamapps/common/Proton\ -\ Experimental/
as usual.