Super NES

Doom for the was developed by  It was released on September 1, 1995, near the end of the system's life cycle. The cartridge features a chip, and was one of only three Super NES games to feature a colored cartridge, with the NTSC version being available in a red casing. The game does not use the Doom engine, but is instead powered by a custom engine programmed by Randy Linden called the Reality Engine. It was published by Williams Entertainment in North America and Europe, and by in Japan. Distributor cooperated on the European release.

Details
Doom for the Super Nintendo features 22 levels from the PC version. The status bar is rearranged, though it keeps the concrete theme of the PC version, featuring an image of the weapon currently held instead of the original ammo numbers. Unique to this port, the floors and ceilings lack texture mapping, with sectors being assigned two solid colors for the floor and ceiling out of a palette of 256 choices. The game lacks any back-up or password system, meaning that each episode must be finished from the beginning. A level, however, can be restarted if the player chooses the option while pausing the game. Restarting a level will keep all items collected from previous levels. Although the manual states otherwise, the game supports the Super NES mouse and the Super Scope light gun. Multiplayer was available through the network, although only deathmatch mode is available.

The game runs at the system's most commonly used resolution of 256 x 224, though as with most other Super FX games it does not fill the entire screen; instead, the game viewport is surrounded by a black frame. Furthermore, the game renders double-width pixels equivalent to low detail mode in the DOS version. Due to memory limitations, the enemies only display from the front, causing them to appear to always face the player. Because of this, and perhaps to conserve processing power, monster infighting was not implemented, although it was made possible for monsters of the same type to damage each other with projectiles. Also as a likely means to conserve processing power, sound propagation is unused, rendering all enemies deaf. Due to deficiencies in the game's controller reading routine, circlestrafing is not possible, though standard strafing via the L and R buttons is functional. Movement feeling differs significantly from the DOS version due to lack of viewbobbing; possibly to compensate for this, weapon swaying is significantly more pronounced in this version.

The maps used in the Super Nintendo port are derived from the PC version as opposed to the Atari Jaguar version, as every other port until the Xbox version used. This means that they are actually more intricate and detailed than their counterparts on the more powerful consoles, though they are still re-textured to a degree as a result of reduction in the pool of available textures.

The cyberdemon and spiderdemon monsters that the Atari Jaguar, Sega 32X, and 3DO versions lack are also present, albeit with altered death sound (using the same effect as the baron). Lost souls do not charge towards the player as a means of attack, instead employing the same melee attack as the pinky demons (although still using their original charging sound effect). The cyberdemon is also capable of performing a melee attack if the player goes too close to it, playing the imp's clawing sound effect.

The musical score plays new arrangements of each track written for the sound co-processor, rather than the PC version's MUS songs. Liberties taken include changing distorted guitars to orchestral strings in select tracks, and rearranging the levels on which some songs play. Like the 3DO port, this version's music is generally ranked favorably against the 32X version. However, sound effects are prone to lagging and cutting out if too many are played at once.

The US and European releases of the game have a unique difficulty system wherein later episodes can only be accessed on harder difficulties. However, this is subverted in the later Japanese release, which restores full access to any episode from any skill level. For performance reasons, this port lacks transparent midtextures like its Jaguar counterpart.

