ZDoom / Raze

Build engine port backed by GZDoom tech. Currently supports Duke Nukem 3D, Blood, Shadow Warrior, Redneck Rampage and Powerslave/Exhumed.
690 stars 59 forks source link

[BUG] No midi music on Steam Deck #718

Closed tylerfox3894 closed 1 year ago

tylerfox3894 commented 1 year ago

Raze version

1.5.0

Which game are you running with Raze?

Duke Nukem 3D

What Operating System are you using?

Other

Please describe your specific OS version

SteamOS 3.3.2

Relevant hardware info

steam deck 512gb

Have you checked that no other similar issue already exists?

A clear and concise description of what the bug is.

Running games that do not have CD audio causes no music to play whatsoever. Enabling or Disabling music has no effect.

Steps to reproduce the behaviour.

Explain how to reproduce

  1. launch the linux build of raze 1.5.0 on steam deck
  2. launch duke nukem 3d, or any game without cd audio
  3. note lack of music

Your configuration

No response

Provide a Log

No response

coelckers commented 1 year ago

This sounds like you did not install either libfluidsynth or the sound font that is required for music to play.

tylerfox3894 commented 1 year ago

what is libfluidsynth?

tylerfox3894 commented 1 year ago

i dont mean to sound like an idiot. i downloaded the linux version, put it on my steam deck. copied over the required files from a dosbox duke3d install, a dosbox blood install, and a dosbox duke it out in dc install, all from original CD's

tylerfox3894 commented 1 year ago

i have the raze.sf2 file in the soundfonts folder, if thats what you mean

alexey-lysiuk commented 1 year ago

Only VPX and ZMusic libraries come with Linux release of Raze. Other dependencies (like FluidSynth, OpenAL, mpg123, soundfile) need to be installed manually. Some of them could be already present in your system. I guess, FluidSynth is missing, and your package manager should help you with its installation. If Steam Deck OS is based on Arch Linux, usage of pacman is the most obvious solution.

tylerfox3894 commented 1 year ago

sadly i am brand new to using linux. i dont know how that works

madame-rachelle commented 1 year ago

For now, when running on SteamDeck please use the Windows version of Raze on Proton.

I'll look into increasing compatibility for SteamDeck in the future, by increasing the number of libraries distributed with the package, but I will need to find the time to, at the very least, create a working VM for that.

tylerfox3894 commented 1 year ago

Well that works. I cant pretend to understand why, but thank you

madame-rachelle commented 1 year ago

If Steam Deck OS is based on Arch Linux, usage of pacman is the most obvious solution.

This is not a viable solution for SteamOS. Yes it's based on Arch Linux but it clean-wipes the system (sans the user folders) every update, we cannot recommend this as the way to play on SteamOS unless we include a script that does this automatically.

Instead, it's better to just fatten up the binary distribution with more libraries. Since SteamOS is Intel-based we have little worry about the ARM architecture in this case and can, at least for now, not worry about that.

Another thing we can do is have more stuff statically linked - in fact I think we were considering doing that with GZDoom/Raze on Windows anyhow since FluidSynth is such a pain in the ass.

In fact, I'm thinking maybe we should just update CMake to find a vcpkg install and force vcpkg to compile static triplets for all the necessary libraries and simply distribute a single .exe for each OS with all libraries possible linked in statically. We can still support ARM64 and amd64 with all 3 of the major OS's this way.

mjr4077au commented 1 year ago

ZMusic statically links an internal FluidSynth these days, so this issue should be resolved.