I have spent a long time trying to figure out why Steam DRM games work fine with wine but not with Proton and umu-launcher. This has bothered me to no end because Lutris is increasingly leaning on Proton and umu-launcher instead of normal wine.
Steam’s DRM is minimal and easy to circumvent. I imagine this is intentional. Normally I would just replace the Steam related DLL files in a game with their counterpart from goldberg emulator or gbe_fork and the game would run fine with wine. With Proton however it wouldn’t run. From reading the logs it was clear to me that this was related to Steam but I wasn’t sure how exactly. At first I thought that because Proton comes complete with Steam’s runtime, maybe some Steam DLL file was taking preference over the game’s but this is was incorrect.
I have spent so much time trying to understand what the fuck was going on. Even tried reading some brain melting C source code but to no avail. Eventually I found the answer here:
Doesn’t Proton does a lot of fuckery to basically bridge all steam call to linux side? I never used it, so my knowledge about that is limited. From a quick look at code, it hijack dll loading code and could be disabled by setting PROTON_DISABLE_LSTEAMCLIENT 1. https://github.com/ValveSoftware/wine/blob/488fb296dda334a1e8555a9dd8f5cbe09be2afe5/dlls/ntdll/loader.c#L2294
This fixed the problem. Using the env variable PROTON_DISABLE_LSTEAMCLIENT=1
allows me run pirated Steam DRM protected game. This is crazy because if you Google "PROTON_DISABLE_LSTEAMCLIENT"
there are zero hits for it. Thankfully a gbe_fork contributor was able to divine a solution by looking at source code of Valve’s wine fork. So I wanted to document this.
Of course this is not the only solution. You can also use Steamless to rip out Steam’s DRM entirely from the game’s exe but I prefer using goldberg or gbe_fork because it is easier to do.
I never encountered that problem when pirating on Linux, but It’s cool you found a solution for that.
I should probably make a post about pirating on Linux at some point to document it here too since it’s very easy when using Hydra Launcher and Heroic Games Launcher. The biggest trouble being online-fix games, but even then, I have a very simple script to make it work.
Hydra is a Game Launcher with its own embedded BitTorrent Client.
Damn lol