Download the executables here.
The goal of this project is to:
- Examine which compiler generates the fastest Doom code for DOS:
- DJGPP
- Digital Mars (with X32)
- CC386
- Watcom
- 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.
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__ |