-
-
Notifications
You must be signed in to change notification settings - Fork 166
Game workarounds
This wiki page is outdated, please see game-specific entries in the sidebar and https://github.com/CommandMC/EpicLinux/wiki instead
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 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 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)
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.
- 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.
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:
- Make sure wine isn't running anything (
wineserver -k
) - Make doubly sure it's not running (
killall wineserver
) - 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}"
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/
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.
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.
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.
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.
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.