ACE Engine

From DoomWiki.org

ACE Engine
Codebase DOOM2.EXE
Developer(s) kgsws
Initial release Version 1 (2020-09-28, 4 years ago)
Latest release Version 4 (2023-11-12, 14 months ago)
Development status Active
Written in C, Assembly
Target platform DOS
License LGPLv2.1
Source Repository

(Git)

GitHub

The ACE Engine (formerly Doom_ACE) is a currently unclassifiable project created by kgsws. The ACE Engine fits somewhere between an enhancement mod, an executable hack and a source port, sharing characteristics of all three. The underlying discovering of arbitrary code execution was distinguished with a Machaward in 2020.

Philosophy[edit]

The core principle is to exploit known vulnerabilities in the original DOOM2.EXE (specifically version 1.9 of Doom II, not the similarly-numbered versions of The Ultimate Doom or Final Doom) to execute arbitrary code using a custom loader loading a specially crafted (and technically invalid) map. In this case, the arbitrary code being loaded is the ACE Engine, which allows to graft some modern features to the game, such as bug fixes, raising some of the static limits, or a limited subset of DECORATE.

In essence, it can be thought of as a source port that has to be launched from vanilla Doom in DOS.

Features[edit]

Example WAD highlighting some of the new features such as mouselook and fog in vanilla Doom made possible through custom arbitrary code by the ACE Engine exploit.

Being able to execute arbitrary code using a modified loader or savegame means that the ACE Engine is capable of supporting features far beyond what is present in source ports at the expense of time to implement it. So far demonstrated are:

  • A minigame of Snake where the player has to eat the skull keys, played at the menu as an overlay
  • Minimalist/custom HUD
  • Mouselook support
  • Per-sector toggable and switchable colored lighting/shading
  • Colored Fog support
  • Raised static limits: [MAXDRAWSEGS],[MAXVISPLANES],[MAXVISSPRITE]
  • DECORATE support (WIP)
  • Support for Hexen format maps
  • Lethal forcefields
  • On-the-fly recolorization of things like monsters or barrels, being able to cycle through colours
  • Primitive jumping support through jumppads

External links[edit]


Source code genealogy
Based on Name Base for
DOOM2.EXE ACE Engine Active
ACE exploit/Custom code