protonscr

Half-Life (70)

protonopen appid 70Game compatibility - UnofficialRegression
ValveSoftware/Proton#4850 · opened 2021-05-24 by Drek282 · updated 2024-11-14 · 39 comments · github · game page · search this game
DDrek282 2021-05-24 github

Compatibility Report

  • Name of the game with compatibility issues: Half-Life
  • Steam AppID of the game: 70

System Information

  • GPU: 2 X AMD RX 580
  • Driver/LLVM version: Mesa 20.3.4
  • Kernel version: 5.10.0
  • Link to full system information report as Gist: System Information
  • Proton version: 6.3-4

I confirm:

  • [ x ] that I haven't found an existing compatibility report for this game.
  • [ x ] that I have checked whether there are updates for my system available.

Proton Log

Symptoms

Half-Life fails to start. wine/proton error "hw.dll failed to load..."

Reproduction

Force compatibility mode with any Proton version, start the game.

DDrek282 2021-05-24 github

Just in case it's a question. Half-Life runs perfectly in it's native Linux version, but there are mods where the only functioning versions available are Windows versions. It's also worth noting that running them this way through Proton has worked perfectly until recently.

Kkisak-valve maintainer 2021-05-24 github

Hello @Drek282, these look like some lines of interest from your log:

err:module:open_builtin_file failed to load .so lib "/home/llewen/Games/SteamLibrary/steamapps/common/Proton 6.3/dist/lib/wine/dinput.dll.so"
err:module:import_dll Loading library DINPUT.dll (which is needed by L"Z:\\home\\llewen\\Games\\SteamLibrary\\steamapps\\common\\Half-Life\\hw.dll") failed (error c000007a).
DDrek282 2021-05-24 github

Ok, so how would you propose I fix that? One of the issues with Valve's Proton is that it isn't easy to fix those kinds of issues with something like winetricks or winecfg. All my peripherals are working, and have worked for the past year.

DDrek282 2021-05-24 github

Ok, a number of data points which might affect the loading of that library:

  • I have a fairly new usb headset, but I know the game has worked with it.
  • Just recently I have noticed a usb error on boot. I think it's the headset that is failing to to be detected, but I'm not seeing any errors in syslog and the headset seems to work without issues.
  • I use an old much loved Logitech G13 game board which I may sadly have to give up at some point soon. It uses a userspace driver that I compile.

I'm going to try recompiling that G13 driver and see if that is the issue.

DDrek282 2021-05-24 github

Recompiling the G13 driver seemed to make the USB error go away, but I'm still getting the hw.dll failed to load error. I also use software for my G510s keyboard that is not from the Debian ecosystem. I've never had any significant issues with it and barely remember how I installed it or how it works. I believe it loads with KDE. And as I said, I was able to run the Windows version of Half-Life with mods for around a year, with few issues, until now.

DDrek282 2021-05-24 github

I also run loads of other Windows games through Lutris, and I don't think any of them have mysteriously stopped working. I think the Lutris wine versions I use are "Protonified" versions in a lot of cases. And none of this is a complaint about Valve. Valve has done more for gaming on Linux than any other corporate body in the history of PC gaming. I'm a huge fan of Valve.

So thank you. I just wanna get ma games working... :(

Kkisak-valve maintainer 2021-05-24 github

As a blind guess, maybe try moving the game's wineprefix (/home/llewen/Games/SteamLibrary/steamapps/compatdata/70/) somewhere out of the way so that Proton generates a new wineprefix and see if that has an effect while trying to run the game.

If that doesn't have an effect, you can try something similar with the dist folder in /home/llewen/Games/SteamLibrary/steamapps/common/Proton 6.3/. Moving/removing the dist folder should get Proton 6.3-4 to re-unpack itself the next time it is run.

If either of those help, then please check if there's a difference with dinput.dll or dinput.dll.so between the new and older folders.

DDrek282 2021-05-24 github

Those two suggestions didn't work. Going back to Proton 4.11 did. Thank you for your help.

I had already tried all the Proton versions from 5.0 and up, but I hadn't gone back as far as 4.x or 3.x.

Aalasky17 2021-05-24 github

@Drek282 Could you try running the game on 6.3-4 without any mods playing? Half-Life is running for me on 6.3, but I don't have any mods - I'm wondering if its one of the mods that is causing the error.

DDrek282 2021-05-24 github

I tested it without mods and it wouldn't start on 6.3. Both the main game and the mods work on 4.11.

Aalasky17 2021-05-24 github

@Drek282 Do you have any controllers plugged in? I'm trying to figure out why I don't see the failure. Also - there was a game update 5 days ago, so its possible that broke things that were previously working.

DDrek282 2021-05-24 github

As I said, I have a G13 gameboard installed. I've never had any issues with it causing problems with any games, wine or native linux.

DDrek282 2021-05-24 github

I unplugged the G13, killed the g13d process, switched to Proton 6.3-4 and attempted to start the base Half-Life game and received the same hw.dll error.

DDrek282 2021-05-24 github

I think it's pretty reasonable to deduce that the recent Half-Life update is the source of the issue.

DDrek282 2021-05-24 github

When I attempted to post an issue on the github for Half-Life, they sent me here. I wouldn't be surprised to find that the issue affects more than people running the Windows version on Linux. hw.dll failing to load is an old issue that has a nasty habit of rearing it's head every now and again.

Aalasky17 2021-05-25 github

@Drek282 Thank you for testing without the G13 just to narrow that down :) I also wouldn't be surprised if it is a bug on Windows too and we are just hitting it more frequently :/

