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]
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]
- GitHub repository
- DOS Doom Code Execution thread on the Doomworld forums
- ACE Engine v2 thread on the Doomworld forums
Source code genealogy | ||
---|---|---|
Based on | Name | Base for |
DOOM2.EXE | ACE Engine | Active |
ACE exploit/Custom code |