Skip to content
Rodney edited this page Jan 8, 2022 · 7 revisions

This wiki page is outdated, please see game-specific entries in the sidebar and https://github.com/CommandMC/EpicLinux/wiki instead

This is a list of workarounds to get games running on Linux.

This list generally assumes you're using Proton as described in the Using Proton page of the wiki.

Also, this is very WIP and will be edited/expanded upon with new games/game updates


Borderlands 2

Borderlands 2 runs quite well using Proton. The only tweak needed is to skip the launcher, which can for example be done by adding this to the Legendary config.ini file:

[Dodo]
start_params = -NoLauncher

Elite Dangerous

Elite Dangerous requires a custom Wine Mono version (which can be downloaded from redmcg/wine-mono) and one-time usage of a Windows VM/PC.

First, try launching the game once with Proton and a Prefix set. This will create necessary directorys and fail with The entry point method could not be loaded...

Once you have the custom Mono version, open your Terminal Emulator, set the STEAM_COMPAT_DATA_PATH variable to your Proton prefix (using export to set variables) and set WINEPREFIX to $STEAM_COMPAT_DATA_PATH/pfx (the pfx folder inside your Proton prefix, which is your wine prefix)

Lastly, navigate to your Proton installation (by default in /home/$USER/.steam/steam/steamapps/common), into the dist folder, bin folder and then start wine64 with the arguments msiexec /i /path/to/your/wine-mono-5.1.1.2_ED-x86.msi. A one-liner for all of that, assuming you have Proton 5.13 stored inside your default steam folder and the latest wine-mono is in your Downloads folder, would be /home/$USER/.steam/steam/steamapps/common/Proton 5.13/dist/bin/wine64 msiexec /i /home/$USER/Downloads/wine-mono-5.1.1.2_ED-x86.msi

This is how far you're able to get inside Linux. Now, you'll have to switch to your Windows PC/VM and link your Epic Games Account with your Frontier account, as trying to do that on Linux crashes the launcher. Once your account is linked, pressing "Play" on the launcher works just fine and the game runs (and quite well might I add)

HITMAN 3

Getting Hitman 3 to run involves a few manual steps. This guide will run you through everything I needed to do to get it successfully running on Ubuntu 20.04 with wine-staging (6.0), DXVK 1.7.3, and vkd3d-proton 2.1. The Nvidia proprietary driver version was 460.32.
Note that this is using stock wine-staging without any custom patches or enhancements, other wine versions may work better.

Note: There are some visual glitches present, most of which appear to be fixed in the development version of vkd3d-proton, compiling the latest version yourself is therefore recommended.

Setting up WINE

  • Pick a path for your prefix, then run WINEPREFIX=/my/prefix winecfg, and set the Windows version to "Windows 10"
  • Install DXVK manually (WINEPREFIX=/my/prefix ./setup_dxvk.sh install)
  • Install vkd3d-proton manually (WINEPREFIX=/my/prefix ./setup_vkd3d_proton.sh install)

While HITMAN 3 is DX12 only, DXVK's DXGI implementation seems to be required for this to work properly. Using only WINE's native version did result in the game crashing on startup.

Registry edits (WINE builds without fullscreen hack [fshack] only)

Without the fullscreen hack the game will crash near the end of the IOI logo animation or loading screen (in benchmark mode). The following registry edits will make it run on stock WINE without the hack.

Steps:

  1. Make sure wine isn't running anything (wineserver -k)
  2. Make doubly sure it's not running (killall wineserver)
  3. Open $WINEPREFIX/system.reg in a text editor of your choice and append this at the end, then save
