====== Descent 3 ======
This may be completely obsolete thanks to a [[https://www.patreon.com/posts/project-descent-33611585|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 [[https://github.com/DescentDevelopers/Descent3|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/* /movies/
[Optional] Install the official expansion [[https://ftp.lokigames.twolife.be/pub/updates/descent3/mercenary-1.0.run|Descent 3: Mercenary]]
# mount /dev/cdrom /media/cdrom
$ mkdir -p ~/.loki/installed
$ cat > ~/.loki/installed/descent3.xml << EOF
EOF
$ linux32 bash mercenary-1.0.run
Apply the first [[https://ftp.lokigames.twolife.be/pub/updates/descent3/descent3-1.4.0a-x86.run|patch]] :
$ linux32 bash descent3-1.4.0a-x86.run
Apply the last released [[https://ftp.lokigames.twolife.be/pub/updates/descent3/descent3-1.4.0b-x86.run|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 [[https://github.com/twolife/lokishim|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/loki_compat_libs-1.5.tar.bz2|https://www.improbability.net/loki/]]
LD_PRELOAD="./libstdc++-3-libc6.2-2-2.10.0.so" ./descent3.dynamic