DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.22k stars 40 forks source link

Detect which games are using Proton Anticheat Runtimes #190

Closed DavidoTek closed 7 months ago

DavidoTek commented 1 year ago

Is your feature request related to a problem? Please describe. See https://github.com/DavidoTek/ProtonUp-Qt/pull/186 Proton Anticheat Runtimes (e.g. Proton EasyAntiCheat Runtime) are detected as compatibility tools. Still, the ctinfo dialog does not display which games are using it.

Describe the solution you'd like

Describe alternatives you've considered None, don't show which games are using a runtime.

Additional context Where is the information what runtime a game is using stored?

sonic2kk commented 1 year ago

Steam downloads the anti-cheat runtimes I believe when a game is configured to require it. It isn't used as a compatibility tool per se but the runtime is downloaded once and shared for apps that require it, kind of like the Steam Linux Runtime.

I had a look to see how Steam knows which games to download it for, and perhaps Steam "infers" it based on some configuration. I haven't found anywhere where Steam stores this. If we figure out how St

The AppID for the EasyAntiCheat runtime is 1826330, battlEye is 1161040. Other anti-cheats are configured to support Wine/Proton but I think these are the only two that have dedicated runtimes available in Steam.

Maybe if we can find this referenced/mapped in some Steam config/app config files we could figure out which games use which tool - probably we can just assume if an installed game is set to require X runtime, and that runtime is installed, we'll assume that runtime is in use by that game. The issue is figuring out how Steam knows that a game needs the anti-cheat runtime.


Also, on the subject of anti-cheat runtimes. currently ProtonUp-Qt can't uninstall them. The uninstall button is disabled when selecting them. Steam also has issues removing these tools (it also has issues removing Steam Linux Runtimes). However it can be uninstalled by removing the install folder in /path/to/steamapps/common/<runtime_folder> and its associated appmanifest, and then restarting Steam if it was opened.

Perhaps we can also implement support for uninstalling these runtimes, if/when we can map how many games are using that runtime so we can display a warning.

sonic2kk commented 9 months ago

Noted this on #186, but the tl;dr is:

We know now where to find information about which games are using which Proton anticheat runtimes, though it says nothing about compatibility. A game may want to target this runtime but may not have support properly implemented, or it may break after an update. But, we can be sure any app that has the AppID 1826330 is targeting the Proton EasyAntiCheat Runtime, meaning it wants to use this runtime and that Steam will download it with the game, and also that this is specifically a game wanting to use EAC on Linux, since this AppID and the runtime it represents are only for Linux. The same applies for the battlEye rurntime, which has a different AppID.

sonic2kk commented 7 months ago

Solved with #331?