Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Add missing background sounds (Support SoundFonts) #753
From the Forum:
I've had a look, and the only mention of this I've found is here, where it's called the "AWE32 SFX". There's not much info about this out there either. Has this feature been forgotten? The only place covering this in any detail is Creative's site at the time:
Basically, there are 3 .sbk files in the sound directory; bullfrog.sbk, atmos1.sbk, and atmos2.sbk. These files are what are known as SoundFont banks. You can probably guess what these do by looking at the name; they're "fonts", but for sounds. They're normally used for musical instruments in sample-based MIDI, but a few games in the late 90's used them for sound effects, the most notable of which (as far as I can gather) was Dungeon Keeper. This is the purpose of the music.dat file; there is a MIDI file (XMI format) embedded there. If the game detects a Sound Blaster AWE32 (the AWE64 also counts), it loads one of these SoundFont banks and plays this MIDI file, providing extra atmospheric sound effects (screaming, chains rattling, doors creaking etc) in the background. These files do absolutely nothing if you do not have an AWE32 or AWE64. This is why, in the DOS version of the original game, the AWE32/64 is the only MIDI driver available. The cool thing about this feature is that you can use any SoundFont bank for sound effects. In fact, Creative had some sample ones for download (see the above link). This is what the -usersfont switch is for; it tells the game to use the user-loaded SoundFont rather than the stock ones. This switch (and the "No AWE32/64 banks" option which activates it) is rather pointless in KeeperFX even if you do have an AWE32/64; as KeeperFX seems to require XP or higher (unless I'm mistaken?), as far as I can gather XP only offers basic functionality with those cards, so this feature won't work anyway.
Unfortunately, this feature only works if you have a Sound Blaster AWE32 or AWE64; it doesn't even work with later Sound Blaster cards that also support SoundFonts. I do have a workaround that gets them working (sort of) on my XP machine with a Sound Blaster X-FI, but it's a bit of hassle and doesn't work as well as it does "natively" on the AWE cards. In fact, this feature is the only reason I play KeeperFX on my XP machine. Is there any way of getting this working properly on newer machines? Or perhaps it could be rewritten so that a SoundFont capable device is not needed. After all, SoundFonts are built from waveform sounds like the rest of the game's sound effects. It could add a whole "new" level of customisation to the game.