Compiling D1X-Rebirth Sourcecode

This file describes how to compile D1X-Rebirth from Source.


Requirements:
=============

   1. C/C++ compiler (gcc/g++)
   2. SCons (to compile in *NIX/Win32) / XCode (to compile on MacOS)
   3. SDL(-devel)
   4. PhysFS(-devel)
   5. GLU/GL
   6. NASM (optional for Assembler-based Texture-mapper in non-OpenGL Build)
   7. SDL_mixer(-devel) (+ dependencies) for external music support


Compiling:
==========

   *NIX:
   -----
   Type 'scons' to compile the source.
   You can also give additional options like 'scons use_udp=0'. See 'scons -h' for available options.
   To install, use 'scons install' but remember to use all your options as well or SCons will re-compile and
   install without any options given to prior compiling. However it's STRONGLY recommended NOT to use the
   'install' argument but to create a package for your Linux distribution or operating system. 'install' will
   compile the resulting binary (d1x-rebirth) to /usr/local/bin/ by default so to uninstall, just
   delete the binary.

   MacOS:
   ------ 
   For Mac OS X, an Xcode project is available (requires Xcode 2.1 or later). Xcode includes the compiler
   and OpenGL. The standard SDL and SDL_mixer libraries from the SDL website may be used, these go in
   /Library/Frameworks or ~/Library/Frameworks. However, to fix MP3 support for the 'Release' build I used
   SDL 1.2.8 with Diedel's modified SMPEG library from his D2X-XL website. To debug these libraries compile
   the frameworks from source as 'Debug' builds, then use these instead. PhysicsFS must be compiled from
   source. Put its enclosing folder 'physfs', renaming if necessary, next to D1X's (typically d1x-rebirth).
   In CMake ensure the build path points to 'build' inside 'physfs'. Specify 'i386;ppc' as the architecture
   for a universal binary. In Xcode, build 'Debug' and 'Release' from the dynamic library target.
   SCons also works on MacOS X, but it's recommended to use XCode instead.

   For Mac OS 9, an MPW Makefile is available. MPW includes the compiler. As for the shared libraries,
   compile PhysicsFS version 1.0 and the latest SDL and SDL_mixer (as of writing) from source. For SDL_mixer
   1.2.11 you will need to disable MikMod support, from SDL_mixer.make, otherwise use SDL_mixer 1.2.8.
   For any sources to compile, they will need to be made into text files using a typecode changing program,
   if they were downloaded outside of Mac OS 9 (including Mac OS X). This will also need to be done after any
   Terminal command (diff, svn update etc) edits the source files. THIS MAKEFILE IS GROSSLY OUT OF DATE!!

   Note that there are ready-to-go packages on https://www.dxx-rebirth.com   

   Win32:
   ------
   Use the SCons way like described in the *NIX-instructions from an MSYS/MinGW environment. However you will
   not need to use 'install' but just drag the resulting binary to your Descent-folder.
   Note that there are ready-to-go packages on https://www.dxx-rebirth.com 


Needed files:
=============

   Since D1X-Rebirth is a Sourceport of the Descent-Engine you will need the Game-Content data files to run
   the game. You can use your original Floppies, CDs or files from previously bought GOG or Steam versions.

   Following files are needed to run the game:
   descent.hog
   descent.pig

   For the Mac CD-ROM, download The Unarchiver (http://wakaba.c3.cx/s/apps/unarchiver.html) and drag the
   installer program onto it. Alternatively, run the installer on a computer with Mac OS 9 and copy over.

   Of course you can also use the Shareware game content with D1X-Rebirth which you can find here:
   https://www.dxx-rebirth.com/game-content/

   For the PC CD-ROM, these files should be located on the Descent1 CD-Rom. The PC version data files need
   to be patched to version 1.4a.

   There is a patch suitable for Mac OS X available at:
   https://www.dxx-rebirth.com/download/dxx/misc/descent-game-content-10to14a-patch.zip

   To play the Multiplayer levelset 'Total Chaos', make sure the files

   chaos.hog
   chaos.msn

   are in the subdirectory 'Missions'. These files should also be located on the Descent1 CD. For the
   Mac CD data, simply move these files, after installing, from 'Data' to 'Missions'.


Where to put these files:
=========================

   *NIX
   ----
   The Sharepath (/usr/local/share/games/d1x-rebirth/ by default - if not reconfigured via SCons) or
   ~/.d1x-rebirth or
   another directory specified by -hogdir via d1x.ini

   MacOS
   -----
   Same directory as where the binary is located or
   another directory specified by -hogdir via d1x.ini

   Win32
   -----
   Same directory as where the binary is located
   another directory specified by -hogdir via d1x.ini
   

Optional files:
===============

   D1X-Rebirth is expandable. You can add additional content to the game.

   Missions:
   ---------
   Those can be found on several websites. Add them to the game by copying them to subdirectory
   ‘missions/’. They can also go in subdirectories of 'missions/', unlike with the original version.
   A good place to find additional mission might be the Descent mission Database:
   https://www.dxx-rebirth.com/descent-mission-database/

   Custom Music (MP3, OGG, AIF, etc.):
   -----------------------------------
   Custom Music can be played via the JUKEBOX options by specifying it in the Sound Options menu.
   Please note that all custom music has to be in 44Khz format. Supported formats depend on the capabilities of SDL_mixer.

   AddOn Packs:
   ------------
   Custom AddOn packs will expand the game in many different ways. These are usually provided as ZIP or 7Z and can easily
   be installed by putting them to where your game content resides (OS-dependent - see above).
   NO EXTRACTION OR ADDITIONAL CONFIGURATION NEEDED.
   You can find all official AddOns here:
   https://www.dxx-rebirth.com/addons/


Launching the program
=====================

   *NIX
   ----
   After compiling and installing, the program can be launched with the command: d1x-rebirth

   MacOS
   -----
   Simply double-click "D1X-Rebirth".

   Win32
   -----
   Doubleclick d1x-rebirth.exe

   To see a full list of available command-line options append ‘-h’, ‘-?’ to the command or refer file
   d1x.ini


Appendix
========
   http://DXX-Rebirth.com