Aalasky17 2021-05-25 github

@Drek282 2 more requests to attempt to get to the bottom of this in case it is in our power to fix:

  1. Could you "verify the integrity of the files" for Proton 6.3-4 (under properties -> local files) - just to make sure something didn't get messed up in there.
  2. Could you get a log with +module,+dinput added to the rest of the channels?
DDrek282 2021-05-25 github

Verified Proton 6.3-4 files. That wasn't likely to be the issue seeing as the crash occurs with all versions of Proton >= 5.0.

Aalasky17 2021-05-25 github

@Drek282 I'm getting an error that I can't connect to that file server - is the log small enough to just attach here?

DDrek282 2021-05-25 github
DDrek282 2021-05-25 github

Sorry, hosting buggered up and didn't realize I could just drag and drop files. Reading comprehension ftw...

Aalasky17 2021-05-25 github

@Drek282 That didn't actually pick up the extra logging channels - try instead using this as the launch option: WINEDEBUG=+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree,+module,+dinput %command%

DDrek282 2021-05-25 github

Ya, I just didn't have the right syntax. Once more into the breach...

DDrek282 2021-05-25 github
Aalasky17 2021-05-25 github

@Drek282 based on "16970.231:0134:0138:warn:module:dlopen_dll failed to load .so lib "/home/llewen/Games/SteamLibrary/steamapps/common/Proton 6.3/dist/lib/wine/dinput.dll.so": /home/llewen/Games/SteamLibrary/steamapps/common/Proton 6.3/dist/lib/wine/dinput.dll.so: undefined symbol: SDL_JoystickGetDeviceInstanceID" it seems like your SDL is too old. Could you try using the Steam runtime libraries?

DDrek282 2021-05-25 github

I will try that. I use system libraries because the libraries provided with Steam cause instability, including lockups going in and out of suspend.

DDrek282 2021-05-25 github

I've also been using system libraries for over a year without issues.

DDrek282 2021-05-25 github

Switched to Valve's versions of those libraries and experienced the same error on Proton 6.3-4.

DDrek282 2021-05-25 github

To be clear I commented out the following in /etc/environment, and rebooted:

export STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0

Aalasky17 2021-05-25 github

@Drek282 Could you upload a log with the same channels and the steam runtime libraries, just in case that revealed something new?

DDrek282 2021-05-25 github
DDrek282 2021-05-25 github

Sorry, should have mentioned that I use system versions of libraries. I know I thought of it...

DDrek282 2021-05-25 github

A lot of experience hosting servers and the system versions of those libraries tend to work better in that context as well...

DDrek282 2021-05-25 github

Kinda makes sense due to the fact that in Linux those libraries can have kernel as well as other dependencies.

DDrek282 2021-05-25 github

And even if the dependencies aren't strict, distros will choose versions of libraries that work well with the kernels they support, and vice versa. It's just generally a better idea to use system libraries.

DDrek282 2021-06-01 github

I don't know whether this is a clue to what is going on or not, but it might be.

Half-Life stopped loading on Proton 4.11-13 a few days ago. I downgraded to 3.16-9 and it started loading again. That got me thinking that perhaps something had been installed in the compat folder that was causing the problems. I renamed the compatdata/70 folder and switched back to 6.3-4. I got the hw.dll error again.

I deleted the new compatdata/70 folder and switched back to 4.11-13 and tried it again, and it worked.

No idea what any of this means, but I thought you might want to know. I'm going to try with all the versions up to 6.3-4 and see what happens. I will let you know.

DDrek282 2021-06-01 github

The highest Proton version that doesn't produce the hw.dll error when I start with a fresh compatdata/70 folder is Proton 5.0-10. If I switch to a higher version of Proton and then switch back to a lower version of Proton without deleting/renaming that folder the highest version of Proton that doesn't produce that error is 3.16-9.

Rroidal 2021-08-01 github

Looks like the problem ist caused by the libSDL2 in the steamapps/common/Half-Life directory.

Deleting both, the so-file and the symlink, fixes the problem.

Kkisak-valve maintainer 2024-11-14 github

[HL25] Font rendering doesn't work on linux using Proton when your system has the original Tahoma and Trebuchet MS fonts

Issue transferred from https://github.com/ValveSoftware/halflife/issues/3863.
@PonyRoleplayer posted on 2024-11-14T03:08:44:

I know no one's probably going to bother with this bug, but here it goes.

For some reason, font rendering doesn't work when your system has installed the 'Tahoma' and 'Trebuchet MS' fonts from Windows XP
image

image

image

image

This is Linux Mint, and I was using this version of Proton, and Proton experimental. I tried others, and same results. I was trying to play a Half-Life mod, that's why I'm running Proton.

Anyway, the fix for me was to use any other system font in the TrackerScheme.res file.

Proton versions

Launch options

DLLs