Skip to content
Rodney edited this page Jan 26, 2021 · 10 revisions

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 hacks (possibly wine 6.0 only)

For some reason this seems to be required with 6.0, otherwise the game will crash near the end of the IOI logo animation. I've seen at least one report of Proton-GE 5.21 working fine with just the DXVK configuration file change below, although I personally wasn't able to run the game with any Proton version at all.

Either way, here's what to do:

  • 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}"

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.

Launching

That should be it, basically. Now use legendary launch Eider to run HITMAN 3 with online authantication.