If you’ve tried exploring what Linux had to offer in gaming since the “big push” of 2018 to 2019 to develop ports and workarounds for as many Windows/Mac titles as possible, you’ll know about Steam’s infamous contribution to this effort in the form of Proton. At the same time, if you try to run some of the more dependency-heavy titles, you’ll quickly notice that Proton isn’t completely spick and span when it comes to smoothing the transition from Windows to Linux for a number of games.
In cases where games throw errors at you when you’re trying to run them with Proton, there’s a nifty little tool called “protontricks” that makes it easy to get them to behave.
How It Works
Protontricks is a terminal-based utility that automates much of the tedium you would otherwise have to go through if you’d use winetricks (a helper script for the WINE environment) to work out the kinks in a Steam game. The utility makes clever use of scripts to make the process as smooth as possible.
A lot of the time when Steam’s Proton can’t get a game to run, it’s because the application is missing a dependency that Steam didn’t install. Protontricks layers on top of winetricks to allow you to easily overcome this issue and directly install many of the runtimes you need to get them started directly into their Steam directories without much hassle.
First Things First
Before you do anything, make sure Steam Play is properly enabled and that you have everything configured correctly on your client. For a quick rundown on this, follow this guide on getting Windows games working on Linux first.
Protontricks is there for certain situations when Steam can’t get the game running even after all of that.
Installing the Dependencies
Although virtually all people running Linux today already have WINE installed, allowing them to be ready to run a number of Windows applications, not everyone has Winetricks. To use protontricks, you have to install this first.
On Linux Mint/Ubuntu-based systems/Debian/MX, for example, use:
On Manjaro, it should be included, but in case it isn’t, go to “System -> Add/Remove Software” and look for “wine.” You’ll get a list of packages. Make sure that both “wine” and “winetricks” are installed.
If you run any other distribution, you can grab winetricks using these generic commands:
In addition to winetricks, you’ll need
pipx to get protontricks working.
Now that you got through installing all the prerequisite applications, it’s time to install the helper itself. For this, make sure you’re starting a clean new terminal and not using the one you used to install everything else.
All you have to do now is type:
That’s it! Now it’s time to understand how powerful this little tool can be and why it was worth going through all that trouble.
Using Protontricks To Install Games Missing .NET Runtimes
Protontricks is specifically designed for moments when you try to start up a game and it throws an error telling you that a certain runtime isn’t installed. Usually it’s some .NET framework version. In any case, you must run the game at least once, errors and all, before protontricks can work its magic.
First you need to find out what the game is missing. When attempting to run it, take note of what version of .NET it’s complaining about not having.
After that, you’re need to look up the game’s Steam ID. The easiest way to do this is by typing the following into your terminal:
The search is case insensitive and will accept partial names. An example of both a search with non-corresponding cases and a partial name can be seen in the image below.
Once you’ve found the ID, and caught the version of .NET that it requires, you’ll need to order it to install “dotnet” followed by the version number you found without any of the dots or spaces. Here’s an example of such a command that would work with Elite Dangerous:
After this, protontricks will make a compatibility directory for the game in its corresponding steam folder for you and attempt to install the version of .NET Framework that you want. It’s going to complain and give you a lot of scary errors about having to do this with a 64-bit WINE prefix, but you can safely ignore these.
Correcting Other Issues
There’s a number of games out there that still might not work after this little “magical” fix. The game you’re trying to get running might not even be missing a .NET runtime.
For special cases, I recommend going to ProtonDB and looking for your game there. Users often contribute their own fixes involving protontricks or startup commands you can put into the properties of your game for the Steam library. It’s not always a case of “type this command and violà!” but you may just get lucky and find something that involves a few minutes of tweaking by either using protontricks commands or spelunking through a few files.
Some of the suggestions are convoluted and may not work on your particular system, but if you’re insistent on getting a particular game working on Linux and are willing to spend a few hours doing so, this is the best repository of information for people who are out of luck with the usual methods.
Just keep in mind that even if you get your game to run, its performance may be extremely sub-par compared to Windows. For some reason, a good number of games run well in single player and then completely cannonball into oblivion as soon as you attempt any sort of multiplayer function.
While not perfect, gaming on Linux is becoming less of a rage-inducing process, and more tools are being developed to make this even easier. Protontricks is probably one of the most simple yet elegant ways to quickly eliminate the tedium you would otherwise experience with winetricks alone.
Do you have any tools of your own that have helped you get your games running on Linux? Let us know if you’d like us to look at one in a comment!