N64 emulation has long been held back by 2000s
era software- there have certainly been advancements over the years, but mostly built atop the
same archaic plugin system. Native ports solve that issue but they take
a lot of time and work. A full decompilation can take years- "It is done. Two years! We started this in 2019" and the ports themselves are usually separate projects taking months more. Not every game can get this treatment, with
most efforts so far focusing on the same handful of popular games that emulators did. What if there were a way to… I don’t know… magically turn an N64 ROM
into a runnable exe? Like, in a matter of minutes? While opening the door to ray tracing,
4k, widescreen, gyro, and high framerates, if it’s not too much trouble? It may sound like a late April Fool’s Day
joke, but that’s what the “static recompilation” tool made by modder Wiseguy is capable of. I thought viewers might not believe this was
real, so I asked Wiseguy to record a demonstration. A standard ROM is loaded, translated, and
ready for compiling, in mere seconds. It’s so fast, the workload doesn’t even
bother multithreading. It’s important to note that the end user
won’t have to do this- the compiled ports don’t include the original game assets,
so Wiseguy should be able to share them pre-built. You’ll be prompted to load from your own
ROM dump on first startup, similar to the current PC ports. As far as how it works, the tool converts
the N64 code into C so it can be compiled to run on a modern processor, and at runtime
the renderer translates the graphics operations to modern low level API calls- Direct3D12
on Windows and Vulkan on Linux. Wiseguy likened this to the way Valve’s
Proton compatibility layer works, and also compared it to the approach taken by the Mega
Man Legacy Collection. A decompiled port may alter the game’s source
code to make it easier to run on PC, but the translation based approach of these recomps
keeps the internal processing the same as original hardware. Wiseguy claims their method achieves near
Parallel-RDP accuracy, having created dozens of test ROMs to make sure the original lighting
and effects are correct, and I’ve seen nothing so far to suggest otherwise. Issues GlideN64 still struggles with, like
depth effects, work perfectly here without the need to configure pages of settings. Any glitches I ran into were related to the
high framerate feature and have been patched. The only suspected bugs otherwise, like this
tearing effect when the screen shrinks, turned out to be accurate behavior, though the effect
was fixed anyway for good measure. I didn't experience a single crash or stability
issue. There was a game ending bug involving a lot
of head stepping, but that's a known issue within the game itself. That said, the automated process isn’t perfect
and the recomps usually require manual fixes for things like modern hardware speeds being
way faster than expected. But the amount of time and work needed to
patch them up pales in comparison to a full decompilation and port process- while the
Majora’s Mask repo is still inching towards completion, Wiseguy claims to have had a fully
playable port as early as February 2023- and it only took two days to make. The time since was spent on polishing the
recompilation process and various enhancements. In no way does this render decompilation and
traditional porting obsolete- the recomp code is not readable, so having fully reverse engineered
source code is a big help for modding and patching even when using this tool. Part of the reason Majora’s Mask only took
two days is that there was a decompilation to reference. But of course, the point is that you don’t
need a decompilation to create a port anymore, opening the door to the most obscure games
running natively on PC. Wiseguy’s first successful recomp test was
Rocket: Robot on Wheels, a game I had never even heard of before, but that now has a port
thanks to this tool. Even Superman 64- a direct affront to God-
has a port thanks to this tool. That’s not a joke! This piece of shit is on PC! Testing has been limited to a handful of games
so far, but Wiseguy expects the tool to generally work with the full N64 library. The exceptions will be games with custom microcodes-
for Majora’s Mask, the lighting microcode was already understood well enough to be implemented
in its port. For other and less documented microcodes,
ports could still work but in LLE mode, which would mean sacrificing the major enhancements
like ray tracing and high framerates. Speaking of- major enhancements, like ray
tracing and high framerates. These come courtesy of Dario’s RT64 renderer;
you may know Dario from his excellent Mario 64 ray tracing fork. When preparing to bring RT64 to Ocarina of
Time he realized that he could carry his work over to an emulator plugin and deliver his
enhancements to many games at once. From there, Wiseguy’s experimental recomp
tool allowed RT64 to bypass emulators altogether. Some of the screenshots Dario has been sharing
for the RT plugin were secretly from recomp ports instead. That emulator plugin is still planned for
release, but the recomps will be less restricted when it comes to enhancement potential. And in specific ways, the recomps will be
less restricted than the current PC ports. I’m a big fan of Ship of Harkinian, so I
don’t mean to disparage it in any way- it’s a great port with amazing features and compatibility,
but its use of older APIs and reliance on the CPU for processing vertices creates roadblocks
for certain enhancements. RT64 relies much more heavily on the GPU,
taking advantage of compute shaders and low level APIs to make enhancements easier. High framerates are achieved with the game
logic running at 20fps, but instead of sending commands as draw calls right away, the full
frame data is recorded and queued for the renderer- that difference is apparently critical
to everything RT64 does. The queued frames are checked for matching
draw calls, and then the renderer creates the additional frames between them. In the event the renderer gets something wrong,
specific animations can be tagged with IDs that tell the renderer how to do it right. The results are extremely smooth. The animations don’t look out of place to
me (as they often can at higher rates) and even the texture scrolling effects for fire
and water are interpolated- without this, the game action and 2D effects can be wildly
mismatched. Model replacements will also be done at the
render stage, not unlike RTX remix, so modern formats can be used and there’s no danger
of the game exploding due to a larger than expected file, since it’s internally using
the original assets. Much like MY BODY, ultrawide aspect ratios
are supported and mostly work well. The 3D cone for song effects was patched to extend beyond the 4:3 window, though the camera still clips through the landscape during some
cutscenes. There's support extensive modding, and
it should be possible to port existing ROMhacks over- the Zelda games will support gyro aiming,
D-pad mappings and widescreen HUD placements out of the box. Majora’s Mask also has an auto-save mode,
which hijacks the owl slot to intermittently back up your progress. Everything is saved but your location, so
you can quit as soon as the icon appears. Here I’ve closed the recomp just at the
end of the laborious Don Gero quest, and picked right back up where I left off. The last auto-save loads at startup by default,
though you can still choose the song of time saves using the “rewind” button. Using an owl statue will overwrite the autosave,
and like the 3DS version these are permanent. You could rely on this system entirely if
you want a more modern experience, but you’re free to disable it and play the original way. Everybody wins. The recomp also has corrected timings to keep
the Giant’s sequence from finishing before the music. These ports have been designed from the ground
up to have low latency and no stuttering, using an ubershader approach similar to Dolphin. It’s unbelievable how fluid and smooth Majora’s
Mask is every step of the way- from the pause menu to the pictobox, there’s no hanging
or delay in any of the usual places. The audio is also deserving of praise, with
excellent clarity and no crackling or timing issues. Wiseguy rewrote the audio system three times
to get a satisfactory result and didn’t take the shortcuts with frame pacing that
most audio plugins have, resulting in the clearest N64 sound quality I’ve heard: After years of fiddling with plugins and still
getting bad results, it’s a relief for the sound to just work, and to work this well. The existence of this recomp shouldn’t dampen
anyone’s enthusiasm for the decompilation-based port that’s coming. Ship of Harkinian aims for a different experience,
crafted with the help of speedrunners and people familiar with all of the game’s quirks
and absolutely loaded with options to customize each and every one of them. The Majora’s Mask port should offer the
same depth, as well as lower hardware requirements. The recomps are streamlined for simplicity-
the interface is restrained to get you into the game with minimal fuss, more like an official
release. These are very much focused on playing rather
than tinkering, so there’s room enough for two ports to coexist. Majora’s Mask is the only recomp launching
now, but Ocarina of Time will be added soon. The plan is for sequels, like the Zeldas or
Banjo games, to be combined together in one launcher. Some features, like DLSS, custom textures,
free cameras, and of course ray tracing will arrive in upcoming builds. I didn’t get a chance to go hands-on with
an RT build, but everything I’ve seen gels with the 64 graphics surprisingly well, and
the results are worlds apart from ReShade’s RT. Zelda’s time of day systems especially take
on a new realism when you can actually see the sun casting shadows on the landscape. There are even more possible enhancements
Dario would like to bring afterward, but the roadmap is already too full to mention anything
else. The emulator plugin likely won’t be ready
until late this year but it should offer a great sampling of Dario’s RT work until
more recomps arrive. The RT64 library is shared between recomps
and the plugin, so any- I’m sorry, he put ray tracing in this... This piece of shit! …So any fixes or updates made for one branch
will benefit the other. The plugin can theoretically be integrated
into Ship of Harkinian as a rendering backend as well, though a lot of tech details would
have to be worked out first. Even without the fancy enhancements, this
is a monumental step forward for keeping the full N64 platform accessible and should
vastly improve the playability of many games. It’s yet another testament to the ingenuity
of the fan community and the ever-escalating level of quality it delivers for retro gaming. Wiseguy is only able to do so much, so his
hope is for other modders to take the tool into their own hands and do recomps from here. If you’ve always wanted a certain game on
PC and know how to COMPUTER, this could be your chance. The recomp is linked below, and again, you’ll
need to provide a US ROM of your own to use it. Whether you own a physical or digital version
of the game, this is easily done. And because there’s a native Linux version
it can easily run on a Deck- no Protoning required. If you want to learn more about recomps or
RT64- and you should- check out the official trailer from Wiseguy, as well as RT64’s
development history on TWITTERI’mNotCallingItX Barf! Koolooh Limpah! SUPERMAN, in short time your fate will be sealed, SUPERMAN. SUPERMAN, in short time your SUPERMAN will be sealed, SUPERMAN. SUPERMAN. SUPERMAN, in short time your SUPERMAN will be SUPERMAN. Piece of shit! SUPERMAN