Skip to content

Instantly share code, notes, and snippets.

@sxiii
Last active April 14, 2024 14:21
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save sxiii/9d9b8435fd343b2024b16b8cbe86a69e to your computer and use it in GitHub Desktop.
Save sxiii/9d9b8435fd343b2024b16b8cbe86a69e to your computer and use it in GitHub Desktop.
How to fix Worms W.M.D. launch on ArchLinux, Manjaro, Garuda, Artix Linux & Linux Mint

Game information Worms W.M.D.

Distribution name and version where applicable Manjaro 20.1.1 (Mikah)

Problem description Worms doesn't launch out of the box without two small tweaks. When launching Worms W.M.D. in Manjaro and Archlinux, you need to do two things:

  1. Install this apps: sudo pacman -S libcurl-gnutls libidn11 qt5-base qt5-xcb-private-headers(If you are on any other distro then Arch, you can skip this step. At least this is reported to be OK to skip for Linux Mint)
  2. Edit file "Run.sh" in Worms W.M.D. directory, usually it's located here: ~/.steam/steam/steamapps/common/WormsWMD/Run.sh, and replace it's content with this:
#!/bin/bash
export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export LD_PRELOAD="$(
	printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
		~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
		~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Finally, you can launch Worms WMD either through Steam (by pressing play and choosing "Run with Run.sh", or via CLI by just ./Run.sh.

Does this issue reproduce with native Steam Yes, the issue seems like an upstream Steam Linux WMD distribution bug.

@mhkdepauw
Copy link

Using the most recent iteration of the Run.sh, I was getting a very brief blank window. Running from terminal I was getting a lot of libGL errors, my solution that worked for me:

If you are receiving MESA-LOADER errors about unable to load driver "/usr/lib/dri/iris_dri.so" or similar, to fix this I had to create a symbolic link even though it was searching the correct paths including "/usr/lib/x86_64-linux-gnu/dri/"

sudo ln -s /usr/lib/x86_64-linux-gnu/dri/iris_dri.so /usr/lib/dri/

I then had to copy a more recent version of the C++ library file libstdc++.so.6.0.30 from /usr/lib/x86_64-linux-gnu, and replace the libstdc++.so.6 with in the WormsWMD/lib folder.

I'm running Linux Mint Cinnamon 21.2 with integrated Intel graphics.

Replacing the C++ library and the run.sh worked for me on ubuntu 20.04 with amd radeon integrated graphics. Thank you!

@qlyoung
Copy link

qlyoung commented Jan 29, 2024

As of latest steam runtime and worms version, this is the working script:

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime

export LD_PRELOAD="$(
        printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

It's the same as the previous one, but libdbus no longer needs to be overridden (at least on Arch)

@bazzawill
Copy link

So I just picked this up as it was on sale I did notice the .sh file and was like yay native linux game however when it did not launch and with an impatient 6yo I just enabled proton and it just worked including controller.

@KNejad
Copy link

KNejad commented Apr 14, 2024

@qlyoung your solution didn't work for me but the solution from @sxiii above still works for me on Arch.

Though I do see some dbus related exceptions in the log:

process 164314: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment