Digital Combat Simulator World#

DCS World is available through both Steam and a Standalone installer. The standalone installer is often recommended by the community as sales last longer & purchases earn you reward points.

Both version run with Proton.

Standalone Setup#

DCS requires extra configuration when running the standalone install, for both the base 2D game and for use in VR.

There is a set of Lutris installer scripts already, but this guide assumes you are using heroic-games-launcher.

Base Game Setup#

There are a few guides(Hoggit wiki, budderpard’s guide, ChaosRifle’s guide) on how to get DCS working, but this is a tested minimum configuration.

  1. Download the installer from the DCS website.
  2. Add a new game in Heroic using Proton 10 (GE-Proton10-17 is confirmed as working).
  3. Run the installer via the Add Game pop up.
  4. Set the executable to bin/DCS.exe in your installation location.
  5. After adding the game, go to Heroic’s SettingsAdvanced page and add the following environment variable: WINEDLLOVERRIDES="wbemprox=n".
  6. On the same Advanced page, add the --no-launcher game argument.
  7. On the SettingsWine page, click the Winetricks button at the bottom.
  8. Install the following components:
    • consolas
    • corefonts
    • d3dcompiler_47
    • xact

This should be enough to launch the game. Make sure it works before proceeding.

VR Setup#

For VR support, we’ll need to add some extra launch arguments, environment variables, and registry keys. The VR requirements were gleaned from Asset on the DCS Forums.

  1. Add the following launch arguments to the game via SettingsAdvanced: --force_enable_VR --force_OpenXR

  2. On the same settings page, add this environment variable: PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1

  3. Now, we need to add keys to the DCS Prefix’s registry. Run this script to generate a dcs-vr.reg file in your current directory:

     GPU_PCI_IDS="$(udevadm info -q property -p "/sys/bus/pci/devices/0000:$(lspci | grep 'VGA'| head -n 1 | cut -f1 -d' ')" | grep PCI_ID | sed -re 's|PCI_ID=(\w+):(\w+)$|\1\n\2|g')"
     GPU_VID="$(echo "${GPU_PCI_IDS}" | head -n 1)"
     GPU_PID="$(echo "${GPU_PCI_IDS}" | tail -n 1)"
     cat > dcs-vr.reg <<EOF
     Windows Registry Editor Version 5.00
    
     [HKEY_CURRENT_USER\\Software\\Wine\\VR]
     "openxr_vulkan_device_extensions"="VK_KHR_external_fence VK_KHR_external_memory VK_KHR_external_semaphore VK_KHR_dedicated_allocation VK_KHR_get_memory_requirements2 VK_KHR_external_memory_fd VK_KHR_external_semaphore_fd VK_KHR_external_fence_fd VK_KHR_image_format_list VK_KHR_timeline_semaphore"
     "openxr_vulkan_instance_extensions"="VK_KHR_external_memory_capabilities VK_KHR_get_physical_device_properties2 VK_KHR_external_semaphore_capabilities VK_KHR_external_fence_capabilities"
     "openxr_vulkan_device_vid"=dword:${GPU_VID}
     "openxr_vulkan_device_pid"=dword:${GPU_PID}
     "state"=dword:00000001
     EOF

    If this fails, you can create the file yourself and exclude the openxr_vulkan_device_vid & openxr_vulkan_device_pid keys as they seem optional at the moment.

  4. In Heroic, go to SettingsWineWinetricksOpen Winetricks GUI, then in Winetricks, select the Select Default PrefixRun regedit option.

  5. Load the registry keys by going to RegistryImport Registry Filedcs-vr.reg.

  6. You should see the new keys appear under HKEY_CURRENT_USER\Software\Wine\VR.

Now, when you launch DCS, you should be in VR!

Notes#

The openxr_vulkan_device_extensions & openxr_vulkan_instance_extensions values were determined by running hello_xr -v -g Vulkan2 in a terminal and looking at the extensions following the xrGetVulkanGraphicsDeviceKHR & xrCreateVulkanInstanceKHR log lines, respectively.