Open DenAkimov opened 6 days ago
Additionally, if I modify the hl2.sh launch script for Half-Life 2: Deathmatch to stop checking for the runtime environment, it complains about missing a launch binary.
In fact, I cannot find any binaries named hl2, hl2_linux, or hl2_linux64 in the Half-Life 2: Deathmatch directories. Anywhere.
having the same issue, using arch linux
In fact, I cannot find any binaries named hl2, hl2_linux, or hl2_linux64 in the Half-Life 2: Deathmatch directories. Anywhere.
Yep, not only it expects sniper
runtime when HL2DM uses soldier
(at least that's the output of echo $VERSION_CODENAME
), the executable file is entirely missing.
seems like the prerelease, previous_build, and steam_legacy beta branches work. the "stable" version and the beta branch called "beta" dont work
Only _prerelease, previous_build, and steamlegacy will work on Linux & MacOS right now. Public & beta are Windows only for now.
According to SteamDB, the three legacy repos are all on the same build of the game. So for now, use any of these to play the game and pray the server you like to play on hasn't updated. Public & beta removed the launcher binaries for both Linux & MacOS.
Only _prerelease, previous_build, and steamlegacy will work on Linux & MacOS right now. Public & beta are Windows only for now.
According to SteamDB, the three legacy repos are all on the same build of the game. So for now, use any of these to play the game and pray the server you like to play on hasn't updated. Public & beta removed the launcher binaries for both Linux & MacOS.
valve please fix (genuinely though, how tf did this happen?)
if you try to get the hl2_linux
and hl2.sh
it won't work due to missing libtcmalloc_minimal.so.4
but also due to new build shipping with 64 bit binaries. old executable wants 32 bit:
/mnt/7e35b636-96c0-4070-b04f-ad2f69b6a203/SteamLibrary/steamapps/common/Half-Life 2 Deathmatch/hl2_linux: error while loading shared libraries: libtcmalloc_minimal.so.4: cannot open shared object file: No such file or directory
after copying libtcmalloc_minimal.so.4
from portal or cs source:
AppFramework : Unable to load module sourcevr.so!
Using shader api: shaderapivk
failed to dlopen /mnt/7e35b636-96c0-4070-b04f-ad2f69b6a203/SteamLibrary/steamapps/common/Half-Life 2 Deathmatch/bin/shaderapivk.so error=libdxvk_d3d9.so: wrong ELF class: ELFCLASS64
failed to dlopen shaderapivk.so error=shaderapivk.so: wrong ELF class: ELFCLASS64
Failed to load DLL 'shaderapivk'
MaterialSystem cannot load: No ShaderAPIFactory!
System (VMaterialSystem081) failed during stage CONNECTION
wrong ELF class: ELFCLASS64
It says that the shaderapivk
library is 64-bit and 32-bit executable basically can't load it.
So yes, the updated HL2:DM version needs a new-built 64-bit executable.
On Fedora 41, _steamlegacy is the only version that works for me.
Copying the singleplayer HL2 hl2_linux
binary and then launching it like this actually runs, but then immediately crashes.
LD_LIBRARY_PATH="/home/andrius/.local/share/Steam/steamapps/common/Half-Life 2 Deathmatch/bin":$LD_LIBRARY_PATH ./hl2_linux -game hl2mp -steam
Log
TL;DR:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
Segmentation fault (core dumped)
To be clear the hl2mp client.so and server.so are still 32-bit, so you need a 32-bit launcher binary and 32-bit engine libraries. The ones in /bin
are 32-bit, but for some reason there are also redundant 64-bit libraries in /bin/linux64
. The hl2.sh
shell script is made for launching the 64-bit engine (it tries to run hl2_linux64
and prepends /bin/linux64
to LD_LIBRARY_PATH
instead of just /bin
) so it obviously won't work unless the game code is actually rebuilt for 64-bit. Even if you put everything where it needs to be, the engine just crashes. It looks like no one even tried to run this on Linux or macOS, let alone play tested it...
steam_legacy is the only version that works for me.
It's the only version that will work for anyone on Mac and Linux right now, they're both missing binaries.
If I'm to make an optimistic guess, maybe they did this intentionally to prevent people from launching the game, perhaps because they need more time to work on a fix for the other two clients.
Either way, I don't think throwing more logs at this is going to help either way. The binaries are missing, so that's it.
Now I'm no Valve developer, so I have no idea what their schedule is like other than they usually deploy updates and releases on Thursdays, so remember this probably won't be fixed until at minimum later this week IF they're currently working on a fix. It'll probably take even longer if they even bother to fix it at all.
HL2DM doesn't make them any money so they could just as well ignore this and leave it Windows exclusive. Ironically.
@nixRidge this was updated for the big Half-Life 2 20th Anniversary update. It definitely hasn't been broken on purpose, they could've just kept linux/macOS on the old depots before the update if it wasn't done.
In that case then yeah they goofed hard lol
The servers I normally play have upgraded to the 20th Anniversary Update so I can no longer play using _steamlegacy. I'm hopeful this gets resolved soon since it's a much different feel when I boot/play under Windows and I live/work natively under Linux. I really do appreciate everyone's efforts to support us in a tiny, tiny minority.
hl2dm also doesn't work for me anymore.
The 'hl2.sh' script fails the [ "$VERSION_CODENAME" != "sniper" ]
check. Disabling this check by commenting out the exit 1
will start the game but it will die with an error saying "Could not load library client. Try restarting. If that doesn't work, verify the cache."
Also experiencing this on Mint 21.3.
Same here
chdir "/run/media/wolfyxon/Acer/SteamLibrary/steamapps/common/Half-Life 2 Deathmatch"
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Game Recording - would start recording game 320, but recording for this game is disabled
Adding process 14268 for gameID 320
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/wolfyxon/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 14269 for gameID 320
Adding process 14270 for gameID 320
pid 14357 != 14351, skipping destruction (fork without exec?)
pid 14362 != 14351, skipping destruction (fork without exec?)
Adding process 14351 for gameID 320
pid 14384 != 14351, skipping destruction (fork without exec?)
FATAL: It appears hl2 was not launched within the Steam for Linux sniper runtime environment.
FATAL: Please consult documentation to ensure correct configuration, aborting.
Adding process 14383 for gameID 320
Adding process 14385 for gameID 320
Game Recording - game stopped [gameid=320]
Removing process 14385 for gameID 320
Removing process 14383 for gameID 320
Removing process 14351 for gameID 320
Removing process 14270 for gameID 320
Removing process 14269 for gameID 320
Removing process 14268 for gameID 320
Native Half-Life 2: Deathmatch fails to run, outputting: "FATAL: It appears hl2 was not launched within the Steam for Linux sniper runtime environment. FATAL: Please consult documentation to ensure correct configuration, aborting."