Help getting steam game running: Worms W.M.D (proton)

Got Worms W.M.D on sale this weekend.

The Game is built for i686 and offers a Linux native version, but it seems to be hardcore dependent on ubuntu. Even after adding all the missing libraries to steam via extraPkgs it still crashes and complains about some dbus related stuff. I read on some forum that it can only work with some old version of dbus. But not sure if it’s a good idea or even possible to override dbus for steam.

Since other linux games report that the proton version of the game seems to work fine, I decided to give it a try. But on nixos it doesn’t work.

It starts showing a black screen + game-style cursor and sound. By listening to the sound I assume that the game does make it successfully to the main menu. But all with a black screen and only the cursor visible.

The logs show a lot of wrong ELF class: ELFCLASS64 for gstreamer related files. But i think this is just because the lib64 search path is checked first and afterwards the 32 bit versions are loaded successfully. I know for sure that all those 32 bit libraries actually exist in the proton path.

But one thing which was definitely missing was
I tried to fix it by adding gst to steam and add a missing symlink:

steam.override {
  extraPkgs = pkgs: with pkgs; [
    (gsm.overrideAttrs ( oldAttrs: {
      postInstall = ''
        ln -s $out/lib/

But now it complains about not being 32 bit:
(wine:24117): GStreamer-WARNING **: 06:48:31.962: Failed to load plugin '/home/grmpf/.local/share/Steam/compatibilitytools.d/Proton-5.6-GE-2/dist/lib/gstreamer-1.0/': wrong ELF class: ELFCLASS64

By looking at nixpkgs/chrootenv.nix at bb4958639170709c3f0262169fe0b48fb3b5e1c8 · NixOS/nixpkgs · GitHub ,
i see that everything in extraPackages goes into multiPackages of the buildFHSUserEnv. Therefore 32 bit versions for gst should be available. I couldn’t find them in my nix store though.

I guess somehow buildFHSUserEnv decides to not build gst for i686. What can i do?

I appreciate any suggestions.

1 Like