Download

D2X-XL Installation Guide

Introduction

Requirements

You will need the full Descent 2 game data and a graphics card that supports Vulkan or DirectX 12 in order to run D2X-XL.

What You Get

D2X-XL is delivered as a single archive that contains everything it needs besides the original game data: the program, its own data, high resolution textures, models and sounds, and the level editor DLE. There is no installer anymore, and there are no separate texture, model or sound packages to install.

Caveats

In order to get access to all features of D2X-XL and ensure flawless operation of the program, using the folder structure that comes with the archive is mandatory. It is important not to have duplicate files in different folders.

Descent Installation

Installing D2X-XL

  • Extract the D2X-XL archive over your existing Descent 2 installation.
  • Copy the Descent 1 and Descent 2 game data to the subfolder 'data'. Or simply start D2X-XL: it moves the Descent 2 game data there by itself, and the Descent 1 game data as well if they are in the same folder.

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.

The source code of D2X-XL and DLE is available in the D2X-XL Repository.

Microsoft Windows

There is no Windows installer anymore. D2X-XL comes as a 7z archive that contains the program, the level editor DLE and all the data they need.

For quick updates, the D2X-XL executable and a 7z archive with DLE are also available separately on the downloads page.

Trouble Shooting

If D2X-XL does not start, please turn to the D2X-XL forum or the D2X-XL issue tracker on GitHub for help.

Linux

D2X-XL for Linux is delivered as a tar.gz archive that contains the executable, the libraries it needs and the data. There is nothing to build anymore.

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 '-datadir' command line switch). The user specific data goes to the sub directory 'd2x-xl-userdata' of the home folder, which D2X-XL creates by itself (you can use a different folder and announce it to D2X-XL by the '-userdir' command line switch). All data provided by D2X-XL comes with the proper folders already contained in the archive.

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.

Custom Music

D2X-XL can play user supplied music in the menus and levels of the game. MP3 and OGG/Vorbis music formats are supported. To supply a menu song, specify the full path to it in d2x.ini with the '-introsong' switch. To supply level songs, specify a playlist in d2x.ini with the '-playlist' switch. Enable custom music playback by placing

  • -sdl_mixer 1

in d2x.ini.

A playlist is a plain text file specifying a music file per line. Lines not ending with '.mp3' or '.ogg' are simply ignored. The filenames can be given with or without a folder. If the folder is omitted, D2X-XL assumes that the file resides in the same folder as the playlist. When playing a mission, D2X-XL will play one song from the playlist for each level, repeating the song if necessary, and will cycle through the songs from the playlist, starting over with the first if it has reached the end of the list.

The required d2x.ini entries could look something like this:

-sdl_mixer 1
-introsong c:\program files\descent 2\music\my intro song.ogg
-briefingsong c:\program files\descent 2\music\my briefing song.ogg
-creditsong c:\program files\descent 2\music\my credit song.ogg
-playlist c:\program files\descent 2\music\my level songs.txt

A song list (e.g. "my level songs.txt") could look like that:

my level song 1.ogg
my level song 2.ogg
my level song 3.ogg
my level song 4.ogg

D2X-XL would look for these songs in the folder where the song list resides.

MP3

The (open source) mp3 playback library D2X-XL is using is buggy, so using mp3 music in D2X-XL is not recommended and may not work.

Language Support

To supply texts in different languages to D2X-XL, You can use the supplied English and German language files (d2tex.eng and d2tex.ger). You can also use these as templates for creating a language file in your native language. To make D2X-XL use that file, add the switches '-altLanguage 1' and '-text <language file>' (replace <language file> with the name of the actual language file, e.g. '-text d2tex.ger') to d2x.ini.

Please regard that the hotkey mechanism provided by D2X-XL will be disabled for foreign languages as there is currently no way of specifying language dependant menu hotkeys to D2X-XL.

Source Repository

The source code of D2X-XL lives in a Git repository on GitHub, the D2X-XL Repository. Read access is anonymous — you do not need an account to download the code.

The level editor DLE is part of the same repository, in the DLE subfolder.

Building From Source

There are no build instructions on this site anymore. If you want to build D2X-XL or DLE yourself, get the source code from the repository and work through the documentation that comes with it. The build guide and the technical documentation are in the folder src/documentation.

To get a working copy:

git clone https://github.com/DietfridMali/D2X-XL.git

If you do not want the full history, a shallow clone is much faster:

git clone --depth 1 https://github.com/DietfridMali/D2X-XL.git

Windows users who prefer a graphical client can use Git for Windows, which adds Git commands to the Explorer context menu, or the Git support built into Visual Studio. On Linux, Git is available from every distribution's package manager, and both Eclipse and Visual Studio Code integrate with it out of the box.

If you want your changes to end up in the project, fork the repository, commit to your fork and open a pull request. Bug reports and support requests belong in the issue tracker.