-
Notifications
You must be signed in to change notification settings - Fork 3
Wine (Prefix) Management
Wine translates (=/= emulates) Windows system calls to Linux ones, making Windows programs run on Linux. Over the years, it has matured quite a bit, with the only real incompatibilities now being Anticheat software and some day-one games
During your time Gaming on Linux, you will inevitably encounter a point where something doesn't work. A game won't launch, your controller is not picked up, settings don't work, you name it. You will then either try to figure it out yourself, or ask someone else for help. Either way, the process of finding and solving the problem is sped up a lot if you know your way around Wine
There's a chance that whatever you're trying to do will not work. You might just spend a day trying only to find out that the game you're trying to run is utterly incompatible with Wine, or even if it does run, essential features are missing. This will happen eventually, and is part of the process. Shelf the game for now, or setup a Windows system and play it through that. Wine's compatibility is constantly getting better, check back in ~half a year and it might just work now.
The easiest way to use Wine is to launch it using your Terminal. wine WindowsProgram.exe
is enough to run a Windows program, but you might not want to do that straight away because...
A Wine prefix (or Wine Bottle) essentially contains a virtual Windows filesystem:
The default Wine prefix is located at ~/.wine
. Every program you use/install will see this folder (or, more specifically, the drive_c
subfolder) as their C: drive, and will have access to every other program installed in that prefix.
Now, you can set your Wine prefix location by setting the WINEPREFIX
environment variable to any existing folder (using export WINEPREFIX=/path/to/folder
on the Terminal for example). Afterwards, run wineboot --init && wineserver --wait
(or just wineboot -i && wineserver -w
for short) to create a new prefix in that directory. Once wineserver
quits (which you can see by being able to type in commands into the terminal again), your Wineprefix in the specified folder is ready.
Once you have created a prefix using the procedure described above, you can use it by simple setting WINEPREFIX
to that directory again. Running any program using Wine will now run it inside that prefix. This is useful for games with requirements like .NET or VCRuntime, as installing those on the default prefix might in turn break other games.
As an example, GTA V basically requires DXVK. On the other hand, Into the Breach does not work with DXVK. See the problem here? You'll have to have at least 2 prefixes, one with DXVK installed and one without.
And the process is the same with other Games & Requirements. In the interest of time, I'll not list everything here, but you get the gist of it.
Another scenario where using different Wineprefixes is important is when you're using...
Different Wine versions, in short, do different things to a prefix. For example, here's a screenshot of winecfg
on a prefix created by Wine and a prefix created by Wine-GE, a Wine version made for Gaming:
Wine | Wine-GE |
---|---|
As you can see, Wine-GE has a few more changes added there. These changes might help games to run, but they might also cause issues. Thus, I'd suggest to first try running your game with default Wine, and only trying Wine-GE if something isn't working.
This largely depends on the Wine version in question, so as an example I'll use Wine-GE:
-
Download the latest release
Go to the releases tab, then look at the top version. If it has a suffix (for example-LoL
), it's a specific release for one game (in this case League of Legends) and is not meant for anything other than that.
Here's a screenshot of the releases page. The green releases are "good":
Expand the "Assets" dropdown menu, and click the file with a ".tar.xz" file extension. -
Extracting and using the version
This will depend on the launcher you're using.If you're using Heroic, extract the archive to any one of the folders listed here. After that, you can select it in the settings
Legendary does not need a specific folder, the only requirement there is to know where you extracted the archive to. Extract the archive and add the following to your Legendary configuration file:
[AppName] wine_executable = /path/to/wine-ge-X.X-x86_64/bin/wine
(Replacing the "AppName" with the app name of the game and the path with the actual path of course)
If you aren't using a launcher (you just launch games from the terminal directly), the easiest way is to set the
PATH
variable. As you may know,PATH
is what the shell looks at to find out where to search for programs. So if you type in something likewine
, the shell will search through the folders listed inPATH
, and execute the first thing it finds. So to now override the wine version we're using, we just add a folder toPATH
:export PATH=$HOME/Wine/Versions/Wine-GE/bin:$PATH
would be one possible command (of course replace the wine version path as you need).
It's important to place this folder at the start of PATH, since otherwise the shell will still find the "normal" Wine binary before finding our custom one.
Aka "Hey my games run like shit with Wine"
Alright, where to start here...
Most games use some sort of graphics API to render. A lot of games use Microsoft's own implementation, Direct3D. This API is however only available on Windows. To combat this, Wine created their own translation layer called WineD3D. While it works, it's nowhere near perfect. Better suited alternatives are DXVK (for D3D9 to D3D11 games) and vkd3d-proton (for D3D12 games) (don't be confused about the name, it also works in Wine).
The Heroic launcher features an option to automatically install and update DXVK and VKD3D. If you are not using Heroic, here are install instructions for the Terminal:
- Download the thing you want to install
For DXVK, navigate to their Releases page and download the .tar.gz file
For vkd3d-proton, navigate to their Releases page and download the .tar.zst file - Open up a Terminal and set your
WINEPREFIX
& if necessary,PATH
This works the same way as shown above in the "If you aren't using a launcher" section of Wine Version management - Extract the file you downloaded, and navigate to the folder in the Terminal
- Run
./setup_dxvk.sh install
or./setup_vkd3d_proton.sh install
to install
Don't. Running Proton outside of Steam is not supported. When launched by Steam, it runs with a special container that bundles exactly the right libraries together to make it work. If not, this container doesn't exist. It may work, it may not. See this post on GE's Discord for additional info
Other than that:
(1) Proton provides very little log output, meaning if something doesn't work, you have no clue what to do to make it work.
(2) Proton's prefix creation works differently, and is also designed to only be done inside Steam.
(3) Proton's prefixes are structured completely differently to regular Wineprefixes. Your save data and any other settings you changed in the prefix will be removed/reset.
Most changes can be easily reverted by clearing out / deleting your WINEPREFIX
or restoring your PATH
back to normal (by opening up a new Terminal)
- Home
- Launcher of choice
- Fixes for common issues and Recommendations
- Potential controller issue fixes
- Wine (Prefix) Management
Game compatibility list:
- It just works™ (with DXVK)
- 3 out of 10, EP 1: "Welcome To Shovelworks"
- Ark: Survival Evolved
- Civilization VI
- Control
- DARQ
- Frostpunk
- Hades
- Horizon Chase Turbo
- Loop Hero
- Moving Out
- Rebel Galaxy
- Rise of the Tomb Raider: 20 Year Celebration
- Rocket League
- Satisfactory
- Shadow of the Tomb Raider: Definitive Edition
- Sonic Mania
- Tomb Raider 2013 (GOTY)
- Yooka-Laylee
- Workarounds
- 20XX
- Among Us
- Borderlands: The Pre-Sequel
- Borderlands 2
- Brothers - A Tale of Two Sons
- Celeste
- Cris Tales
- Elite Dangerous
- EOS Overlay
- Europa Universalis 4
- Football Manager 2020
- GTA V
- HOB
- Into The Breach
- Minit
- Moonlighter
- PC Building Simulator
- Overcooked 2
- Q.U.B.E 2
- Rocket League: BakkesMod
- Subnautica
- SUPERHOT
- Super Meat Boy
- Tiny Tina's Assault on Dragon Keep: A Wonderlands One-shot Adventure
- The Long Dark
- Train Sim World 2
- Unrailed
- Void Bastards
- Not working
- Fortnite
- The Escapists (1)