Skip to main content

Hands-on with a fully ray traced version of Super Mario 64

The reverse-engineered PC port gets a shiny upgrade.

The arrival of hardware-accelerated ray tracing has seen developers mostly adopt a hybrid approach, combining standard rasterisation techniques with carefully deployed RT features. Fully ray traced games are few and far between, but revisiting decades-old classics and delivering them with a full RT upgrade is within the power envelope of today's graphics hardware. We've already seen Quake 2 RTX and today we can reveal early work on a fully ray traced version of the N64 classic, Super Mario 64.

The embedded video below shows over half an hour of gameplay taken from an early technical preview of Super Mario 64 RT, a PC-based revamp of the game that replaces all of the lighting and the reflections in the game with RT effects. We've got a somewhat special build of the game, built from source code provided by author Daríosamo with additional elements provided by Render96, a project that aims to improve models and textures in Super Mario 64 with a view to matching the kind of pre-rendered SGI aesthetic seen in pre-release Nintendo 64 renders. The SMT64RT project goes public today with a technical preview available to download.

Alex Battaglia and John Linneman get to grips with an early build of SM64RT - a fully ray traced version of the Nintendo classic, here running on a PC with an RTX 3090.Watch on YouTube

First up, a word on the origins of the PC port of Super Mario 64. The original N64 title was decompiled and source code made available, resulting in a number of ports for various platforms, including - ironically - Nintendo Switch. As it's open source, contributors are welcome to launch their own forks and add functionality to the game, which is exactly what Darío has done here with his ray traced version. In terms of legalities, the source code is readily available, and it's only compiled executables that tend to incur the wrath of Nintendo. It's perfectly possible to play a very good PC port of Super Mario 64 and this new RT alternative, but you'll have to compile the code yourself.

The ray traced version of Super Mario 64 is very early on in development and sees the developer replacing the entire lighting system with an RT rendition that delivers full real-time global illumination with very convincing light bounce, right down to shades Mario's costume shading his skin. RT shadows are also added as a matter of course, but the original 2D bitmap shadows are also retained - as they were originally placed by Nintendo for gameplay purposes. Beyond that, some of the original game's scenery elements were originally 2D bitmaps which aren't a good fit for ray tracing. This is where the Render96 project makes a difference in our build, so aspects of the game including trees now receive full 3D models, designed to mimic the SGI renders of the time period and reminiscent of the style seen in shows of the era, like Reboot.

Although it's still early days for the project, a lot of work has already gone in, to the point where the levels have needed to have new light sources manually placed to make RT lighting work. On the exterior front, the major light source is, of course, the sun - effectively a large, very light sphere placed into the sky. In addition to lighting the scene, that also means that sun shadows are accurately rendered, their softness dependent on the size of the sphere, essentially. Materials are tagged according to their reflectivity, and it's possible to see RT reflections that are both subtle or mirror-like on the other extreme. Transparent water and portal reflections though? No problem.

Alongside Quake 2 RTX, SM64RT is a fascinating way to revitalise an old game using the latest cutting edge rendering technologies. There were some announced plans from Nvidia that that would have seen Lightspeed Studios upgrade more older PC titles to full RT status - we've not heard much about this for some time now, but fingers crossed we'll see more on this in the fullness of time.

Read this next