Skip to content

DoomUltra64 v0.6

Latest

Choose a tag to compare

@thinkelastic thinkelastic released this 19 Aug 23:55

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 a forwardmove above 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.