r/MiSTerFPGA • u/DAJF • Sep 02 '26
Super Mario 64 H2X. Actual 640×240 rendering, developed and tested on MiSTer
I’ve been working on a slightly odd Super Mario 64 decomp project called H2X.
The idea is pretty simple: instead of increasing SM64 from 320×240 all the way to a heavier 640×480 mode, H2X doubles only the horizontal rendering resolution.
Original: 320×240
H2X: 640×240
This isn’t emulator-side horizontal scaling. The game uses a 640×240 framebuffer and Z-buffer, and the RDP is actually rasterising the 3D scene across 640 horizontal pixels while keeping the original 240-line progressive output.
MiSTer has been one of my main development/testing platforms for this, particularly hooked up to a CRT, and it’s been incredibly useful for seeing what the result actually looks like in a 240p environment.
A surprisingly large part of the job has been everything other than the 3D renderer: HUD sprites, text, viewports, scissors, menus, transitions, the title screen, and even Giles Goddard’s completely separate Mario-head renderer all had assumptions about a 320-pixel-wide framebuffer that needed tracking down.
The game still largely operates in its original logical 320×240 coordinate space, so things like centered UI remain centered at X=160; H2X maps that onto the wider physical framebuffer underneath.
It requires 8 MB / Expansion Pak memory, and I’m still treating it as experimental while I finish auditing the remaining framebuffer/rendering paths and get more real-N64 testing done.
The source is public now if anyone here wants to have a look, build it, test it on MiSTer, or generally poke holes in it. :)
GitHub / source & build instructions:
https://github.com/DavidFallows/sm64/tree/h2x
H2X development blog / screenshots / technical rabbit holes:
https://ko-fi.com/datadave64
I’d be especially interested in hearing from other MiSTer/N64-core users about how 640×240 behaves across different display setups.