If you’ve ever wondered how far a Super Nintendo could be pushed, today’s startling reveal of a brand new SNES cartridge hack created by a single engineer is for you. See: the SuperRT chip, a proof of concept of how the 90s “SuperFX” idea would have worked with unlimited budgets.
As developed by Ben Carter, an engineer with credits for programming games in game series such as Harry Potter, FIFA, and even the 3DS port of Star Fox 64the SuperRT project delivers pure ray tracing performance on existing unmodified SNES hardware. While the SuperRT looks rather impractical as a home project, with wires sticking out in all directions, you could slap it into any store bought SNES, then watch it manage light, reflections, and shadows in real-time without grating. It can also generate 3D shapes, such as spheres and faces, and then additive cutting to create custom shapes.
The result is a remarkable ’90s-looking CGI demonstration, with curves and planes added and subtracted from each other, while smothered in large strips of primary colors. This is all the stuff of intense math calculations, not high-res texture cheating made possible by an abundance of VRAM. But even without realistic textures or smooth color transitions, the realistic light reflection results and accurate reflections (including effects such as inverted concave mirrors) make the scene look particularly vivid.
“The SNES is in the driver’s seat”
Carter’s demo sequence includes a real-time demonstration of moving the in-game camera wherever he wants, then grabbing and moving the demo’s only light source, a sun in the sky, to prove that all of its lighting is in takes place in real time. The demo runs at about 20 fps, slightly faster than the original Star Fox, while Carter says that even if his demo were more optimized, the results wouldn’t get blazingly fast: “The SNES can’t render DMA screen content faster than 30fps.”
All of these math calculations are powered by Carter’s frankensteine attaching an FPGA board to an old SNES pattern board, which is powered by a Cyclone V FPGA (the same processor found in many commercial FPGA products, especially Analogue’s 1080p series. console recreations). He claims that “most of the work” in the RT calculations is driven by three parallel execution cores on the FPGA, each running at 50 MHz – an order of magnitude higher than any processor in the SNES or an original SuperFX chip. Carter also chose to disable the Cyclone V’s ARM core “to keep the broad spirit of 90s technology.”
While the FPGA board is capable of generating 24-bit color depth for display, the results are translated to the SNES as a 256-color rasterized input: “Smooth shadows don’t always appear well, even with dithering added,” “Admits Carter. That board runs at 3.3v, so Carter had to implement breadboards and wires to shift the level between it and the 5v SNES. His setup also splits up to display debugging information over HDMI, and that visual feed becomes funnily enough, controlled with a Sega Genesis controller, as Carter found that kind of controller could be more easily plugged directly into a De-10 Nano FPGA board.
“The SNES is firmly in the driver’s seat here,” Carter notes, but the FPGA expansion card still largely picks up where the SNES left off in the 90s, especially in terms of managing light and shadow effects that aren’t are pre-calculated. While Carter doesn’t estimate whether a chip of this size would have been possible during the SNES heyday, it’s reasonable to believe that issues like cartridge size, power consumption, and cooling in the middle of the time may have been prohibitive in terms of processor technology. 1990 – which does not explain the likely enormous cost of three microprocessors at such speeds.
For even more technical details on how Carter brought about the project – which he admits like a lark, just to learn how FPGA programming works – be sure to read his extensive blog post on the project.
Ad image by Ben Carter