Descent 3
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$ the release of the game source code under GPL-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