Skip to content

Instantly share code, notes, and snippets.

@sxiii
Last active December 26, 2024 13:55
Show Gist options
  • 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.

@robstarmcdonald
Copy link

Here's the new version that works for me. Not sure that it's better then the "Proton" version though, as it seems Team17 is not very eager to update the Linux version. But you can test it out :)

#!/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/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 \
                "$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

Hope it helps @ivdok @psmgeelen :)

It did not work for me.

@sxiii
Copy link
Author

sxiii commented May 15, 2024

I'm guessing this is very OS-dependent (library-dependent), so then we could either use a proton version (simple path) or swap OS/libraries with older ones (if our OS doesn't work/too new; harder path). Feel free to share your additions if you find out which way it works for you. Thank you all for your contributions!

@robstarmcdonald
Copy link

robstarmcdonald commented May 17, 2024

I'm guessing this is very OS-dependent (library-dependent), so then we could either use a proton version (simple path) or swap OS/libraries with older ones (if our OS doesn't work/too new; harder path). Feel free to share your additions if you find out which way it works for you. Thank you all for your contributions!

Look here then https://steamcommunity.com/app/327030/discussions/0/4353369676737256686/

@ayorgo
Copy link

ayorgo commented Jul 12, 2024

None of the above scripts worked for me as the game complained about other libraries which I tried to add manually to Run.sh until it got to libwavpack.so.1 which was nowhere to be found on my machine. Ended up opting for Proton Experimental layer under the Compatibility tab in the game's settings in Steam Library and it worked like a charm.

@qlyoung
Copy link

qlyoung commented Jul 12, 2024

I also kept running into issues on every update and have switched to using Proton, which works well.

@robstarmcdonald
Copy link

I also kept running into issues on every update and have switched to using Proton, which works well.

Have you follow the step by steps in here https://steamcommunity.com/app/327030/discussions/0/4353369676737256686/

It's optional for Proton-GE users

@maccyber
Copy link

maccyber commented Oct 27, 2024

To resolve the missing dependencies, install the following libraries:

  • For libwavpack.so.1, install the wavpack package.
  • For libbsd.so.0, you'll need the libbsd package.
pacman -S wavpack libbsd

Or choose "Proton Experimental" in "Settings" -> "Properties..." -> "Compatibility"

@Ewoodss
Copy link

Ewoodss commented Nov 23, 2024

None of the above scripts worked for me as the game complained about other libraries which I tried to add manually to Run.sh until it got to libwavpack.so.1 which was nowhere to be found on my machine. Ended up opting for Proton Experimental layer under the Compatibility tab in the game's settings in Steam Library and it worked like a charm.

I also had this issue i ended up download libwavpack from my package manager and copying the so files into the lib folder inside WormsWMD, After this i got the same error for liborc and did the same thing again, by installing and copying it.

@Tairetsu
Copy link

Tairetsu commented Dec 4, 2024

After manually installing libidn11 all of these scripts posted in this thread will work for me provided I run "run.sh" from the game folder. But none will work if I do it from the Steam client, whether the normal one or the ".sh" option in the launcher...

@Ewoodss
Copy link

Ewoodss commented Dec 26, 2024

this run.sh works if the game isn't installed in the default dir. this is for native not flatpak.

#!/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
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_PRELOAD="$(
        printf "%s " "$SCRIPT_DIR"/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 \
                "$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

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