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 sdl_only=1 asm=1'. 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-gl/sdl) 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 the 'Debug' static library target. If anyone knows how to get the
   'Release' build to properly link with DXX, please tell.
   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 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.

   Note that there are ready-to-go packages on http://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 http://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 don't own the full game, yet?
   Just visit GOOD OLD GAMES via:
   http://www.gog.com/en/gamecard/descent_1_descent_2/pp/fc074d501302eb2b93e2554793fcaf50b3bf7291
   and download it for a very low price! DRM-FREE!

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

   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 available at:
   http://www.dxx-rebirth.com/download/dxx/res/d1datapt.zip

   For the Mac CD-ROM, the data files will need to be installed from the CD using a Mac system earler than
   OS X. Classic will work. StuffIt tech support said this is virtually the only way.

   Note that the above files must be lowercase if you use an operating system with case-sensitive file management.


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
   

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.

   Custom Music (MP3, OGG, AIF, etc.):
   -----------------------------------
   Custom Music can be played via the CUSTOM MUSIC 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 differnt 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.
   A list of currently available packs:
   - Hires background images and fonts:
     http://www.dxx-rebirth.com/download/dxx/res/d1xr-hires.zip
   - German briefings:
     http://www.dxx-rebirth.com/download/dxx/res/d1xr-briefings-ger.zip
   - Soundtrack in OGG format (created by Brandon Blume using Roland SC-55 MIDI Module):
     http://www.dxx-rebirth.com/download/dxx/res/d1xr-sc55-music.zip
   - Sound Effects for Mac Game Content (adds sounds which were not included in DESCENT.PIG)
     http://www.dxx-rebirth.com/download/dxx/res/d1xr-mac-sounds.zip


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

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

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

   *NIX
   ----
   After compiling and installing, the program can be launched with the command:
   d1x-rebirth-gl
   or - if it has been compiled with SCons parameter ‘sdl_only=1’:
   d1x-rebirth-sdl

   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
