Since modifying binary directly makes game unplayable, this is accomplished via replacing standard sound system functions in run-time by forcing dynamic linker to load an additional dynamic library to the process (so-called LD_PRELOAD trick).

support

et-sdl-sound currently supports following binaries:

CRC32

description

0x6ab49f82

ET 2.60b (et.x86)

0x3b18a889

ET 2.60 (et.x86)

0x3d59a703

ET 2.56 (et.x86)

0x21e60afb

ET 2.55 (et.x86)

0xc6aebd79

Wolf 1.41 (wolfsp.x86)

0xd5676d8f

Wolf 1.41-MP (wolf.x86)

0xdc49bc09

Q3 1.31 (quake3.x86)

0x10f74d19

Q3 1.32 (quake3.x86)

0xe5782e44

Q3 1.32b (quake3.x86)

0x2f3661cf

Q3 1.32c (quake3.x86)

install

et-sdl-sound script contains everything you need to launch Enemy Territory with SDL audio support. The fastest way to install the script is to execute the following command line:

r29: Fix undefined PATH_MAX with GCC 4.3.r28: Rename functions in launcher script for better compability.r27: Redirect locate stderr into /dev/null instead of using -q.r26: Fail gracefully when SDL_AudioDriverName() gives NULL and introduce sdlsamplesmult cvar.r25: Fixed possible readlink() problem.r24: Removed sdldevsamps and sdlmixsamps cvars.r23: Quake3 1.31, 1.32, 1.32b & 1.32c support and separate launcher script for every supported game (et-, wolf-, wolfsp- and quake3-sdl-sound).r22: RTCW 1.41 Multiplayer (wolf.x86) support.r21: Use "find" to locate Enemy Territory or libSDL.so if other methods fail.r20: Another compability fix in the script.r19: Compability fix: base64 is not needed any more.r18: New self-containing launcher script! No more complex scripts or environment variables, just ./et-sdl-sound and go!r17: More cleanups, some additional checks and information at startup.r16: Just some cleanups, f.ex. no more detourFunction() and minor Makefile compability fix.r15: SDL library is now loaded run-time using dlopen() making the static version obsolete.r14: Some code cleanup and stub direct ALSA support.r13: SNDDMA_Submit(), SNDDMA_BeginPainting() and SNDDMA_Shutdown() support for ET 2.56.r12: Partial support for ET 2.56.r11: Fixed SNDDMA_Submit() and SNDMA_BeginPainting() for ET 2.55.r10: The version is now determined by calculating CRC32 of /proc/self/exe. Fixes segfault when loading library to any other application than ET or RTCW.r9: Added unified support for ET 2.60 and ET 2.55.