gamesrc-ver-recreation

From DoomWiki.org

gamesrc-ver-recreation is a collection of modifications of various programs' released source codes, the purpose being the reproduction of originally released EXEs, byte-by-byte (or at least of EXEs close to these).

It includes restorations of various games that utilize the Doom engine: Doom, Heretic, Hexen, Strife and Chex Quest. Other games are further covered.

It also covers the Apogee Sound System backed DMX wrapper, i.e., APODMX. This is a wrapper for codebases depending on DMX that is actually using the Apogee Sound System.

History of gamesrc-ver-recreation[edit]

The project was originally started by NY00123 in late 2014 as a short-lived Git repository titled "game-srccode-ver-recreation". It was GitHub-hosted, and it covered a modification of the Catacomb Abyss sources. While the open-source release was found to essentially match version 1.24, it was changed to cover shareware version 1.13. This was used for support of v1.13 in ReflectionHLE.

About a week later, the repository was removed and replaced with a Mercurial repository, which was Bitbucket-hosted and had the familiar title of "gamesrc-ver-recreation". In addition to the modified Catacomb Abyss sources, it also introduced a modified Wolfenstein 3D tree, covering multiple versions of Wolfenstein 3D and Spear of Destiny.

Following the expected removal of Mercurial hosting from Bitbucket, the repository was converted to Git in early 2020. The Git commits were actually applied on top of the aforementioned repository titled "game-srccode-ver-recreation", while using a transitional Git commit in-between them. Another conversion was done afterwards, splitting the repository into separate Git submodules.

Additional game codes, libraries and helper tools had been added over time, before and after the transition to Git and separate submodules.

Blzut3 was an indirect contributor by the way of reverse-engineering of code from Blake Stone: Aliens of Gold and Super 3-D Noah's Ark for DOS. These efforts were originally intended for use in ECWolf.

Nuke.YKT joined gamesrc-ver-recreation in January 2022, following his work on Doom and Strife source reconstructions. Beforehand, he worked on PCDoom, PCStrife and an early incarnation of APODMX. He also reconstructed a few Build Engine versions while working on Rednukem, before these were added to gamesrc-ver-recreation.

All reconstructed sources were generally based, at least in part, on existing source trees which were previously released.

History of reconstructed sources for Doom engine games[edit]

  • Nuke.YKT's first source reconstruction attempt for Doom available to the public was PCDoom. Dating back to 2015, it includes an early incarnation of APODMX as a part of the repository, not yet named APODMX.
  • Based on this, the related PCStrife repository was uploaded in late 2015 and updated in early 2016.
  • Another Doom source reconstruction attempt, PCDoom-v2, was made available in 2017 and updated in 2018. It was mostly separate from PCDoom, albeit APODMX and a few bits of i_ibm.c were borrowed.
  • NY00123 started a reconstruction of other DOS versions of Hexen in 2020, based on the open-source release. The release in question was found to match a later revision identified as 1.1, including a bug fix for the function A_SoAExplode. As a part of this endeavor, a separate Git repository was created for Nuke.YKT's APODMX wrapper, which was transformed into a separate static library. This was also when it got the name of APODMX.
  • Reconstruction of other DOS versions of Heretic was started in late 2020, using the open-source release as a base. The latter was found to match version 1.3. APODMX was used again.
  • Additional early revisions of Heretic and Hexen were further reconstructed in 2021.
  • Nuke.YKT started another Doom source reconstruction in late 2021, mostly based on Linux Doom and Heretic sources. It was planned to be named PCDoom-v3, but it eventually became gamesrc-ver-recreation/doom. This work was mostly separate from the earlier PCDoom incarnations, albeit planar.asm code and APODMX were re-used.
  • Once Nuke.YKT completed a faithful reconstruction of Final Doom, NY00123 was reconstructing other versions of Doom. Chex Quest was also covered.
  • In the meanwhile, Nuke.YKT started another Strife source reconstruction, mostly based on gamesrc-ver-recreation/doom. All known registered DOS versions of Strife were eventually reconstructed.

Works derived from gamesrc-ver-recreation[edit]

As gamesrc-ver-recreation recreates and reverse-engineers proprietary code, several projects have used these as a basis for further enhancements. These include:

List of covered games and related code[edit]

  • Catacomb 3-D (version 1.00 only) and Catacomb Abyss (just v1.13).
  • Reconstructions of LOADSCN.EXE, INTRO.EXE and DEMOCAT.EXE/HINTCAT.EXE from the Catacomb Adventure Series.
  • Wolfenstein 3D, Spear of Destiny and Super 3-D Noah's Ark for DOS.
  • Blake Stone: Aliens of Gold and Planet Strike.
  • Rise of the Triad.
  • Doom (Ultimate Doom), Doom 2 (1.9) and Final Doom (Anthology)
  • Chex Quest.
  • Heretic.
  • Hexen.
  • Strife.
  • Duke Nukem 3D: Atomic Edition, NAM / Napalm, World War II GI (WWII GI) and Enhanced Duke (EDuke) 2.00.23.
  • The Duke Nukem 3D source addendum for the Build Editor.

List of covered libraries[edit]

  • The Apogee Sound System.
  • The Build Engine, including the Ken-Build test game.

Additional covered code[edit]

  • APODMX.
  • Miscellaneous files under the directory named "misc".

External links[edit]

Source code genealogy
Based on Name Base for
Linux Doom 1.10 Doom restoration Strife restoration
Heretic Doom 128
Heretic Heretic restoration Heretic 128
Hexen Hexen restoration Hexen 128
Heretic
Doom restoration Strife restoration None
PCDoom-v2 APODMX None