Getting a Steam Proton game (Railgrade) running

Hello,

I’m trying to get Railgrade from Steam to run on NixOS, without success.

When I click “Play”, the game remains stuck on “Launching”… and that’s it. It just sits there…

The issue is a bit weird and inconsistent… I remember having this issue with Mashinky as well, though after changing the Proton version around a bit and back… It just suddenly started working without issues. I have yet to determine what the heck I even changed that caused it to work.

Are there log files somewhere that might be of some use?

Here’s what I get when I run Steam from the command line:

steam.sh[15321]: Running Steam on nixos 23.05 64-bit
steam.sh[15321]: STEAM_RUNTIME is enabled automatically
setup.sh[15399]: Steam runtime environment up-to-date!
steam-runtime-identify-library-abi: Failed to execute child process "/sbin/ldconfig" (No such file or directory)
run.sh[15411]: steam-runtime-identify-library-abi --ldconfig-paths failed, falling back to ldconfig
run.sh[15411]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[15321]: Steam client's requirements are satisfied
[2023-11-09 15:48:35] Startup - updater built Oct 31 2023 02:08:17
[2023-11-09 15:48:35] Startup - Steam Client launched with: '/home/werner/.local/share/Steam/ubuntu12_32/steam'
11/09 15:48:35 Init: Installing breakpad exception handler for appid(steam)/version(1698777785)/tid(15437)
[2023-11-09 15:48:35] Loading cached metrics from disk (/home/werner/.local/share/Steam/package/steam_client_metrics.bin)
[2023-11-09 15:48:35] Using the following download hosts for Public, Realm steamglobal
[2023-11-09 15:48:35] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-11-09 15:48:35] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-11-09 15:48:35] 3. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-11-09 15:48:35] Verifying installation...
[2023-11-09 15:48:36] Verification complete

Steam logging initialized: directory: /home/werner/.local/share/Steam/logs

XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf0a1f7b0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf0a1dfa0
steamwebhelper.sh[15443]: Runtime for steamwebhelper: defaulting to /home/werner/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[15443]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 33 milliseconds to initialize
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 15548
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
BRefreshApplicationsInLibrary 1: 1ms
BuildCompleteAppOverviewChange: 285 apps
RegisterForAppOverview 1: 48ms
RegisterForAppOverview 2: 48ms

After launching the game:

pressure-vessel-wrap[15643]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[15643]: W: Found more than one possible libdrm data directory from provider
/bin/sh\0-c\0PROTON_LOG=1 /home/werner/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1355090 -- /home/werner/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/werner/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun -- '/home/werner/.local/share/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun  '/home/werner/.local/share/Steam/steamapps/common/Railgrade/Railgrade.exe'\0
chdir "/home/werner/.local/share/Steam/steamapps/common/Railgrade"
ERROR: ld.so: object '/home/werner/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/werner/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/werner/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/werner/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/werner/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pressure-vessel-wrap[15830]: W: "/run/current-system/sw/bin/getent" is unlikely to appear in "/run/host"
pressure-vessel-wrap[15830]: W: Found more than one possible libdrm data directory from provider

I’ll go dig for some more log files to see what I can find.

I took a look at that logging directory /home/werner/.local/share/Steam/logs and there’s nothing that immediately jumps out as relevant to me.

Here’s what looks to be the Proton log file… no obvious errors here:

======================
Proton: 1699384120 experimental-8.0-20231107
SteamGameId: 1355090
Command: ['/home/werner/.local/share/Steam/steamapps/common/Railgrade/Railgrade.exe']
Options: {'forcelgadd'}
depot: 0.20231005.62324
pressure-vessel: 0.20230928.1 scout
scripts: 0.20230928.1
sniper: 0.20231005.62324 sniper 0.20231005.62324
Kernel: Linux 6.1.57 #1-NixOS SMP PREEMPT_DYNAMIC Tue Oct 10 20:00:46 UTC 2023 x86_64
Language: LC_ALL None, LC_MESSAGES None, LC_CTYPE None
Effective WINEDEBUG: +timestamp,+pid,+tid,+seh,+unwind,+threadname,+debugstr,+loaddll,+mscoree
======================

AAAAAAnd just like with Mashinky, now it suddenly started working.

I switched to Proton 7.x, added this to my config:

programs.steam = {
    enable = true;
    package = pkgs.unstable.steam.override {
      extraLibraries = (pkgs: [ pkgs.openssl pkgs.nghttp2 pkgs.libidn2 pkgs.rtmpdump pkgs.libpsl pkgs.curl pkgs.krb5 pkgs.keyutils ]);
    };
  };

The errors that prompted me to do that in the first place didn’t go away. It didn’t seem to start. Gave it a reboot.

…boom, it’s working now?! What the actual… What? Why?

I’d mark this reply as a solution, but I have no fucking clue what I actually did that fixed it.