Matoking / protontricks

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

Not detecting most of my games #168

Closed Freudeheit closed 1 year ago

Freudeheit commented 1 year ago

Describe the bug Both the flatpak and non flatpak version of protontricks will not detect a vast majority of the games I have installed running proton (launched more than once and everything)

To Reproduce protontricks-launch protontricks -l

Expected behavior Detecting more than a handful of games.

System (please complete the following information):

Additional context I'm not really sure what to say this is an extremely strange issue its not due to app manifests not existing I doubled checked nor is it because I'm family sharing since its not detecting many games I own on my account

Matoking commented 1 year ago

Have you tested running the command

$ protontricks -v --gui

and copying the output? Protontricks should list the Steam library folders it has found, as well as multiple Steam installations if you have also installed Steam on Flatpak.

Freudeheit commented 1 year ago

protontricks (INFO): Found Steam directory at /home/freudeheit/.steam/steam. You can also define Steam directory manually using $STEAM_DIR protontricks (INFO): Using default Steam Runtime at /home/freudeheit/.steam/root/ubuntu12_32/steam-runtime protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH. protontricks (INFO): Found 5 Steam library folders protontricks (INFO): Multiple compatdata directories found for app 1887720 protontricks (INFO): Multiple compatdata directories found for app 1493710 protontricks (INFO): Multiple compatdata directories found for app 1887720 protontricks (INFO): Multiple compatdata directories found for app 1493710 protontricks (INFO): Multiple compatdata directories found for app 1493710 protontricks (INFO): Multiple compatdata directories found for app 10 protontricks (INFO): Multiple compatdata directories found for app 107410 protontricks (INFO): Multiple compatdata directories found for app 233800 protontricks (INFO): Multiple compatdata directories found for app 50 protontricks (INFO): Multiple compatdata directories found for app 70 protontricks (INFO): Currently logged-in Steam user: (my username) protontricks (INFO): Found 4 Steam shortcuts running using Steam compatibility tools protontricks (INFO): Using 'yad' as GUI provider

Matoking commented 1 year ago

The "Multiple compatdata directories found for app ID" is printed twice for the same app in a few cases, which suggests there exist multiple appmanifest files for the same app. This could mean there are multiple installations for the same app, some of which are leftovers.

I wrote a small script that will print the path of every appmanifest Protontricks finds. Can you run it, and then copy the contents of two or more files with the same ID (for example, 1887720)?

Since the newest version is installed using Flatpak, the easiest way might be to run the following commands in order:

$ flatpak run --command=bash com.github.Matoking.protontricks
$ python
>>> exec("""\nfrom protontricks.steam import SteamApp, get_steam_lib_paths, find_steam_path, get_steam_apps\n\nsteam_path, steam_root = find_steam_path()\nlib_paths = get_steam_lib_paths(steam_path)\nfor path in lib_paths + [steam_path]:\n    for manifest_path in path.glob("[Ss]team[Aa]pps/appmanifest_*.acf"):\n        print(str(manifest_path))\n""")

For example, the output on my system looks like this:

$ flatpak run --command=bash com.github.Matoking.protontricks
bash: /usr/share/doc/pkgfile/command-not-found.bash: No such file or directory

[matoking@JannePC FTP]$ python
Python 3.9.9 (main, Nov 10 2011, 15:00:00) 
[GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exec("""\nfrom protontricks.steam import SteamApp, get_steam_lib_paths, find_steam_path, get_steam_apps\n\nsteam_path, steam_root = find_steam_path()\nlib_paths = get_steam_lib_paths(steam_path)\nfor path in lib_paths + [steam_path]:\n    for manifest_path in path.glob("[Ss]team[Aa]pps/appmanifest_*.acf"):\n        print(str(manifest_path))\n""")
/mnt/LinuxDataSSD_D/SteamLibrary/steamapps/appmanifest_334940.acf
/mnt/LinuxDataSSD_D/SteamLibrary/steamapps/appmanifest_519860.acf
/mnt/LinuxDataSSD_D/SteamLibrary/steamapps/appmanifest_555150.acf
/mnt/LinuxDataSSD_D/SteamLibrary/steamapps/appmanifest_504230.acf
... many more lines ...

Once you have found one set of duplicate files for one app, could you copy the contents and path of each such file here? You can use gist.github.com to prevent cluttering the thread too much.

Freudeheit commented 1 year ago

Apologizes for the late reply I don't use Github often. heres the output: https://gist.github.com/Freudeheit/dca70c7060892249d8be2dd036745d40 whats strange is Oblivion (22330) isn't anywhere on the list sure theres other games missing but thats the one and I double checked and the compatdata folder for it exists and everything. there are a few duplicates but it seems to just be for the steam common redistributables but I might have missed one

Matoking commented 1 year ago

Can you find the appmanifest_22330.acf file in the Steam library folder that contains the game? It should be located in <library_folder>/steamapps/appmanifest_22330.acf, while the game is located <library_folder>/steamapps/common/<game name>. You can right-click the game in your Steam library, and then select Properties -> Local Files -> Browse... to find the installation directory.

Also, if it's in a Steam library folder that Protontricks didn't detect, can you check if you can find the library folder in ~/.steam/steam/steamapps/libraryfolders.vdf? Protontricks relies on that file to find the Steam library folders, and it should list each folder in the following format:

"0"
    {
        "path"      "/mnt/LinuxDataSSD_C/SteamLibrary"
        "label"     ""
        "contentid"     "4318605032634236859"
        "totalsize"     "0"
        "update_clean_bytes_tally"      "63680677073"
        "time_last_update_corruption"       "0"
        "apps"
        {
            "34900"     "290674946"
            "224960"        "318059021"
            "228980"        "569155753"
            "265610"        "174731955"
            "337000"        "62200876121"
            "345820"        "438524062"
            "897030"        "551863324"
            "1113280"       "910331459"
            "1174180"       "128249349313"
            "1245040"       "1036890088"
            "1574270"       "1179031255"
        }
    }
Matoking commented 1 year ago

Closing due to inactivity.