Doom and Doom II on the Nintendo 64, rendered by the RDP.
What's new since v0.5
One cartridge now plays any WAD. Every texture, flat, sprite and piece of
menu art used to be pre-composed by the build, which is what tied a ROM to the
single IWAD it was compiled against. It is now built from the WAD as each level
loads, so the same cartridge runs Doom, Doom II, Freedoom or a total conversion
— and a mod's own art simply appears, with nothing to convert and nothing to
rebuild.
This is affordable because Doom's art is already 8-bit palettised: none of the
work is colour, only layout. Vanilla Doom composes its wall textures at runtime
for the same reason.
It was proven rather than eyeballed. With the old baked files still present, the
console composed each one a second time and compared the bytes: 2,148 pieces
across eight Doom levels and 2,660 across eleven Doom II maps, every byte
identical, zero mismatches. The animation tables match too, now derived from
the WAD's own TEXTURE1 order.
The cartridge shrinks accordingly, because nine megabytes of it was art:
| v0.5 | v0.6 | |
|---|---|---|
| DoomUltra64.z64 | 12 MB | 2.1 MB |
| Doom2Ultra64.z64 | 15 MB | 1.2 MB |
Levels take a little longer to load than they used to — that is the art being
built as it is needed.
Mods. Drop add-on .wad files into sd:/Doom/mods/ and pick one from
Options → MODS. The list shows what is actually on the card, your choice
survives a power cycle, and NO MOD goes back to the plain game. Switching is
offered at the title screen only — the game will not swap a mod out from under a
level you are playing. New levels and custom art both work; custom sounds still
fall back to the stock ones.
Two fixes worth naming:
- Pressing A no longer announces a pickup you did not make. A doubles as
Doom's message-refresh key, so every press of the run button re-displayed your
most recent message — usually "Picked up a stimpack." - "Green is turbo!" is gone. The N64 stick reads past its nominal 80, so a
full deflection while running produced aforwardmoveabove Doom's cheat
threshold and the game said so, once every 128 tics. Clamping the stick also
fixes the part nobody would have reported: running was a few percent faster
than vanilla, and turning faster than the Controller slider claimed.
Rumble can now be switched off in Options.
Everything in v0.5 is included — sixteen coloured dynamic lights, Doom's real
light curve, reflections in nukage and on polished floors, light shafts, moving
liquids, self-naming saves and the controller sensitivity slider.
Installing
Extract to the root of your SD card. It creates one Doom folder:
sd:/Doom/
DoomUltra64.z64 the Doom ROM
Doom2Ultra64.z64 the Doom II ROM
saves/ savegames, six slots per game
mods/ drop add-on .wad files here
Add your own IWADs — they are not included and are not redistributable:
sd:/Doom/DOOM.WAD for DoomUltra64.z64
sd:/Doom/DOOM2.WAD for Doom2Ultra64.z64
Boot a ROM from the flashcart menu, then set Options → Graphic Detail to
High — the metal sheen, the pool reflections and the 320x480 mode are all
gated on it.
Music is optional and ships separately. tools/mkmusfromiwad.py builds it from
the game files you already own, in one command; see the README.
Requires the Expansion Pak. Developed and tested on a SummerCart64.