/djdoom

Compiling Doom for DOS with various compilers.

Primary LanguageCGNU General Public License v2.0GPL-2.0

DJGPP Doom

Download the executables here.

The goal of this project is to:

  • Examine which compiler generates the fastest Doom code for DOS:
  • Show the modifications required in the code for it to be compilable by the compilers.

The code is based on gamesrc-ver-recreation and it took inspiration from Apogee Sound System, Apogee Sound System backed DMX wrapper, doomgeneric, Doom Vanille, Executor, FastDoom, Quake and Quake 2.

There is some assembly in the code that requires NASM. To build Doom using only C code, look at the macro C_ONLY.

Sound effects are supported through the PC speaker and Sound Blaster. And music is supported via Adlib, Sound Blaster, Pro Audio Spectrum, General MIDI, Wave Blaster and Sound Canvas.

There's no support for joystick and Logitech Cyberman.

How to add other compilers

The differences between compilers specific to the Doom source code are in a_blast.c, a_inter.h, a_multiv.c, a_taskmn.c, compiler.h, d_main.c and i_ibm.c. Search in those files for the pre-defined compiler macros and start hacking.

Compiler Set environment variables Compile code Pre-defined compiler macro
DJGPP setenvdj.bat compdj.bat __DJGPP__
Digital Mars setenvdm.bat compdm.bat __DMC__
CC386 setenvoc.bat compoc.bat __CCDL__
Watcom setenvwc.bat compwc.bat __WATCOMC__