DCS World with TrackIR under Ubuntu

This is a record of my experience of setting this up.  It's meant more as a record for my future self than a tutorial, but maybe somebody will find it useful.

1 - Install DCS

First step, install DCS World via the Steam client as normal. 

2 - Install LinuxTrack


Using the gui (ltr_gui) requires qt4 libraries, which I could not find in my standard Ubuntu repositories, so I had to use the ppa instructions here: https://ubuntuhandbook.org/index.php/2020/07/install-qt4-ubuntu-20-04

Run ltr_gui from linuxtrack's bin directory to check everything works so far before moving on to get it running under Proton. 

3 - Install LinuxTrack into the DCS World prefix

NOTE: Attempting to install for Wine games WON'T WORK e.g. here https://github-wiki-see.page/m/uglyDwarf/linuxtrack/wiki/Wine-Games 
This is because Steam's Proton is NOT the same as Wine. 

In order to run the linuxtrack-wine.exe installer under proton, I had to use the following (immensely long) command line: 
STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.steam/steam" STEAM_COMPAT_DATA_PATH="$HOME/.steam/steam/steamapps/compatdata/223750" WINEPREFIX=$PWD "$HOME/.steam/root/steamapps/common/Proton 7.0/proton" run /opt/linuxtrack/share/linuxtrack/linuxtrack-wine.exe 

223750 is the app id/prefix for DCS World, so if you're doing the install for a different game, you'll need to change that. 

 (Optional) Then I checked I could run the TrackIR executable inside the prefix with this: STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.steam/steam" STEAM_COMPAT_DATA_PATH="$HOME/.steam/steam/steamapps/compatdata/223750" WINEPREFIX=$PWD "$HOME/.steam/root/steamapps/common/Proton 7.0/proton" run drive_c/Program\ Files\ \(x86\)/Linuxtrack/TrackIR.exe & 

I get an error popup complaining about mfc42, but I just click the button and it seems to work anyway. 

4 - Fixing the pressure-vessel problem 

Steam's Proton uses a 'pressure vessel' which makes it impossible to run more than one executable at a time.  Trying to run DCS World at this point for me started up the TrackIR executable and then waited. Only once I had killed the TrackIR process did DCS World start up. 

To solve this, I needed to build/install steamtinkerlaunch available here: https://github.com/frostworx/steamtinkerlaunch 

I had to build the yad dependency from source (https://github.com/v1cont/yad

I then added steamtinkerlaunch as a compatibility tool, as described here: https://github.com/frostworx/steamtinkerlaunch/wiki/Steam-Compatibility-Tool)

Then, once I restarted the Steam client, steamtinkerlaunch was available as a compatibility tool for DCS World the same way you would select a specific version of Proton (select it under 'Compatibility' category in DCS World's settings) 

5 - Starting up the game 

First, start ltr_gui. This allows you to set up/recentre the tracking. 
Then start up DCS World through the Steam app as normal. TrackIR.exe should start up (with the mfc42 error popup), and DCS World starts up straight away! 

Now I just need to find a nice way of setting up my HOTAS profile the way I like it.

UPDATE: I wrote a simple python-based input mapper which meets my needs.  It is available here

Comments

Popular posts from this blog

Micro:Bit and SPI display

Polygon Triangulator!!