Angband with sound support for Linux

Add support to Angband v3.0.5 for sound effects under Linux with this patch. NB: requires SDL_mixer library.


Angband v3.0.5 - Sound support via SDL_mixer
============================================

		*** SPECIAL NOTICE ***

This version of the patch is for application against Craig Oliver's
'angband-3.0.5-soundfx' version which you can find at:
http://www.chambrook.org/angband/
Do not apply this patch against the Vanilla angband-3.0.5 tarball.
You can find a separate patch for Vanilla angband on my homepage at
http://people.smartchat.net.au/~caboo/angband/index.html
		**********************
		
This patch adds support to Angband v3.0.5 for playing sound effects
under Linux (it should probably work under any *nix system where 
you can compile angband, as long as you have a copy of SDL_mixer 
installed, but I've only tested it on Mandrake Linux 8.x/9.x/10.x
and a Debian 3.0 stable / testing hybrid running on a DEC Alpha).

NB: You will likely need autoconf & automake installed to apply this 
    patch.

INSTALLATION
------------
To install this patch:

1) Extract the angband-3.0.5-soundfx.zip archive into some directory
2) Extract the patch file (angband-3.0.5-soundfx-sdl_sound_patch.tgz)
   into the same directory.  This should have unpacked the following
   files:
	angband-3.0.5-soundfx/README.SDL (this file!)
	angband-3.0.5-soundfx/sdl_sound.patch
	angband-3.0.5-soundfx/src/sdl_sound.h
	angband-3.0.5-soundfx/src/sdl_sound.c
3) Apply the patch:
	cd angband-3.0.5-soundfx
	patch -p1 < sdl_sound.patch
4) Run ./configure as usual. NB: You may need to make the configure
   script executable first - my copy was rw only.  If so, then just:
   	chmod 755 ./configure 
   and you should be set.  My usual incantation for configure is:
	./configure --with-setgid=games \
		    --with-libpath=/usr/games/lib/angband \
		    --bindir=/usr/games \
		    --with-x   	
   for system-wide installation.
5) Run make - this should detect the changes in configure.in and
   force the configure script to be rebuild & re-run.

   
The new configure script has two additional options:
	--disable-sdl_sound
	--enable-sound_debug

Sound support is built by default if configure detects the SDL_mixer
library.  You can turn this off by using the --disable-sdl_sound
option.  Using the --enable-sound_debug option will cause a bunch of
trace messages to be displayed during the game (you shouldn't normally
need this).

SETUP
-----
Sound files are not included in either the source archive, nor my
patch file.  Craig has some suggestions for obtaining sounds on his
webpage at http://www.chambrook.org/angband/.

PLAYING
-------
When angband is recompiled with this patch, you can use the -v option 
to enable sound effects during the game:

	angband -g -v -mgcu
	angband -g -v -mx11
	angband -g -v -mxaw
	angband -g -v -mxpj

I have not added sound support to the Gtk version (mostly because I never
use it).  You can also combine with the bigtile options, eg:

	angband -g -v -mx11 -- -n 6 -b -g 

By default, all sound files are loaded from disk and cached in memory 
when the game starts up. Be warned, this does slow down the game load time
(especially if you are also using graphics, and more especially in bigtile 
mode). You can turn this behaviour off by using a '-c' option (ie. turn off
sound file caching):

	angband -g -v -mx11 -- -n 6 -b -g -c

Note the position of -c, it must be included as a display-module specific
option.  When you use -c, the sound files are loaded from disk and played
as required.  This may cause some latency between game action and the sound
to be played. If you're using a "reasonable" machine, this shouldn't be much
of an issue.

WISHLIST / TODO
---------------
- setup multiple playback channels to reduce possibility of sounds "backing 
  up" (I've not yet had this happen, but it's conceivable); 
  [Update: recent experimentation seems to show that this is a non-issue. No
   matter how many sound events occur, the mixer keeps on happily mixing them
   - no lag in sound vs. action has been noted].
- support playing of background music (SDL_mixer supports WAVE, AIFF, RIFF, 
  OGG, and VOC files);
- increase the number of sound events (the now-defunct Tk*band versions had
  support for about 200 individual sound events).

BUGS
----
None that I know of, so if you find anything, please let me know asap.  I
originally wrote this patch in mid-2002 and have been using it ever since,
just never got around to releasing it!


Aside from that, enjoy!

Brendon Oliver, 1 December 2004.
<brendon.oliver at gmail dot com>