D2X-XL Installation Guide

Linux


Prerequisites

To be able to extract the various data archives you will need, install 7zip v9 (v4 won't do it).

To build all required libraries and the program, you need to install gcc/g++ and the OpenMotif, Mesa, SDL, SDL_mixer, SDL_image, SDL_net, GLEW, curl and DirectFB packages plus their devel packages. For debug builds you will also need the MesaGLw-devel package.

 

Installing The Game Data

Descent game data consists of game data that is common for all users (textures, models, sounds, missions, mods), and user specific data (player profile, game configuration, save games, screen shots, demo recordings). By default, the common data is expected to reside in '/usr/local/games/d2x-xl' (you can use a different folder and announce it to D2X-XL by the '-userdir' command line switch). The user specific data should go to the sub directory '.d2x-xl' of the home folder. All data provided by D2X-XL comes with the proper folders already contained in the archives.

D2X-XL does not provide the original game data files. You will need to purchase and install them yourself if you don't own them (buy them for little money at Good Old Games. You will need a program like DOSBOX to run the original Descent installer.

D2X-XL uses some additional game data contained in an archive with the name d2x-xl-data-<version>.7z (e.g. d2x-xl-data-1.14.95.7z). The folders 'config' and 'profiles' therein go to '~/.d2x-xl'. Extract all other folders to the common data folder (e.g. '/usr/local/games/d2x-xl'). You can find all additional data files (textures, models, sounds, missions, mods) on the D2X-XL website. Extract these to the common data folder.

 

Compiling and installing SDL and SDL_mixer

It is highly recommended to use the SDL and SDL_mixer versions from www.descent2.de, as they contain bug fixes and enhancements required for flawless operation of d2x-xl. If you don't, program crashes may be the result.

  • Download and install the SDL and SDL_mixer source code (e.g. to /home/<username>/SDL and /home/<username>/SDL_mixer).
  • Compile and install SDL and SDL_mixer:
    • cd to the proper folder
    • sh ./autogen.sh
    • chmod 0755 ./configure
    • .configure
    • make
    • sudo make install

The D2X-XL versions of the SDL and SDL_mixer libraries should now have been installed in /usr/local/lib. Depending on your system architecture, they may need to be copied to /usr/lib or /usr/lib64.


Compiling and installing D2X-XL

  • cd to the d2x-xl source folder
  • sh ./autogen.sh
  • chmod 0755 ./configure
  • ./configure '--enable-release=yes --enable-debug=no
  • make
  • cp ./d2x-xl /usr/local/games/d2x-xl

Enabling Midi Playback

  • Download the GUS patches linked to at the SDL_mixer page and extract them to '/usr/share'. Make sure only to extract the files stored in 'timidity/instruments' - do not overwrite any '/usr/share/timidity/timidity.cfg' already existing!
  • Extract 'timidity.cfg' to a temporary location and copy it to '/usr/share/timidity/instruments.cfg'
  • Open '/usr/share/timidity/timidity.cfg' with a text editor and put a '#' at the beginning of all lines starting with 'dir' or 'source'.
  • If this file doesn't exist yet, create an empty new one instead.
  • Add a line containing 'dir /usr/share/timidity/instruments' and a line containting 'source instruments.cfg' to the file and save it.
  • Alternatively, you can download a free patch set from freepats. Put the patches into '/usr/share/timidity' and edit '/usr/share/timidity/timidity.cfg' as described above, but use the folder and cfg file names from the freepats patch distribution.

Theoretically, this should enable midi playback.


Missing OpenGL related symbols

If you run into linker errors about missing OpenGL related symbols, your system probably doesn't have the latest OpenGL libraries installed. You should therefore install the latest Mesa-devel package. If that doesn't help, you can proceed as follows. For GL_FRAMEBUFFER_EXT, you can try to edit arch/ogl/fbuffer.c and fbuffer.h and enable the explicit loading of function pointers to the required functions. Just comment out the lines containing '#ifdef _WIN32' and those containing the corresponding '#endif'. If that doesn't help, open include/ogl_init.h and change '#define RENDER2TEXTURE 2' to '#define RENDER2TEXTURE 0'. This will still enable camera views in D2X-XL, although at the cost of quite a performance hit. You can completely disable camera usage in the render options menu of D2X-XL.

For glDrawRangeArrays, edit ogl_defs.c and ogl_defs.h and make it non-Windows specific by removing '#ifdef WIN32' ... '#endif' surrounding it.


News

A new D2X-XL update fixing broken screen resolution persistence is available

There is yet another D2X-XL update is available (the new Pumo Mines broke a few things ...)

Believe it or not: There's a new D2X-XL version online!

Uploaded updated D2X-XL and library source code that compiles with Visual Studio 19

After a really long time, another new DLE version is available

A new DLE version is available (hear, hear!) :D

A new Max OS X version of D2X-XL is available!

D2X-XL now offers a cartoon style render mode!

New D2X-XL and DLE versions are available

Blarget has got his own area in the level spotlight

New D2X-XL and DLE versions are available

A couple of levels have been added to the level spotlight

Hooray! We're finally having a new Mac OS X version of D2X-XL!

D2X-XL now features an observer mode for multiplayer games

A new D2X-XL version with improved multiplayer synchronization is available

A new D2X-XL version fixing out of sync problems in multiplayer games is available

A new D2X-XL version with many multiplayer bug fixes is available

Added high quality (ogg) Descent 1 and 2 music to the downloads area

A new D2X-XL version with important bug fixes is available

D2X-XL compiles and runs on Linux again!

Descent 1 and 2 high res textures are now available as complete downloads

A new DLE version with a ton of bug fixes and improvements is online

A new D2X-XL version is online

A new D2X-XL version with a much needed bug fix is online

A new DLE version is online

Published another DLE version with more bug fixes and improvements by Sirius

Published a new D2X-XL version

Published a new DLE version with tons of bug fixes and improvements by Sirius

D2X-XL now supports Oculus Rift 3D headsets!

Updated DLE and D2X-XL to support new level features requested by Pumo

Added an article about DLE's new tunnel generator to the worklog

DLE's new tunnel generator is finished

Added a new article to the worklog

Published a new DLE version

Added a new article to the worklog

Added two new articles to the worklog

D2X-XL and DLE-XP now support triangular segment sides!

DLE-XP has an OpenGL render and 1st person view!

New DLE-XP version available

Wrote a new worklog article

Check out DarkFlameWolf's level spotlight section!

New DLE-XP and D2X-XL versions are available

A new DLE-XP version is available

Added a worklog article about the way point feature

Added way point support to DLE-XP and D2X-XL

Posted a bunch of new screenshots

Posted a bunch of new screenshots

A New version of DLE-XP is available

New OS X version of D2X-XL is available!

Added article about lightmaps to worklog.

New article and video added to worklog.