Wine
Install Wine to play (almost) any Windows game on Linux. For a compatibility list refer to ProtonDB.
Install Wine from the repositories:
pacman -S wine wine-gecko wine-mono winetricks
DXVK
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine.
Install DXVK from AUR:
yay -S dxvk-bin
NOTE: If you set up Wine with a non-default prefix (i.e. your Wine "installation" does not reside under ~/.wine
) you will need to supply it as a temporary environment variable:
WINEPREFIX=your-prefix setup_dxvk install
WARNING: DXVK overrides the DirectX 10 and 11 DLLs, which may be considered cheating in online multiplayer games, and may get your account banned. Use at your own risk!
Install DXVK libraries into your Wine prefix:
setup_dxvk install
VKD3D-Proton
VKD3D-Proton aims to implement the full Direct3D 12 API on top of Vulkan.
Install VKD3D from AUR:
yay -S vkd3d-proton-bin
NOTE: If you set up Wine with a non-default prefix (i.e. your Wine "installation" does not reside under ~/.wine
) you will need to supply it as a temporary environment variable:
WINEPREFIX=your-prefix setup_vkd3d_proton install
WARNING: VKD3D-Proton overrides the DirectX 12 DLLs, which may be considered cheating in online multiplayer games, and may get your account banned. Use at your own risk!
Install VKD3D-Proton libraries into your Wine prefix:
setup_vkd3d_proton install
MIDI Playback
Some Windows games still use MIDI playback for music. In order for this to work in Wine, a sequencer has to be installed, e.g. fluidsynth
:
NOTE: FluidSynth uses soundfonts to render MIDI music.
pacman -S fluidsynth soundfont-fluid
FluidSynth comes with a systemd user unit to run it in daemon mode. Edit the file /etc/conf.d/fluidsynth
and uncomment the lines with the environment variables. Point the SOUND_FONT
variable to a soundfont file in *.sf2
format (refer to DOSBox for a list of available soundfonts for installation). Furthermore, adjust the OTHER_OPTS
variable to use the appropriate audio backend that you are using, e.g. set parameter -a pipewire
if you're using PipeWire instead of PulseAudio:
# Mandatory parameters (uncomment and edit)
SOUND_FONT=/usr/share/soundfonts/FluidR3_GM.sf2
# Additional optional parameters (may be useful, see 'man fluidsynth' for further info)
OTHER_OPTS='-a pipewire -m alsa_seq -p FluidSynth\ GM -r 48000'