Nintendo 64
Doom 64 began as a project by Williams Entertainment, which merged with Midway Games during its development, and was originally released for the Nintendo 64. The source code for Doom 64 was never officially released nor found publicly (although it exists in the id Software archives). Thus new Doom 64 engines for the Nintendo 64 did not occur until the game was fully reverse-engineered in 2020, when Doom 64 RE was released. This has provided a base for all other console engines for Doom 64. Below is a list of the various Nintendo 64 engines for Doom 64 that currently exist in open source.
The follow sections describe more about the Doom 64 engines on the Nintendo 64.
Original Versions
After the original release of Doom 64, there was one update (called the 1.1 version) and regional releases. The 1.1 version of Doom 64 primarily changed three things as listed below.
- An extra check is done in P_RefreshBrightness around P_SetLightFactor, which fixes a potential menu freeze.
- An unused PLLEGAL lump is present in the IWAD.
- The N64 the preNMI handler will reset the screen position from any changes due to the "center display" option.
European and Japanese versions of Doom 64 are based on the 1.1 version of Doom 64, but also contain additional changes. Both of these versions increase the default brightness, but do not increase the maximum brightness. Further the European version contains changes to various engine tic rate values to get it to run at the same speed on PAL (50 Hz) video format as opposed to its original NTSC (60 Hz) video format. Both regions have an exta thing type for green blood, however Europe retains the red blood while Japan uses green blood. The Japanese version of Doom 64 contains the following additional changes.
- Exta functions have been added to display Japanese fonts in the HUD and the controller pak menu.
- The mocking death text has been removed.
- It was compiled with a later compiler compared to the US and Europe versions.
Compiling
Compiling the Nintendo 64 engines for Doom 64 requires a SDK for the Nintendo 64. Some ports are based on the original SDK provided by Nintendo, while others are based upon a modern update to this SDK.
Nintendo 64 SDK
The following codebases compile with the original Nintendo 64 SDK which can be found on n64.dev. In particular the "N64 SDK Easy Install CD" is recommended to install the Nintendo 64 Compiler.
The Nintendo 64 SDK only runs on Windows 98 to Windows XP. To run Windows XP on a more modern computer you can use Virtual Box and you can find the Windows XP installation data on archive.org.
Modern SDK
The Modern SDK updates the Nintendo 64 SDK with the latest GCC compiler and runs on modern operating systems. This allows for much better optimizations when compiling for the Nintendo 64. It was through the initial efforts by JNMartin which allowed Doom 64 to be compiled with the modern SDK. The following codebases compile with the Modern SDK.
The Modern SDK runs on Linux distros such as Ubuntu and on modern Windows via WSL2.