Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.64k stars 36 forks source link

Protontricks doesnt launch anymore on Steam Deck #255

Open spacecowboyx opened 1 year ago

spacecowboyx commented 1 year ago

I've been trying forever to get this to work and it simply will not run anymore.

Reproduce: I'm on steam deck using the flatpak.

I keep getting the following error code

Protontricks was closed due to the following error:

Traceback (most recent call last):
  File "/app/lib/python3.11/site-packages/protontricks/cli/util.py", line 149, in wrapper
    return cli_func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/cli/main.py", line 241, in main
    steam_apps = get_steam_apps(
                 ^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/steam.py", line 1253, in get_steam_apps
    steam_app = SteamApp.from_appmanifest(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/steam.py", line 190, in from_appmanifest
    content = path.read_text(encoding="utf-8")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/pathlib.py", line 1058, in read_text
    with self.open(mode='r', encoding=encoding, errors=errors) as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/pathlib.py", line 1044, in open
    return io.open(self, mode, buffering, encoding, errors, newline)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/deck/.local/share/Steam/steamapps/appmanifest_400.acf'

=============

Please include this entire error message when making a bug report.
Log messages:

Running inside Flatpak sandbox, version 1.12.4.
Found Steam directory at /home/deck/.local/share/Steam
Using default Steam Runtime at /home/deck/.local/share/Steam/ubuntu12_32/steam-runtime
WINETRICKS environment variable is not available. Searching from $PATH.
Found 2 Steam library folders

I have removed and reinstalled the program and restarted my deck and it still doesn't work. I installed both from discover and using the command: flatpak install flathub com.github.Matoking.protontricks

Matoking commented 12 months ago

The issue sounds similar to #252; in that case the problem was file system corruption. You could try opening Konsole and running the following command to verify if that's the case:

ls -lh /home/deck/.local/share/Steam/steamapps

It should print a similar error, as well as report unknown values (question marks) for the file metadata.

Shockwave508 commented 9 months ago

Games that are affected by this issue will often have two or more duplicate entries in the list of available prefixes. In my case...

Counter-Strike/Condition Zero/Deleted Scenes/Source Left 4 Dead 2 Mafia II: Definitive Edition Metal Gear Rising: Revengeance Prey 2017 (twice) Quake II (thrice) Rage 2 (thrice) Team Fortress Classic

If so much as one of these games is uninstalled for ANY reason, Protontricks will cease functioning, with the exact kind of error plaguing the OP, as it fruitlessly searches for nonexistent appmanifests, and crashes if it can't find them.

spacecowboyx commented 9 months ago

Yes you are both correct. In my case it was Portal that's was causing the problem. I had copied it to the SD card in Gamescope and should have done it in desktop mode as the folder containing the appmanifest was still on the internal.

Have since moved it back then copied it from steam directly and haven't had an issue since. I know the reply was late but I appreciate it all the same for future googlers.

Let this be known that to avoid this error in the future always move games using desktop mode directly in steam not in Gamescope or it can break protontricks and other things.

Matoking commented 9 months ago

Could someone encountering the problem please check what the following command prints? You can use Konsole in desktop mode and copy the output:

$ ls -lh /home/deck/.local/share/Steam/steamapps

My guess is that Steam is making a link from the old appmanifest path to the new one, though without a Steam Deck I can't easily check this myself.

Dark-Thoughts commented 3 months ago

Had the same issue on my desktop which stopped me from installing MO2. I tried both the Fedora repo version as well as the Flatpak and they both error out the same way. In the end it were caused by a couple symlinks I did for the game Outward in order to trick it to become moddable (you had to symlink the definitive edition to the base one or something IIRC). It did not work and I refunded the game but had two remnant symlinks in my steamapps folder causing protontricks to error out. Figured I post this for people's googlefu when encountering the same.

Protontricks was closed due to the following error:

Traceback (most recent call last):
  File "/app/lib/python3.11/site-packages/protontricks/cli/util.py", line 159, in wrapper
    return cli_func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/cli/main.py", line 244, in main
    steam_apps = get_steam_apps(
                 ^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/steam.py", line 1329, in get_steam_apps
    steam_app = SteamApp.from_appmanifest(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/protontricks/steam.py", line 201, in from_appmanifest
    content = path.read_text(encoding="utf-8")
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/pathlib.py", line 1058, in read_text
    with self.open(mode='r', encoding=encoding, errors=errors) as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/pathlib.py", line 1044, in open
    return io.open(self, mode, buffering, encoding, errors, newline)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/*****/.local/share/Steam/steamapps/appmanifest_1758860.acf'

=============

Please include this entire error message when making a bug report.
Log messages:

Running inside Flatpak sandbox, version 1.15.4.
Found Steam directory at /home/*****/.local/share/Steam
Using default Steam Runtime at /home/*****/.local/share/Steam/ubuntu12_32/steam-runtime
WINETRICKS environment variable is not available. Searching from $PATH.
Found 1 Steam library folders