[System\\CurrentControlSet\\Control\\DeviceClasses\\{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\##?#PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000000#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}] 
"DeviceInstance"="PCI\\VEN_0000&DEV_0000&SUBSYS_00000000&REV_00\\00000000"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\##?#PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000000#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\#] 
"SymbolicLink"="\\\\?\\PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000000#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\##?#PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000001#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}] 
"DeviceInstance"="PCI\\VEN_0000&DEV_0000&SUBSYS_00000000&REV_00\\00000001"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\##?#PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000001#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}\\#] 
"SymbolicLink"="\\\\?\\PCI#VEN_0000&DEV_0000&SUBSYS_00000000&REV_00#00000001#{5B45201D-F2F2-4F3B-85BB-30FF1F953599}"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\##?#DISPLAY#DEFAULT_MONITOR#0000&0000#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}] 
"DeviceInstance"="DISPLAY\\DEFAULT_MONITOR\\0000&0000"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\##?#DISPLAY#DEFAULT_MONITOR#0000&0000#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\#] 
"SymbolicLink"="\\\\?\\DISPLAY#DEFAULT_MONITOR#0000&0000#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\##?#DISPLAY#DEFAULT_MONITOR#0000&0001#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}] 
"DeviceInstance"="DISPLAY\\DEFAULT_MONITOR\\0000&0001"

[System\\CurrentControlSet\\Control\\DeviceClasses\\{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\##?#DISPLAY#DEFAULT_MONITOR#0000&0001#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}\\#] 
"SymbolicLink"="\\\\?\\DISPLAY#DEFAULT_MONITOR#0000&0001#{E6F07B5F-EE97-4A90-B076-33F57BF4EAA7}"

DXVK config

In order for Hitman 3 to launch we need to create a dxvk.conf file with the following contents:

dxgi.nvapiHack = False

This file can be whereever, but for simplicity I created it in the game's installation directory.
Credit for this belongs to u/ApprehensiveDraw5 on reddit who originally figured this out: https://www.reddit.com/r/HiTMAN/comments/l1bilt/hitman_3_with_wineproton/gk2nn8y/

Setting up legendary

In order for the game to successfully launch we need to specify at least the prefix and DXVK config file:

[Eider]
wine_executable = /opt/wine-staging/bin/wine

[Eider.env]
WINEPREFIX = /home/user/legendary/HITMAN3/.wine
DXVK_CONFIG_FILE = /home/user/legendary/HITMAN3/dxvk.conf

Obviously you'll have to adjust paths to your system.

Star Wars: Battlefront II

The game is not installed or downloaded via Epic, instead the Epic Games Launcher launches Origin to link your account to install the game. This can be done manually to still be able to install and download the game without the Epic Games Launcher.

Installing Origin

Origin needs to be installed and working for this, please consult https://github.com/lutris/docs/blob/master/Origin.md for how to get it running via Lutris.

Linking your account & installing the game

In order to link your account you need something called an "exchange code", this can be obtained via legendary by copying the parameters used to launch a game, which in turn can be easily obtained via --dry-run.

Tip: If you do not have any games installed obtain Spotify from the Epic Games Store website, it is only around 80 Megabytes in size and quickly downloaded.
Note: The code is only valid for a few minutes, so if you have issues try again with a fresh one. It can also help to have Origin already running.

When launching a game with the --dry-run option you will get a command line something like this:
wine Game.exe -AUTH_LOGIN=unused -AUTH_PASSWORD=000102030405060708090a0b0c0d0e0f -AUTH_TYPE=exchangecode -epicapp=AppName -epicenv=Prod -EpicPortal -epicusername=Name -epicuserid=0f0e0d0c0b0a09080706050403020100 -epiclocale=en

To link the account, copy the AUTH_PASSWORD, epicusername and epicuserid into the following command, then run it from within a cmd (in your Origin WINE prefix):
start "" "link2ea://launchgame/MtMassive?AUTH_PASSWORD=<AUTH_PASSWORD>&AUTH_TYPE=exchangecode&epicusername=<epicusername>&epicuserid=<epicuserid>&epiclocale=en&theme=sws&platform=epic&Hotfix=go"

Based on the example above the final command should look something like this (with your credentials instead, obviously):
start "" "link2ea://launchgame/MtMassive?AUTH_PASSWORD=000102030405060708090a0b0c0d0e0f&AUTH_TYPE=exchangecode&epicusername=Name&epicuserid=0f0e0d0c0b0a09080706050403020100&epiclocale=en&theme=sws&platform=epic&Hotfix=go"
This should open a Window from Origin asking you to link your Origin and Epic accounts, afterwards the game should start installing via Origin (if the game is not installable, try restarting Origin).

Note: You may get a prompt asking you to register a product code, simply dismiss this as the game will already be registered to your account at that point and will be downloadable from your Origin library.

Launching the game

Attempting to launch the game via Origin directly will attempt to launch the Epic Launcher, instead you will have to use a similar command to the one above to run the game:
start "" "link2ea://launchgame/MtMassive?AUTH_PASSWORD=0&AUTH_TYPE=exchangecode&epicusername=&epicuserid=&epiclocale=en&theme=sws&platform=epic&Hotfix=go"

Note that only the password parameter here cannot be empty, but it does not need to be valid. Origin will launch the game afterwards.

Clone this wiki locally