Skip to content

btb/d2x

Repository files navigation

===========
    D2X
===========

http://icculus.org/d2x


Useful Links:
=============
Nasm:		http://nasm.sourceforge.net
SDL:		http://www.libsdl.org
PhysicsFS:	http://icculus.org/physfs/


Linux/Unix:
===========

Required tools:
* GCC 2.95 or higher
* SDL 1.2
* PhysicsFS
* NASM 0.98 (OPTIONAL but RECOMMENDED for x86)
* A thread safe X server.
* GNU make is probably required as well.

Build instructions:
Install all of the components above. Next, from the d2x directory:

./configure
	./configure --help will show you the available options.
	If you have a 3d graphics card, use --with-opengl

VPATH builds also work (i.e., you can put the source in one directory
and build in another.  Just execute the configure script from the
build directory like so:
mkdir d2x-build
cd d2x-build
../d2x-source/configure

make
make install

on systems where `make' isn't GNU make, use `gmake' instead.

see installation.txt for info on where to put your datafiles, etc.

Known bugs/issues:

* Serial support doesn't work. (UDP and IPX networking does)
* Sound glitches (due to stuff I haven't implemented)
* The mouse support is at the same level as it was in d1x (as in, it
  kind of works) (btb: works pretty good for me.)


Win32 (unix style):
===================

Required tools:
* MSYS (with MinGW) or Cygwin
* SDL 1.2
* PhysicsFS
* NASM 0.98 (OPTIONAL but RECOMMENDED)

Download the SDL 1.2 SDK for MinGW, unpack and install it from the
MSYS shell with "make native".  You will need to manually copy the
file bin/i386-mingw32msvc-sdl-config to /usr/bin/sdl-config, and edit
it, setting the "prefix" variable to "/usr".

If you are compiling from CVS, you will also need to have msysDTK
installed.  This is required to run autogen.sh and also includes the
cvs client itself, among other useful tools.

Now you can configure d2x as normal.  i.e.
./configure
or
./configure --with-opengl
and build with:
make

VPATH builds, described above, also work in MSYS or Cygwin
Then just copy your executable and SDL.dll into the descent2
directory.


Win32 (MSVC):
=============

Required tools:
* MSVC++
* SDL 1.2
* PhysicsFS

Download the SDL 1.2 SDK for MSVC and the source code for PhysicsFS.
Unpack them in your source directory, along with the d2x source code.
This can be whereever you like, but if your directory structure looks
like this, then you won't have to mess with the project settings:

sdl\
sdl\SDL-1.2.8\
physfs
physfs\physfs-1.0.0\
descent\d2x\

First you have to compile the PhysicsFS library.  Open
physfs_static.dsw, select the "Release" configuration, and build.

Now open d2x.dsw, select the active project to d2x or d2xgl, select
the "Release" or "Debug" configuration as desired, and build.

Then just copy your executable and SDL.dll into your descent2
directory.


MS-DOS:
=======

Dos support isn't a high priority right now, so things may be a little
messed up.

Required tools:
* DJGPP v2
The following DJGPP packages are ALL REQUIRED (newer versions are ok)!
v2/
djdev203.zip
v2gnu/
bnu281b.zip gcc2952b.zip mak3781b.zip bsh1147b.zip sed302b.zip
m4-14b.zip acnf213b.zip gwk304b.zip txt20b.zip grep22b.zip dif272b.zip
So many packages are needed to support the autoconf build system that d2x
uses. (Sorry! =)
* NASM v0.98 or better is REQUIRED


Build instructions:
Install all of the djgpp packages above. Make sure that DJGPP is properly
configure (see the DJGPP docs for more information).
Make a copy of bash.exe in your djgpp bin/ directory. Call it "sh.exe". This
step is VERY IMPORTANT (otherwise all the scripts will fail).

Now, run the following from the d2x directory:
djgpp.bat
make

Hopefully things will work out and the package will build correctly for you.

Known bugs/issues:
* Serial and network support missing.
* Sound support missing.


MAC OS X
========

Install the latest version of apple's developer tools.
Compile and install SDL from source: d2x doesn't use Project Builder.

configure and compile as with other unices.


MAC OS 9
========
Required tools:
* MPW-GM v3.6 or higher
* SDL 1.2
* PhysicsFS
* OpenGL 1.2
Recommended:
* MacsBug 6.6.3
* Power Mac Debugger 2.2

CIncludes:
The SDL headers go in here. Either a folder called "SDL" or the headers straight in CIncludes will work. The OpenGL and AGL headers go directly in CIncludes, but a folder needs to be made called "GL". Copies or aliases of glu.h and gl.h need to go in here. This is because the makefile is set up to use Unix include directive paths. physfs.h also goes in here.

SharedLibraries:
OpenGLLibraryStub and OpenGLUtilityStub go in here. Also, copies of the SDL and PhysicsFS libraries go in here.

Build instructions:
Install all of the components above. The OpenGL version of D2X is built by default, but with a bit of fiddling the non-OpenGL version can be built. The quickest way to build is to open D2X.make (which launches MPW), type Command-B, enter "D2X" (no quotes) and press return.

Note: All the C files, headers and D2X.make have to be plain text files for it to work. This may mean using your favourite type code changer.

Using Power Mac Debugger:
All the source files must have classic Mac return characters before building. I'd recommend using DropTextConverter. Power Mac Debugger won't work properly if using a Voodoo 2 card, so just turn off the 3Dfx extensions when debugging.

D2X could be made to build in CodeWarrior.

see installation.txt for info on where to put your datafiles, etc.

Known bugs/issues:

* No network support
* Textures can behave weird. Appears to be a problem on all platforms.
* Some sound glitches


Bugs/feedback:
==============

There are three places to report bugs and give feedback:

You can get on the descent-source mailing list by sending an email to
majordomo@warpcore.org with the body as: "subscribe descent-source
<your email address>". Discussions about the source code in general
are available here, and is the main list that d2x and d1x, a similar
project for descent 1, are discussed on. Patches and questions can be
posted there, as well.

Use Bugzilla. https://bugzilla.icculus.org/
This is the most reliable way to make sure your issue gets attention!

Contact me directly, btb@icculus.org.  I'll try to get back to you
ASAP, depending on real-life concerns =)