Interrupt / systemshock

Shockolate - A minimalist and cross platform System Shock source port.
GNU General Public License v3.0
803 stars 62 forks source link

Add fluidsynth-lite to Windows builds #280

Closed markkurikola closed 5 years ago

markkurikola commented 5 years ago

Building on top of https://github.com/Interrupt/systemshock/pull/278, this incorporates the fluidsynth-lite library into the Windows build sequence -- and tries to do so for the generic build_deps.sh, further testing and finetuning is probably needed there. Further, it adds the Windows default soundfont as a downloaded default resource.

As always, a change to build_ext requires an Appveyor cache flush.

Note that I didn't touch travis.yml as I think the whole process of building the distributable there needs some love from a person with a better grasp of the Linux/OSX world. The big question is whether we should have a separate build file for those environments over the general build_deps.sh, and how to handle the library dependencies in general.

markkurikola commented 5 years ago

A few things I forgot to mention...

Q: Why did we change MinGW versions on Appveyor? A: The default version 5.3.0 would not compile Fluidsynth because of a missing MINGW definition leading to insufficient Windows headers.

Q: Why did we change the way SDL sound is initialized? A: Because the method we used before acts as shorthand to giving SDL free reign to change any of the parameters we passed to it, and it did, causing the cutscene/audiolog audio to die with that SDL.dll in use. I'm hoping this one is more faithful to the actual parameters we're giving it.

Q: Where did this soundfont file come from? A: Someone was distributing it as a sf2 conversion of the Windows default MIDI sound bank, and IMO it's lightweight enough and so much of an improvement over the SB16 beeps and bloops that I'm okay with using it as the default. I'm now hosting it on my own shell account, so a better hosting solution should probably eventually be found for whatever soundfont we decide upon.