The new Steam Play, which brought the Proton project, has already drastically changed the gaming landscape for Linux, making a few thousand new titles work, but perfect compatibility should still take some time to come, which doesn't mean that You can't take some shortcuts to run your games.
The idea of ??Steam Play with Proton simple: When you click on a game that would theoretically be for Windows only, the game will open on Linux normally allowing you to play as you would on the Microsoft platform. Of course this is a "super simplification" of the project, but it is true that many games already behave exactly this way, even those outside the Whitelist of Valve compatibility.
The community itself has been testing a number of games and posting the results obtained, you can check the current compatibility status of the game you would like to play by consulting this site. Other games also work with minor tweaking, that is, with minor tweaks. The Proton Project is available on GitHub And it has a very rich documentation, where there are several interesting tips that you can use in games to make them work properly.
To take advantage of the material we are sharing here, you need to have SteamPlay / Proton enabled on your Steam, if you don't know how it works, click here.Check here to understand better.
Steam has always supported such minor tweaks in most games, including Windows games, there are several computer game forums that allow you to get certain behaviors into your games through it, such as making them run full screen, windowed mode. , use a specific API, etc. In the case of Steam Play, we have some options that were Proton's behavior, these options may make a game run or not, or may optimize performance in some cases.
As many people were in doubt, I decided to create this full guide material explaining it for reference, so you can experiment before reporting any game there on ProtonDB.
How to use the parameters?
It's no use knowing what the parameters are if you don't know where to apply them, right? To add a boot parameter to any Steam game, just right-click on it in your game library and click the "properties"or"Properties"if in English:
By doing this you will open a very useful dashboard that virtually every Steam game has, where you can do a lot of in-game maintenance, such as browsing the game's files, checking its integrity to see if anything is corrupted, accessing Beta versions. , change the language of a game, etc.
One of the options is "Set Launch Options ... "or"Set boot options …", clicking this button will open a new (smaller) window allowing you to enter the parameters.
As you can see from the picture, it's really that simple. The parameters that can be used there vary from game to game, but Proton parameters work for any game running on Linux via Steam Play.
Once the parameter has been added, simply click the "OK" button, close the window and start the game normally by the Steam client by clicking "Play" or "Play".
Proton Parameters (Steam Play)
To better understand how Proton works, you can check out the presentation video we made on the channel, make a good coffee, because it's a long video, but probably one of the most complete you will see.
You can use Proton parameters to force games to use one API or another, convert DX9, DX11 or 12 data to Vulkan or OpenGL and a lot of other things, I'll make a list for you soon. .
Before we understand the context of the parameter syntax:
"PROTON_VARIABLE = 1% command%
The words "PROTON_VARIABLE" simply show which variable you are changing, since the value "= 1 " indicates that the variable is active if you put "= 0 " would be the same as "off" ie in effect the effect would be the same as you not adding the variable. The sentence "% command% " It is basically a variable that indicates the command triggered by the Steam "play" button, ie the game executable or a launcher, as some games use.
In other words words, as if you were saying "Proton, use (or not) 'this feature' to run such a game". That simple.
In practice the parameters are just below, and some new ones may be added in the future, the current defaults are:
1 – Have Proton use OpenGL instead of Vulkan for DirectX 10 and 11
PROTON_USE_WINED3D = 1% command%
2 – Make Proton disable DirectX 11 and run on DirectX 9, which can be used for games that have legacy Microsoft DX support and will run better this way. Some older games work better this way.
PROTON_NO_D3D11= 1% command%
3 – You can read more about Wine's ESYNC feature. on here, this feature can be useful for running games that are CPU-Bound and require more of this component than usually happens, such as the Rockstar Games game, GTA V. Turning this feature on or off in many cases will not make much difference, but in others it may bring drastic changes.
PROTON_NO_ESYNC= 1% command%
These are the main parameters of Proton and are the ones that most affect games, but there are others that can be useful for debugging a game or evaluating its performance. For example, if you want to see the FPS rate, Frame Times, Vulkan version, driver and your video card and other details on the screen, just add this parameter:
DXVK_HUD = devinfo, fps, frametimes% command%
Of course you can remove any of the words to show only what you want, for example if you only want to see FPS, just leave the word "fps" after "DXVK_HUD = " and before "% command% ", The same goes for the other options.
This enabled feature will bring you, in games that support the function, a screen like Pro Evolution Soccer 2019, which is running on Linux Mint in the example:
Notice in both images the upper left corner.
There are some parameters exclusively dedicated to Debug, you can find out more on here.
Going beyond the obvious (advanced)
Let's not forget that these software is Open Source, so you can change their default behavior at your own risk, of course. But for example, you can add some missing component to a game through Winetricks.
Example: The developer made the game for Windows considering that certain intrinsic Microsoft system tools are already installed, such as Net Framework 4.5. Steam games usually install their own dependencies (on Linux and Windows) the first time the game runs, but if the developer was already relying on this direct component of the operating system and did not add the function of installing it the first time Since the game is Proton, this can mean a problem, because the game needs a component that may not be installed.
That way you can use the Winetricksis a very popular utility for Wine manipulation to install extra components for the game.
The first step is to have certain packages installed, to do this run the command (Ubuntu, Linux Mint and derivatives):
sudo apt install wine64 wine32-preloader winetricks -y
With this you can manipulate the game prefix within Proton, for example, this command allows you to install DotNet 4.5 on the game "Yu-Gi-Oh Duel Links":
WINEPREFIX = / home / $ USER / .steam / steam / steamapps / compatdata /601510/ pfx winetricks dotnet45
Featured in yellow Here are some important items in the command. The first number of the application.
Navigate to the directory "/home/$USER/.steam/steam/steamapps/compatdata/ " And you will see a number of folders with numbers that appear to be random, but actually represent the game ID within Steam.
* These numbered folders will only appear if you have games installed via Proton, native games are in another directory.
To find out which game corresponds to which folder you can browse the files within the prefix, where you are likely to find the executables, but there is a simpler way to do that, you can use ProtonDB And search by number, the site will bring you the game in question, as in the example of the game Warframe:
Another way is to use the Steam site itself. Using a browser use the URL https://store.steampowered/app/601510, where the yellow number (or prefix folder name) in this case would be the previously mentioned "Duel Links" game, this logic works with any game, including those that do not need Proton to run.
Winetricks is a graphics program too and you find it in your system menu, originally it seeks to use the default installation of Wine on your computer, not Proton, so we need the above command to direct it to work in the correct folder, However, this graphical application may be useful for you to find the name of the package you want to install, which would be the second highlight in yellow in our command, referring to "dotnet45", the name of the Net Framework 4.5 package.
As you can see, listed in the first column of the image above is the name of the packages, if I wanted (for whatever reason) to install DirectX 10 dlls in a Proton game specific prefix, such as "Duel Links", To use the same example, from the image above, the package name I should indicate "d3dx10", so the command would look:
WINEPREFIX = / home / $ USER / .steam / steam / steamapps / compatdata /601510/ pfx winetricks d3dx10
Important to finish!
This material is definitely not for those who simply want to "sit and play" only, but for those who want to go a little further with Proton and explore the possibilities of the tool. Most games compatible with the new Steam Play simply require the download of the game normally and your click on the play button, and nothing else, running as if they were native, however, there are some with few modifications, such as a simple parameter in startup, they may work or work better.
The most advanced part, intended for those who want to thoroughly test and tweak Valve's own system, is definitely aimed at those who want to explore and help report on the problems encountered so that a particular title does not run and, with luck, pointing to solution to the problem.
We are living in an age of transition, until this tool gets even more mature, some tweaking for certain games may be necessary, and often a simple word at startup is the difference between making the game work or not.
Probably, over time, the games that move to Valve Whitelist that need certain commands like that will already have these factory settings, whether they come from Valve itself or from the game developer.
The Proton beyond Steam
Proton has become so interesting that it is now part of other projects like Lutris, a software intended for Linux players that aggregates (or tries) all forms of play with the Pinguin system, including emulators, however, One of Lutris's strong points is the scripting community that makes it easy to install games like Overwatch and League of Legends, which can be installed with literally one click. Now Proton is part of this project too, as is DXVK.
See an error or would you like to add any suggestions to this article? Collaborate, click here.