Over to you

16 May 2021

Playing Revenant using Wine and Proton

TL;DR: I tried to run an old game called Revenant on Linux using both WINE and Proton, but both had problems. Here’s how I combined the powers of both to run the game on my Ubuntu machine.

Background

The WINE project is an emulation layer that enables you to run a large amount of Windows programs on a Unix system. It can be difficult to configure, but it’s a fairly mature project that even supports some modern Windows games.

I recently bought an old game called Revenant on a GOG sale, and was disappointed to find that it didn’t run at all well on my old Ubuntu laptop. The intro FMV and menu worked, and the game seemed to run alright until the sampled speech started playing back. For some reason, sample playback sounded choppy and every sound played twice with a one-second echo effect.

My first thought was to try a different audio library (ALSA instead of PulseAudio) but this had no effect, nor did the usual low-latency tweaks for PulseAudio.

Eventually I tried running the game with Steam’s Proton engine, which is a set of extensions to Steam that can provide better performance and compatibility for various games. In this case, the game played more smoothly and sample playback was perfect, but now the FMVs didn’t work at all, so every cutscene was a completely black screen.

After several hours of investigation I was about to give up, but then tried running Wine on the "prefix" directory created by Proton. To my surprise, this gave me the best of both worlds: working (if slightly ugly) cutscene video and correct sample playback in-game.

If you’ve found yourself in a similar situation, perhaps these steps may help you.

Install Proton

First, make sure you have a version of Proton installed. As far as I can tell, this involves installing a Steam game that requires Proton to run in Linux. You can choose your desired Proton version as follows:

  1. Right-click the game in Steam

  2. Click "Properties"

  3. Go the the "General" tab

  4. Check the "Force the use of a specific Steam Play compatibility tool" box

  5. A dropdown menu will appear letting you select a Proton version.

  6. Save your changes and run the game once.

Set environment variables for Wine and Proton

This will avoid having to specify them when running each command:

export WINEPREFIX=~/proton
export PROTON_NO_ESYNC=1

It’s probably a good idea to add these to a small script for launching the game once you have it working.

Create a new prefix directory for Proton

When playing Steam games, Proton seems to create a separate prefix directory for each game. Since we’re not playing a Steam game, let’s create a separate prefix directory for Proton that we can use for this game (and hopefully others, since these directories can eat into your hard disk space):

mkdir ~/proton

Install the game

Use Proton to run the Revenant installer (assuming you saved it to the current directory):

~/.steam/steam/steamapps/common/Proton\ 5.13/proton run setup_revenant_1.22l_\(21853\).exe

You may also need to run the game once with Proton to populate the prefix directory, but perhaps this step can be skipped:

cd ~/proton/drive_c/GOG\ Games/Revenant/
~/.steam/steam/steamapps/common/Proton\ 5.13/proton run Launcher.exe

Install corefonts

When you run the game with Wine, it’ll be missing some standard system fonts and will look weird. You can fix that using winetricks:

winetricks corefonts

Launch the game with Wine

cd ~/proton/drive_c/GOG\ Games/Revenant/
wine Launcher.exe

That’s what worked for me. There’s probably a much neater way to do this that doesn’t involve Proton at all; if so, please leave a comment and let me know.