Since LiveSplit only supports windows, we need to run it in wine (Proton) together with the game.
Unfortunately, this can cause issues with some games.
(All of these games still have missing fonts)
Sadly, LiveSplit is a requirement for source speedruns, and it does not function well under wine, though it does at least function well enough for runs with an autosplitter.
It is generally recommended to use LiveSplit 1.8.29 for best compatibility.
Note that as of May 2026, a Steam update has broken DRM in Source games when ran via a bat file directly through Steam.
This can be worked around by running proton directly.
In order to use LiveSplit with a Steam game ran in Proton, it needs to be ran inside of the same wineprefix.
There are multiple ways to do this.
.bat files can be ran directly through Proton, and are capable of running 2 other programs from inside.
This can be used to easily run the game and the timer in the same wineprefix.
As an example, here is a bat file that can be used for launching Half-Life 2:
@echo off
cd "%~dp0"
:: Looped CLI to select a program to run
:mainloop
set /p INPNUM="1 - livesplit 2 - hl2"
IF %INPNUM%==1 (start livesplit/LiveSplit.exe) ELSE ^
IF %INPNUM%==2 (goto hl2)
goto mainloop
:hl2
:: -game hl2 will run the game stored in the folder "hl2". to run, for example portal, use -game portal.
start hl2.exe -game hl2 -console -w 2560 -h 1440
:: Rinput is a program which enables Raw Input in Pre-2013 Source games. Remove this line when running a Source 2013 version of a game, like hl2 5288.
"RInput\RInput.exe" hl2.exe
:: Going back to allow the user to launch another program
goto mainloop
We want the player to be able to relaunch the game without restarting livesplit in case of a crash, which is the reason for the overcomplication of this script.
The script assumes it is placed in the same directory as hl2.exe, and that livesplit is located in livesplit.LiveSplit.exe
This can also be used to run windows-only mods, by placing the mod folder in the same folder as the game exe, then selecting it with -game. (ex. -game offshore)
Waezone's Proton Launcher was made specifically to launch LiveSplit alongside games.
Note that as of right now it cannot use custom Proton versions like Proton-GE.
It is possible to simply run a game with proton without using any tools inbetween.
This method usually completely circumvents using a bat file to launch the game at all, but it can be used together with one.
We will create a sh script, which will be placed next to our game exe, as an example here, hl2.exe. We will be launching the game hl2.
First, we will need to set some variables.
export STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam — the path to Steam. If it is installed natively, this will be the same on most systems. Make sure to change the path if using a different installation method for Steam.
export STEAM_COMPAT_DATA_PATH=~/.proton — the path to the wineprefix used by the script. a wineprefix can be thought of as an emulated Windows environment - Programs running in the same one will be able to read each other's memory. If you do not have a wineprefix prepared, point this to an empty directory. Pointing it to one that doesn't exist will not work. In this example, we will be using a .proton directory in the user's home folder.
proton="~/.steam/steam/compatibilitytools.d/GE-Proton9-11/proton run" — the path to the Proton version to be used to launch the game. Mixing Proton versions in the same wineprefix is undesired, Make sure to use a different one for each Proton version that you want to use.
Now that we've set everything up, we can launch the game by using $proton hl2.exe -game hl2 -high -fullscreen -novid -console.
An example full script, using Proton GE9-11 would look like this:
#!/bin/sh
export STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam
export STEAM_COMPAT_DATA_PATH=~/.proton
proton="/home/USER/.steam/steam/compatibilitytools.d/GE-Proton9-11/proton run"
$proton /PATH/TO/LIVESPLIT/LiveSplit/LiveSplit.exe &
$proton hl2.exe -game hl2 -high -fullscreen -novid -console
An example full script, with automatic reboot upon the game being closed or a crashing, with RInput:
#!/bin/sh
export STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam
export STEAM_COMPAT_DATA_PATH=~/.proton
proton="/home/USER/.steam/steam/compatibilitytools.d/GE-Proton9-11/proton run"
$proton /PATH/TO/LIVESPLIT/LiveSplit/LiveSplit.exe &
while :
do
$proton PATH/TO/RINPUT/rinput.exe hl2.exe &
$proton hl2.exe -game hl2 -high -fullscreen -novid -console
done
TLDR:
The main Proton version used for speedrunning GoldSrc and Source 2 games is latest Experimental due to recent fixes as of June 2026.
The main Proton version used for speedrunning Source games is GE-9-11, as it works fine with all games on both X11 and Wayland.
Wayland users may try to use newer custom Proton versions running with PROTON_ENABLE_WAYLAND=1, but the experience will be less stable.
Some issues with using other Proton versions include:
The following Table is a rough overview of the issues present in each version, and does not factor in Game-Specific issues.
| Proton 5, 6, 7 | Proton 8 | Proton 9, 10, 11 Latest | Proton GE-9-11 | Proton Experimental | |
|---|---|---|---|---|---|
| Memory Leak in LiveSplit | Yes | No | No | No | No |
| Game input issues on X11 Driver* | No | No | Yes | No | Inconsistent behaviour |
| Autosplitter issues | No | Yes | No | No | No |
| Some fonts look off no matter what | Yes | No | No | No | No |
* Can be worked around by not running any programs that capture mouse inputs in the wineprefix and using This LiveSplit component.
The fonts looking garbled is caused by Valve games using Windows system fonts that are not installed in the wineprefix.
Specifically:
In order to fix this, the fonts need to be installed to either the wineprefix that the game launches in, or user-wide.
You may use Protontricks for this.
Note that this method only works when launching the game directly from Steam.
After installing, run protontricks --gui.
Navigate to steamapps/compatdata/ID of the wineprefix here/pfx/drive_c/windows/Fonts/
You'll know which wineprefix is the right one as it will have a very long name.
Simply drag and drop the .ttf files of the fonts you need into this folder.
Installing the fonts User-Wide will work as well, but is generally harder to do due to Licensing. It may be worth looking into if you use multiple prefixes for Source games.
WON tends to either crash or have visual glitches, depending on the Proton version.
As of June 2026, Proton Experimental appears to have fixed all issues with the WON version and is the recommended version.
WON Packages include an incredibily outdated version of BXT That doesn't support disabling VSync.
On some systems this will lead to a 60 FPS lock no matter what.
Some users have worked around this by using the zink opengl to vulkan translation layer, but this does not appear to always work.
The correct way to fix the issue is to:
set BXT_DISABLE_VSYNC=1 to the launcher .bat fileRunning Source 2004 builds of Half-Life 2 for the first time will result in the game using up over 60GB of RAM.
If it cannot fill those 60GB up, it will crash together with Steam. This is caused by a bug in shaderapidx9.dll
Fixing this requires patching the DLL, or tanking the RAM spike.
A Pre-Patched DLL is included in 2707 Unpack, which is the recommended version for speedrunning Old Engine.
When trying to run a Source 2007 version of EP2 or Portal, such as 4104 or 3420, it will crash.
This appears to be caused by incompatibility with the included Steam integration.
This has been fixed in Proton 10. Continue reading if you're using an older version, such as GE9-11.
In order to fix:
{Unpack Dir}/bin/steam_api.dll.Fast TP ("FTP") runs require a version of SteamVR older than v1.22.
You may install SteamVR 1.21.12 By directly download the depots using the Steam console. (Launch steam with the -console parameter to get access. You can get the commands for downloading the depots Here.
TODO: list precise instructions for above
Changing keybinds appears to be broken on this older SteamVR build, so change them on the latest one before switching back.
Due to the age of this version, It may not function at all on modern systems. Look into Monado if this is the case.
FTP works with Monado with xrizer v0.4. xrizer has patched FTP since, but latest monado can still be used.
Set your bindings in latest SteamVR, then copy them over to the xrizer folder according to the LVRA Wiki
Running with xrizer will cause loading screens to be entirely blank, and overall poor performance compared to SteamVR.