Ceci est une ancienne révision du document !
This may be completely obsolete thanks to a fresh new port by Ryan C. Gordon ! A recent native SDL2 port of the game is now available on Steam for 9.99$
Descent 3
Install & patch the game
To install the required 32 bits libraries :
# apt-get install libsmpeg0:i386
To install the game, mount your CD & run the installer with linux32 from the util-linux package :
# mount /dev/cdrom /media/cdrom $ linux32 bash /media/cdrom/setup.sh # umount /media/cdrom # eject
Copy the movies files from CD2:
# mount /dev/cdrom /media/cdrom $ cp /media/cdrom/movies/* <installation-directory>/movies/
[Optional] Install the official expansion Descent 3: Mercenary
# mount /dev/cdrom /media/cdrom
$ mkdir -p ~/.loki/installed
$ cat > ~/.loki/installed/descent3.xml << EOF
<?xml version="1.0"?>
<product name="descent3" desc="Descent 3" xmlversion="1.0" root="/home/twolife/descent3" update_url="localhost">
<component name="Default" version="1.4" default="yes">
<option name="Base Install">
<file md5="a4cfff7ba298023c1114e526241ea295" mode="0644">d3-linux.hog</file>
<file md5="62bf8884ac14cc1b16377479f2fdbfb7" mode="0755">descent3</file>
</option>
</component>
</product>
EOF
$ linux32 bash mercenary-1.0.run
Apply the first patch :
$ linux32 bash descent3-1.4.0a-x86.run
Apply the last released patch :
$ linux32 bash descent3-1.4.0b-x86.run
Game crash
./descent3.dynamic greets you with “SIGNAL 11 caught, aborting”
This is due to a change in libgcc that broke some binaries that where compiled with gcc 2.95 in an unusual way (like compiling C++ code with gcc instead of g++).
Option a
You can use a little shim that add back functions required by a bunch of old games like this one.
LD_PRELOAD="/path/to/lokishim.so" ./descent3.dynamic
Option b
The missing function can be found in a very old libstdc++, and you can use libstdc++-3-libc6.2-2-2.10.0.so from https://www.improbability.net/loki/
LD_PRELOAD="./libstdc++-3-libc6.2-2-2.10.0.so" ./descent3.dynamic