mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-18 22:06:04 +01:00
c3b21dbaa7
Signed-off-by: B. Watson <yalhcru@gmail.com>
90 lines
3.6 KiB
Text
90 lines
3.6 KiB
Text
The most important things to understand about the music in Shadow Warrior:
|
|
|
|
The demo/shareware version of the game uses MIDI. There are actually
|
|
.MID files stored within sw.grp.
|
|
|
|
The full/registered version and/or expansion pack uses CD audio
|
|
tracks. They *can't* use MIDI: there's no MIDI data inside its .grp
|
|
files at all.
|
|
|
|
So there are 2 completely separate procedures for getting the music
|
|
to work, depending on whether you're playing the full/expansion or
|
|
demo version.
|
|
|
|
Full (Registered) Version, Wanton Destruction expansion
|
|
-------------------------------------------------------
|
|
|
|
For these versions, jfsw doesn't actually support CD audio from a
|
|
physical CD [*]. It does, however, support .ogg files made from the CD.
|
|
You can use CD ripping software to rip these from the original CD,
|
|
or download them (for free, account creation required) from:
|
|
|
|
https://www.gog.com/game/shadow_warrior_complete
|
|
|
|
...or download it from Steam (also for free). The same files are available
|
|
there, under the name "Shadow Warrior Classic".
|
|
|
|
The .ogg files should be named "track02.ogg" through "track14.ogg", all
|
|
lowercase (there is NO "track01.ogg"!), and placed in either ~/.jfsw/
|
|
or /usr/share/games/jfsw/
|
|
|
|
Run the game, and the music should play. If not, use the in-game menus
|
|
(Options, Sound Menu) to enable the music and turn up the volume.
|
|
|
|
If you followed the steps below to get the demo music to play, you'll
|
|
have to re-edit ~/.jfsw/sw.cfg and change the MusicDevice back to 0.
|
|
|
|
If you're never going to play the demo version, there's no need to build
|
|
jfsw with fluidsynth support (although, it won't hurt anything if you do).
|
|
|
|
Note: When using the .ogg soundtrack, under some conditions, it seems
|
|
the background music stops playing after loading a saved game. If this
|
|
happens to you, toggle the music off & back on (under Options, Sound
|
|
Menu), which should start it playing again.
|
|
|
|
[*] There is some code in jfaudiolib that's supposed to play CD audio
|
|
but it's (a) SDL-1.2 only, and (b) broken.
|
|
|
|
Demo (Shareware) Version
|
|
------------------------
|
|
|
|
For the shareware version, the MIDI data is already present inside the
|
|
sw.grp file. To actually hear it, you'll have to:
|
|
|
|
1. Build and install fluidsynth. Doesn't matter whether or not
|
|
optional jack and/or lash are included (jfsw doesn't use them though).
|
|
|
|
2. Build and install fluid-soundfont.
|
|
|
|
3. Build and install jfsw. When installing, the description should say
|
|
the package was built with fluidsynth.
|
|
|
|
4. Run the game once, and exit it normally, to get it to create a config
|
|
file. You should now have a ~/.jfsw/sw.cfg file.
|
|
|
|
5. Edit ~/.jfsw/sw.cfg, find the line that says "MusicDevice = 0", and
|
|
change the 0 to a 6. This enables fluidsynth.
|
|
|
|
6. Run the game again. Make sure the music is enabled and the music
|
|
volume is turned up (under Options, Sound Menu).
|
|
|
|
Unfortunately, the edited config file won't work with the full version.
|
|
You'll have to change MusicDevice back to 0 (meaning 'autodetect') to get
|
|
the .ogg tracks to play. Other possible values are 1 (SDL) and 7 (ALSA).
|
|
|
|
There's no direct way to change which soundfont jfsw uses. What it does is
|
|
look in /usr/share/sounds/sf2/ and pick the first soundfont it finds, in
|
|
sorted order. Basically it does the C++ equivalent of:
|
|
|
|
$ ls /usr/share/sounds/sf2/*.sf2 | head -1
|
|
|
|
If the only sound fonts in that directory are the ones installed by
|
|
the fluid-soundfont package, it will choose "FluidR3_GM.sf2", which is
|
|
reasonable and sounds good.
|
|
|
|
If you want to use a different soundfont, try something like this:
|
|
|
|
# cd /usr/share/sounds/sf2/
|
|
# ln -s MySoundFont.sf2 000-jfsw.sf2
|
|
|
|
Check with the ls command above, to make sure 000-jfsw.sf2 sorts first.
|