The automap display takes advantage of the fast multiplication and division abilities of the Super FX chip, enabling scaling and rotation. The entire map spins around the player's position with the player in the center. Rather than the player being portrayed with an arrow, the player is a green triangle. Due to system limitations, no particles such as blood impacts, smoke or bullet sparks are present in the game - indeed, the shotgun does not fire seven individual shots as normal, but rather functions something like a slug gun or hunting rifle. This allows a player to shoot&mdash;and be shot&mdash;from a distance using the shotgun with no decrease in power. Moreover, the player's chaingun is now capable of single fire (although emptying one's bullet stock still produces a doubled sound effect). Finally, Nightmare! mode does not feature respawning monsters, but still contains very fast and tough monsters.

As stated before, blood on bullet impacts is removed, although given the lack of censorship in almost all other aspects of the content, as well as the lack of bullet puffs, it is likely that this was done for performance reasons rather than as any attempt to tone down the game's violence.

Levels
Internally the Reality Engine does not address levels in an "ExMy" fashion but simply has a series of lookup tables which point to the levels' various portions of data. These lookup tables have comments and named entries in the source code referring to them by their PC names, as well as representing the levels which were not translated from the PC version which are skipped over by the code when playing the game, so the same naming scheme used for PC is maintained for the levels here.

Removed levels
A total of five levels from the original are missing from the Super Nintendo version:

Although this can obviously not be seen in game, in the level name lookup table, the five levels that were cut had their names replaced with "R", "A", "N", "D", and "Y" respectively. This easter egg can be seen using a hex editor. The source code reveals that the original level names were originally present but were commented out.

Other differences

 * Due to the absence of transparent midtextures, the level design does differ from the PC version in some areas, and compensation is handled inconsistently. In Hangar, the wall grates in the final room before the exit switch are simply absent, making this the only version of Doom allowing you and the monsters to move freely between those areas. In Toxin Refinery, the grates lining the perimeter of the nukage pit in the beginning have been replaced with sector-based safety ramps, similar to the Jaguar version. However, there is no replacement for the missing grates blocking the courtyard in the secret accessed via the yellow card, though it remains impassable.
 * In the absence of Command Center, the secret exit for The Shores of Hell is now located in Refinery, behind the secret supercharge in the nukage near the exit, unlocked with an added switch. This new room contains three energy cell packs, two boxes of rockets, one cacodemon on Ultra-Violence and higher, and two imps on Hurt Me Plenty and lower.
 * The rocket launcher is stronger than its PC version, which makes it easier to kill any strong monster with fewer shots, including the cyberdemon and spider mastermind which are not immune to blast damage in this version. This is particularly noted with barons, which die in three rather than six shots.
 * The plasma gun is also stronger, using the same damage range as the shotgun. This makes it easier to kill pinky demons with only two shotgun shots. The plasma gun also uses fewer sprites in its firing sequence.
 * In wider areas, it is possible for the player to collide with their own fired projectiles (such as rockets and plasma) if the projectiles are fired while the player is running.
 * The BFG does not display an explosion graphic as it does in all other versions; it simply fires a round that looks like a baron fireball and causes a ripple effect without the animation.
 * In a rather humorous fashion, the cyberdemon's rockets fire out backwards. This is an unfortunate side effect of the developers using single-angled sprites, seeming to forget that the player and cyberdemon share this projectile.
 * Many sound effects have been simplified. They are sampled at a lower rate, and there is far more reuse than there is in the PC version. Pinky demons share the imp's pain and death sounds, lost souls share the cacodemon's awakened sound (also reused as both monsters' idle sound) and rocket and barrel explosions share the generic fireball explosion sounds. Lost souls use their own death sound, which is actually the marine's falling/activating dummy walls grunt, instead of the fireball explosion as their death sound. Zombiemen and shotgun guys only use one of their three PC death sounds, imps only use one of their two original death sounds, and the player's non-hitscan weapons utilize the imp/cacodemon/baron fireball launching sound effect when fired.
 * This is the only version of Doom to use cylindrical collision on actors. All other versions use rectangular bounding boxes, with fixed alignment no matter which angle the actor is facing.

Development
Randy Linden, the port's sole programmer, initiated the port of Doom for the Super NES on his own initially, as he was fascinated by the game.

Since Doom's source code was not yet released at the time, Linden referred to the Unofficial Doom Specs as a means of understanding the game's lump layout in detail. The resources were extracted from the IWAD, with some (notably sprites such as the player's sprites and the original status bar face sprites) unused due to technical limitations.

According to an interview, due to lack of development systems for the Super FX, Linden wrote a set of tools consisting of an assembler, linker, debugger, dubbed the ACCESS, on his own Amiga before beginning development of the port proper. For the hardware kit, he utilized a hacked  cartridge and a pair of modified Super NES controllers plugged into the console and connected to the Amiga's parallel port. A serial protocol was used to further link the two devices.

After developing a full prototype, he later showcased it to his employer, Sculptured Software, which helped him finish the development. In the interview, Linden expressed a wish that he could have added the missing levels; however, the game, already the largest possible size for a Super FX 2 game at 16 megabits (approximately 2 megabytes), only has roughly 16 bytes of free space. Linden also added support for the Super Scope light gun device, the Super NES mouse, and the XBAND modem for multiplayer. Fellow programmer John Coffey, himself a fan of the Doom series, made modifications to the levels, but some of those modifications were rejected by id Software.

On July 14, 2020, Linden released the first phase of the source code on Github under the GPLv3 license, with the second phase following on July 16 and the third phase the next day. According to a reply on a thread on NESDev regarding the source code release, the source code release for both the port and the ACCESS toolchain would be each divided into four such phases. However, later phases of the port's source code release have been rather sporadical, with the latest commits on June 19, 2022 to match the US retail release of the port (dubbed the 5934 USA Release by Linden), which has the XBAND multiplayer feature not found in previous commits.

As of October 30, 2022, the port's source code release has reached Phase 3C.2, chronologically the ninth commit in the repository, on July 18, 2020, excluding the later commits, whereas that of the ACCESS toolchain has yet to go past Phase 1A, chronologically the third commit of the repository, on July 21, 2020. This is possibly due to the port's source code release not yet reaching the final phase of the release, resulting in stagnation on the ACCESS side.

Multiplayer
Though unmentioned by the game itself, the XBAND modem network supported multiplayer deathmatch games for two players. On connecting, both players would be presented with the list of all 22 levels in the game. If both players selected the same map, game play would begin on that level immediately. Otherwise, players had 15 seconds to finalize their selections and, if different, the game would select any one of the levels at random. Players would spawn at deathmatch spots as in the PC version, and multiplayer-only items would appear in their usual locations; for example, the chaingun is available in the final room of.

Deathmatches would last until one player achieved five frags, which are displayed on the status bar as in the PC port, or any player hit an exit switch. The game would then return to the level select menu. This would continue until one player or the other disconnected.

Some limitations of the port are further evident in this mode, as player sprites are also only visible from one angle, both players appear green in color, and they always display the "firing" attack frame. When a player dies, their body simply disappears, leaving no corpse or gibs. While music still plays, sound effects are disabled, either due to performance or game synchronization concerns.

With the demise of the XBAND network in April 1997, it became technologically impossible for a time to trigger the game's multiplayer component. While no emulators have yet been created that can replicate it, with the release of the source code it has become possible to run the game on the original hardware against community-created replacement XBAND servers.

Easter eggs
At the bottom of the Knee-Deep in the Dead sky texture is a message reading, "Randy Linden ♥ Jodi Harvey." This easter egg can only be seen if the player looks inside the ROM's graphical resources, or uses a code that allows walking through walls in areas where the sky is visible.

Within the ROM itself, a hidden message can be found which reads, "Rage / Reality Engine written by Randy Linden. Special thanks to my loving wife, Jodi Harvey." It can only be found if the ROM file is opened in a hex editor, and is found at position 10F (271 in decimal).

Physical media
The version of the game cartridge is unique: along with the critically acclaimed 1994 , it is one of only two games for the Super Nintendo to utilize a red plastic casing. Other regions were not so well treated: the, French/Dutch, and Japanese versions of the game use standard form factor gray cartridges, and have lower quality, awkwardly positioned and cropped versions of the box art which are largely covered with small white copyright and trademark boilerplate text.

The instruction manual for the NTSC version is also special. It eschews the standard front page design of SNES booklets for a mock-up of a military field guide, which doubles as the manual's table of contents. This theme is kept throughout, with the three-ring binder appearance and faux tabs on every page. Again, other regions' booklets are less unique. The text inside the booklet is largely the same as the PC manual, though differences exist to account for the game's platform and slightly different mechanics. The manual, rather incorrectly, states that the game is incompatible with the Super NES Mouse and the Super Scope light gun. The NTSC manual also contains an advertisement for the then-upcoming Super NES port of , also published by Williams.

Trivia

 * According to John Romero, the Super Nintendo port of Doom was developed secretly by Sculptured Software and then brought to id fully complete in order to request permission for it to be published. Romero states that id's response was, "Oh hell yeah!" The involvement of Williams in its publishing would later lead to that company also handling ports to the PlayStation and Nintendo 64.
 * This version of Doom and Doom II for Game Boy Advance were the only official console versions to use custom engines instead of the original Doom engine.
 * This is also the third console-based port to receive a source code release from the developer after the Atari Jaguar and 3DO versions.
 * The port was developed by Randy Linden using the Amiga. He has previously also programmed an Amiga port for ' and its sequel, '.