matthewearl / JoeQuake-1

Quake engine mod targeted for speedrunning
0 stars 1 forks source link

Can't get BGM to work, at all, on Steam Deck #4

Open Star-X555 opened 2 months ago

Star-X555 commented 2 months ago

I compiled the binary in a debian docker on my desktop, and copied over libjpg into a .lib folder in the Quake install, which got almost everything working perfectly on the Steam Deck with the help of a launcher shell script to point the binary to the required additional libs.

Everything except the music, that is. I tried recompiling with all of the Fmod Studio libraries and includes placed in the debian docker instance, I tried moving over all of the Fmod Studio libraries over to the deck's .lib folder, and even tried copying over libogg in case that was the issue; nothing would make the BGM play properly.

In the console ingame it mentions that the Fmod Module was not found. I'm assuming I need said module for it to work. Problem is, literally nowhere on the net does it say what the Quake Fmod Module is called, or where to get it for Linux. What am I missing?

Star-X555 commented 2 months ago

Also please don't suggest using CD Audio; the Deck cannot properly mount audio CD images through .bin/.cue files in a way that the OS can actually access, short of breaking the immutable file system, which I really don't want to do.

Star-X555 commented 2 months ago

OK, so having done some looking at the source code, it seems the Fmod it's expecting is bloody ancient, so ancient in fact that it doesn't exist on the net any more thanks to the group that makes Fmod having purged their old archives entirely, and no one else, not even the Zdoom site, having that exact build.

A newer build IS available on the Zdoom site that still fits with the naming format of the required build, and so I tried that, both as a drop-in library with symlink and as a library included at compile time. Neither actually succeeded in removing the error message or fixing the music.

May I recommend purging Fmod entirely and figuring out some other way of playing BGM? It's a propriatary library that's a nightmare to deal with on Linux due to there being 3 separate variants, each totally incompatible with the others, and with the older variants being insanely difficult to find, and due to said propriatary status you can't even legally include the Linux DLLs with any repositories despite some apps being totally resistant to functioning properly with anything but the exact version it requires (which, in the case of libfmod-3.73.so, the one Joequake requires, means Fmod BGM will NEVER work, ever, on Linux, as 3.73 has been wiped from the net entirely, I can't find a single copy of it anywhere).

I know, kinda a big ask, but the lack of BGM on the Linux build is really hurting my enjoyment of the game, especially when running the Windows version in Wine has 100% functional music, albeit with garbage battery life on Steam Deck (I blame that on having to use Flatpak Lutris, as stuff run in Proton tends to have much better battery life than running through the insane security checks of Flatpak).