Skip to content

DoomUltra64 v0.5

Choose a tag to compare

@thinkelastic thinkelastic released this 18 Aug 23:00
· 8 commits to main since this release

Doom and Doom II on the Nintendo 64, rendered by the RDP.

What's new since v0.4

Vertical seams between wall segments are largely gone. Thin one-pixel slits, worst on distant walls, where a column of the frame was never painted by anything. Three causes, each measured before and after:

  • The BSP claimed columns a wall provably cannot paint. With antialias off the RDP writes a pixel only if the sample at its integer coordinate is inside the span, so a span starting at 187.5 cannot write column 187 — but it claimed it, the solid list marked it covered, and nothing behind was allowed to fill it.
  • A wall span's end edges went through a float round trip — parameter to texture coordinate and back — that is not an identity. At distance a few ULPs of parameter is a quarter-pixel of screen x, so two segments meeting at a shared map vertex projected it to slightly different places.
  • Two segments need not share a vertex at all. Their outer edges are now grown to the enclosing pixel boundary, so neighbours overlap by under a pixel instead of leaving a void. Walls are opaque and depth-tested, so overlap costs nothing.

Measured over the same demo route: mid-view hole pixels 3747 → 1226, seam columns ten rows or taller 127 → 35.

Also: the polished-metal sheen now reports when it runs out of per-frame slots, so a densely plated corridor says so rather than quietly sheening only some of its walls.

Everything in v0.4 is included — sixteen dynamic lights, Doom's real light curve, polished metal, glowing powerup spheres, seated barrels, cartridge-resident music, 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

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; see the README for tools/mkmuswad.py.

Requires the Expansion Pak. Developed and tested on a SummerCart64.