RSS ☼

erysdren's WWW site

software, gameware, strangeware


Running Half-Life 2: Survivor on the Steam Deck
2025-01-09

Please note that I will NOT provide any support for this. The game is finnicky, frequently breaks, and is hard to get running in the first place. Please make sure you have followed my instructions to the letter, and even then it may not work.

A picture of a Steam Deck running Half-Life 2: Survivor

  1. Download This repackaged version of the game and put it somewhere on your Steam Deck. I've packed in all the necessary game content, fixed case issues with the filenames, and regenerated vidcfg.bin.

  2. Add hl2.exe from the folder as a non-Steam game, under the name "Half-Life 2: Survivor".

  3. Set the Compatibility mode to Proton Experimental.

A screenshot of the Steam compatibility options for Half-Life 2: Survivor

  1. Install this Japanese locale fix as directed (the "Complete solution" steps).

A screenshot of the Steam Deck Japanese locale fix webpage

  1. Set your Steam launch options to this:
LANG=ja_JP.UTF-8 ~/locales/run.sh %command% -game hl2mp -heapsize 512000 -width 1360 -height 768 -windowed -language japanese -ac -io 0 -nesys 0
  1. Set the Game Resolution to 1600x900 and turn on the "Set resolution for internal and external display" option.

A screenshot of the Steam launch options in place

  1. At this point, the game should launch and you should be greeted with a spew of random debug text. This is the Debug Console, which Gamescope always seems to grab first. To get to the actual game window, press the "Steam" button and select the window named "Half-Life 2 DM".

A screenshot of the Steam launch options in place

  1. Next you'll wanna set up your control scheme. I created this one based on the existing "Keyboard (WASD) and Mouse" scheme.

A screenshot of the Steam Deck control scheme

Regenerating vidcfg.bin

NOTE: You probably won't have to do this.

If the game crashes your Steam Deck or never gets past a black screen after several minutes, you probably need to regenerate the vidcfg.bin file in the game's bin directory. You can regenerate the vidcfg.bin file with this script:

#!/bin/bash
vulkaninfo | grep deviceUUID | cut -c 38- | echo $(read s;echo ${s//-}"0000962d") | xxd -r -p > vidcfg.bin

Notes