space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.7k stars 3.38k forks source link

MIDI broken on linux #32980

Open waylon531 opened 1 week ago

waylon531 commented 1 week ago

Description

Recently ss14 midi instruments have broke on linux. I'm running the steam release and now I get an error when opening the instrument UI, and this error in the console:

/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/bin/loader/fluidsynth.so: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/dotnet/shared/Microsoft.NETCore.App/8.0.0/fluidsynth.so: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/bin/loader/libfluidsynth.so: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/dotnet/shared/Microsoft.NETCore.App/8.0.0/libfluidsynth.so: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/bin/loader/fluidsynth: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/dotnet/shared/Microsoft.NETCore.App/8.0.0/fluidsynth: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/bin/loader/libfluidsynth: cannot open shared object file: No such file or directory
/games/SteamLibrary/steamapps/common/Space Station 14 Playtest/dotnet/shared/Microsoft.NETCore.App/8.0.0/libfluidsynth: cannot open shared object file: No such file or directory

Is it a packaging problem with the steam release? Could it be a weird local version conflict and I have the wrong version of fluidsynth or something? Reproduction Open instrument UI or be near an instrument and the message appears.

Additional context I'm running arch linux if that helps at all

deltanedas commented 1 week ago

install fluidsynth2 (or symlinking fluidsynth3 works fine it turns out)

waylon531 commented 1 week ago

I do have fluidsynth installed, and instruments were working fine until very recently. I just checked on master, and building everything myself makes instruments work fine, it seems like a problem with the steam release somehow

waylon531 commented 1 week ago

Symlinking my fluidsynth libraries everywhere doesn't seem to fix it for whatever reason, I still get the same error message. My system libraries are for sure in the search path for libraries too. I tried to figure out what was going wrong with LD_DEBUG and I can confirm that /lib is in the search path and that libfluidsynth.so exists there.

The downloadable zip from the ss14 website works! Gonna use that as a workaround for now. I kinda expected steam-native to work and for it to be a weird steam runtime conflict but it's borked too

Coolsurf6 commented 1 week ago

I am also having this issue. I had it working once after it broke before, but still unable to get anything out of it. I have reinstalled fluidsynth before and still no luck. image

deltanedas commented 1 week ago

you have to make a symlink in bin/loader/ because it doesnt try to load from a standard directory /usr/lib for WHATEVER REASON

Coolsurf6 commented 1 week ago

I have, I found the libfluidsynth.so file and symlinked it, even tried putting a copy of the file in there. Still gives me that error. It also says someting about /dotnet as well but I have no idea. image

Can you contact me on Discord about this?

Coolsurf6 commented 1 week ago

This is the version I am using image

deltanedas commented 1 week ago

i use 3.2.3 and it works, probably just major version difference

Coolsurf6 commented 1 week ago

i use 3.2.3 and it works, probably just major version difference

How did you get 3.2.3? I can't find this version on AUR or the normal Repo?

image

deltanedas commented 1 week ago

oh its much simpler its looking for bin/loader/fluidsynth.so not libfluidsynth.so that any distro would package (so mv {lib,}fluidsynth.so)

Coolsurf6 commented 1 week ago

Now it is giving me this image

deltanedas commented 1 week ago

thats just missing dependency

Coolsurf6 commented 1 week ago

I have it already installed, can find the file it asks for in /lib anyway.

Coolsurf6 commented 1 week ago

Wait yeah, I can run midis on my local host but they give me a bunch of errors. Doesn't work while running through steam.

image

waylon531 commented 1 week ago

oh its much simpler its looking for bin/loader/fluidsynth.so not libfluidsynth.so that any distro would package (so mv {lib,}fluidsynth.so)

I already tried this, no dice. I've tried both symlinking and copying those into both of the directories the client asks and it still doesn't work.

Here's something that works, running the binary from steam directly by setting the launch options: /games/SteamLibrary/steamapps/common/Space\ Station\ 14\ Playtest/SS14.Launcher # %command%

Using this as the launch option for the game lets it start and use fluidsynth fine. It's for sure a steam runtime issue. The command steam is running is /home/uelen/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- /home/uelen/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1482520 -- /games/SteamLibrary/steamapps/common/SteamLinuxRuntime_soldier/_v2-entry-point --verb=waitforexitandrun -- /games/SteamLibrary/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2 -- /games/SteamLibrary/steamapps/common/Space Station 14 Playtest/SS14.Launcher but that gives zero information about libs or what part of the runtime is breaking it. Not sure how to debug this more ...

waylon531 commented 4 days ago

One more workaround, this time forcing specific system libraries to be used instead of steam's: LD_PRELOAD="/usr/lib/libportaudio.so /usr/lib/libfluidsynth.so /usr/lib/libinstpatch-1.0.so.2 /usr/lib/libreadline.so.8 /usr/lib/libglib-2.0.so.0 /usr/lib/libpcre2-8.so.0" %command%