viti95 / FastDoom

Doom port for DOS, optimized to be as fast as possible!
512 stars 33 forks source link
doom doom-2 optimization port retrogaming

FastDOOM

Doom port for DOS, based on PCDoom by @nukeykt. The goal of this port is to make it as fast as possible for 386/486 personal computers.

FastDOOM vs Original

DEMO

Doom 1.9 Audio Doom 1.9 NoAudio FastDoom 0.2 Audio FastDoom 0.2 Audio FlatVisplanes FastDoom 0.2 Audio FlatVisplanes FlatTransparency FastDoom 0.2 Audio FlatVisplanes Sega Saturn transparency FastDoom 0.2 NoAudio FastDoom 0.2 NoAudio flatVisplanes Sega Saturn transparency
FPS 19.56 21.68 22.44 25.77 25.86 26.02 24.79 29.05
Gain 100.00% 110.20% 114.70% 131.70% 132.20% 133.00% 126.74% 148.52%

FastDoom 0.8 Live Demo (Texas Instruments 486DLC @40 MHz, Cirrus Logic GD-5422 ISA):

https://user-images.githubusercontent.com/8323882/147228550-bf93cc50-3c92-4a7a-b84f-65c8bbe1d3a9.mp4

Full video here

Build instructions (FastDOOM)

Requirements: Linux or WSL2 on Windows.

  1. Install OpenWatcom v2, NASM, GNU Make and DOSBox-X
  2. Execute source env.sh
  3. Build:
    • Single executable: build.sh <executable> <parameters> Where: "executable" is the executable name (fdoom.exe, fdoomega.exe, ...) and "parameters" can be one of these:
      • "-clean": cleans all generated OBJs,
      • "-stub": adds the DOS/32 stub,
      • "-debug": generates debugging exectable, needs dbgcfg.h file to be adjusted to your needs
    • All the executables + automatic DOS/32 stubs: buildall.sh
    • Generate a full release package (ZIP): package.sh

Example to build a fresh FastDoom executable ready to use on real hardware:

./source env.sh
./build.sh fdoom.exe -clean -stub

Build instructions (FDSETUP)

Requirements: Windows 3.1 or Windows 9x

  1. Install Borland C++ 4.52
  2. Install Laughing Dog Screen Maker 1.14
  3. Run .\FDSETUP\SCREENS\MAKE.BAT (MS-DOS)
  4. Open setup.ide project in Borland C++ IDE
  5. Build the project

Contributors

This project exists thanks to all the people who contribute.

Star History

Star History Chart

Contributing

Feel free to add issues or pull requests here on GitHub. I cannot guarantee that I will accept your changes, but feel free to fork the repo and make changes as you see fit. Thanks!