Recompilation: An Incredible New Way to Keep N64 Games Alive

Nerrel
10 May 202411:13

Summary

TLDRThe video script discusses a revolutionary tool developed by modder Wiseguy, which transforms N64 ROMs into executable files for modern processors in seconds. This 'static recompilation' method not only preserves the original game's processing but also opens up possibilities for enhancements like ray tracing, 4k resolution, widescreen support, and high framerates. The tool, which converts N64 code into C, is set to make a significant impact on retro gaming by allowing even obscure games to run natively on PCs. Wiseguy's demonstration showcases the tool's effectiveness, with near-Parallel-RDP accuracy and minimal glitches. The script also highlights the potential for extensive modding and the tool's compatibility with Linux, including the ability to run on a Steam Deck without needing Proton. The video concludes by encouraging other modders to use this tool to bring more N64 games to PC.

Takeaways

  • 🚀 **Static Recompilation Tool**: A tool by modder Wiseguy can convert N64 ROMs into runnable executables in seconds, opening up possibilities for enhanced N64 games on PC.
  • 📚 **No Need for Decompilation**: The new method doesn't require full decompilation, which traditionally takes years, allowing for quicker porting of games.
  • 💻 **Modern Hardware Compatibility**: The tool translates N64 code into C, making it compatible with modern processors and enabling features like ray tracing, 4k resolution, and high framerates.
  • 📈 **Performance Improvements**: The recompilation process is fast and efficient, not requiring multithreading for the workload, and can produce a fully playable port in a short time.
  • 📦 **Pre-built Ports**: End users won't need to compile games themselves as the ports do not include original game assets, allowing for pre-built sharing by Wiseguy.
  • 🔍 **High Accuracy**: The method claims to achieve near-Parallel-RDP accuracy, ensuring original lighting and effects are preserved without extensive settings configuration.
  • 🔩 **Modding and Patching**: While the recomp code is not human-readable, having fully reverse-engineered source code is beneficial for modding and patching, even when using this tool.
  • 🧩 **Enhanced Features**: The ports are designed to support extensive modding, including auto-save modes, gyro aiming, D-pad mappings, and widescreen HUD placements.
  • 📉 **Lower Latency**: The recompilation process focuses on low latency and smooth gameplay, using an ubershader approach for a fluid experience.
  • 🎶 **Improved Audio Quality**: The audio system was rewritten multiple times for clarity, resulting in high-quality sound without common issues like crackling or timing problems.
  • 🌟 **Community Contribution**: Wiseguy encourages other modders to use the tool for recompilation, potentially bringing many more N64 games to PC natively.

Q & A

  • What has been the primary challenge in N64 emulation?

    -The primary challenge in N64 emulation has been the outdated software from the 2000s era, which has been built on an archaic plugin system, making it difficult to achieve compatibility and performance on modern systems.

  • What does the term 'static recompilation' refer to in the context of the script?

    -Static recompilation refers to a process developed by modder Wiseguy that can convert an N64 ROM into a runnable executable file in a matter of minutes, which is significantly faster than traditional decompilation and porting methods.

  • How does the recompilation tool by Wiseguy differ from a full decompilation?

    -The recompilation tool by Wiseguy differs from a full decompilation in that it translates the N64 code into C for modern processors and uses modern low-level API calls for graphics operations, while keeping the internal processing similar to the original hardware. It does not require the end user to handle the original game assets.

  • What are some of the enhancements that come with the recompilation tool?

    -The recompilation tool opens the door to enhancements such as ray tracing, 4k resolution, widescreen support, gyroscopic controls, and high framerates for N64 games.

  • How does the recompilation tool handle the game's original assets?

    -The compiled ports created by the recompilation tool do not include the original game assets. Instead, users are prompted to load from their own ROM dump on the first startup, similar to current PC ports.

  • What is the significance of the 'low latency' and 'no stuttering' design in the recompilation tool?

    -The significance of the 'low latency' and 'no stuttering' design is to ensure that the gameplay experience is smooth and fluid, with no delays or interruptions, which is crucial for maintaining the quality of the gaming experience.

  • What is the role of Dario's RT64 renderer in the recompilation process?

    -Dario's RT64 renderer is used to provide major enhancements to the recompiled games, such as ray tracing and high framerates. It relies heavily on the GPU, using compute shaders and low-level APIs to make these enhancements possible.

  • What are some of the limitations of the recompilation tool?

    -The recompilation tool may not work as effectively with games that have custom microcodes, which could require a different approach or limit the enhancements available. Additionally, the recomp code is not readable, which means that having fully reverse-engineered source code is still beneficial for modding and patching.

  • How does the recompilation tool affect the modding community?

    -The recompilation tool empowers the modding community by providing a streamlined method to create ports of N64 games for PC. It allows modders to focus on enhancements and polishing, rather than the laborious process of full decompilation and porting.

  • What is the process for users to use the recompilation tool?

    -Users need to provide a US ROM of their own to use the recompilation tool. The tool is designed to be user-friendly, with a restrained interface that allows users to get into the game with minimal fuss.

  • What are some of the future enhancements planned for the recompilation tool?

    -Future enhancements for the recompilation tool include support for DLSS, custom textures, free cameras, and further improvements to ray tracing. These enhancements aim to improve the visual quality and gameplay experience of N64 games on PC.

  • How does the recompilation tool compare to the emulator plugin that is planned for release?

    -While the emulator plugin is still in development and will offer a sampling of Dario's RT work, the recompilation tool allows for a more direct and unrestricted approach to enhancing and playing N64 games on PC, without the need for an emulator.

Outlines

00:00

🚀 N64 Emulation Breakthrough with Static Recompilation

The paragraph discusses the limitations of N64 emulation due to outdated software and the time-consuming process of native porting. It introduces a new tool by modder Wiseguy that can convert N64 ROMs into executables in seconds, opening up possibilities for enhancements like ray tracing and high framerates. The tool works by translating N64 code into C for modern processors and uses modern graphics APIs. It preserves the original game's internal processing, aiming for high accuracy in emulation. The paragraph also mentions the potential for this technology to allow ports of obscure games and the collaborative efforts between Wiseguy and Dario on the RT64 renderer for graphical enhancements.

05:02

🎮 Advanced Emulation Features and Modding Capabilities

This paragraph delves into the technical aspects of the recompilation tool's rendering process, which allows for high framerates and smooth animations. It covers how the tool records frame data and creates additional frames for smooth transitions, as well as how it supports model replacements and ultrawide aspect ratios. The paragraph also highlights the extensive modding support, including gyro aiming and widescreen HUD placements for Zelda games. It discusses the auto-save feature, low latency design, and the improved audio system. The benefits of having both decompilation-based ports and recompilation ports are mentioned, emphasizing that they cater to different experiences. The paragraph concludes with the future plans for the recompilation tool, including support for sequels and additional enhancements.

10:02

📚 User Guide and Future Prospects for N64 Recompilation

The final paragraph provides practical information on how users can utilize the recompilation tool, regardless of whether they own a physical or digital version of the game. It mentions the ease of running the native Linux version on certain devices without additional software. The paragraph encourages those interested in recomps or RT64 to seek out more information and provides a humorous, exaggerated reference to the game 'Superman 64', emphasizing the tool's capability to port even the most challenging titles.

Mindmap

Keywords

💡N64 emulation

N64 emulation refers to the process of replicating the functionality of the Nintendo 64 console on different hardware or software platforms. In the context of the video, it discusses the challenges and advancements in emulating N64 games, particularly through the use of a new tool developed by modder Wiseguy.

💡Static recompilation

Static recompilation is a technique used by the tool created by Wiseguy to convert N64 ROMs into executable files for modern processors. It is a significant innovation because it allows for quick translation of game code into a format that can take advantage of contemporary hardware capabilities, such as ray tracing and high frame rates.

💡Direct3D12 and Vulkan

Direct3D12 and Vulkan are modern low-level graphics APIs used by the recompilation tool to translate the graphics operations of N64 games for rendering on Windows and Linux respectively. They are crucial for achieving enhanced graphical features in the emulated games.

💡Ray tracing

Ray tracing is a rendering technique that simulates the physical behavior of light to produce highly realistic visuals. The video discusses how the recompilation tool opens the door for ray tracing in N64 games, which was not possible on the original hardware.

💡High frame rates

High frame rates refer to the ability of a game to run at a smooth and fast pace, typically above 60 frames per second (FPS). The video mentions that the recompilation tool allows for high frame rates, which was not achievable on the original N64 hardware.

💡Gyroscope (gyro)

A gyroscope, or gyro, is a device used for measuring or maintaining orientation and angular velocity. In the context of the video, it refers to the potential use of gyroscopic controls in emulated N64 games, providing a more modern and immersive control scheme.

💡Multithreading

Multithreading is a method where a program uses multiple threads of execution to perform tasks simultaneously. The video notes that the recompilation process is so fast that it doesn't even require multithreading, emphasizing the efficiency of the tool.

💡ROM dump

A ROM dump is a digital copy of a game cartridge's data. In the video, it is mentioned that users will be prompted to load from their own ROM dump on first startup, which is a common practice in emulation to avoid copyright issues.

💡Decompilation

Decompilation is the process of converting executable code back into a higher-level, human-readable form. The video contrasts decompilation with the static recompilation tool's method, noting that decompilation can be a time-consuming process.

💡Modding

Modding refers to the act of modifying a game by adding, removing, or changing content or functionality. The video suggests that having fully reverse-engineered source code is beneficial for modding, and the recompilation tool may facilitate this process.

💡Zelda games

The Zelda games are a popular series of action-adventure games developed by Nintendo. The video specifically mentions 'The Legend of Zelda: Majora's Mask' and 'The Legend of Zelda: Ocarina of Time' as examples of games that have been successfully emulated using the recompilation tool.

Highlights

N64 emulation has been improved with a new tool by modder Wiseguy, which allows for 'static recompilation' of N64 ROMs into runnable executables.

The recompilation process can be done in a matter of minutes, a significant reduction from the years it takes for full decompilation.

The tool opens the possibility for ray tracing, 4k resolution, widescreen, gyro controls, and high framerates for N64 games.

Wiseguy's tool converts N64 code into C language for compilation on modern processors and translates graphics operations to modern API calls like Direct3D12 and Vulkan.

The recompilation method maintains the original game's internal processing, achieving near-Parallel-RDP accuracy.

Issues like depth effects, which traditional emulators struggle with, work perfectly in the recompiled versions without needing complex settings.

The recompiled ports do not crash or have stability issues, offering a smooth gaming experience.

The recompilation process is not perfect and requires manual fixes for modern hardware speeds, but it's significantly faster than full decompilation.

Wiseguy managed to create a fully playable port of Majora’s Mask in just two days using the recompilation tool.

The recompilation tool does not make decompilation and traditional porting obsolete, as fully reverse-engineered source code is beneficial for modding.

The recompilation method allows for the porting of even the most obscure N64 games to run natively on PC.

Games with custom microcodes may require a different approach, potentially sacrificing enhancements like ray tracing and high framerates.

The RT64 renderer by Dario brings major enhancements like ray tracing and high framerates to the recompiled games.

The recompiled ports achieve high framerates by recording and queuing full frame data for the renderer, rather than immediate draw calls.

Model replacements and extensive modding support are possible with the recompiled ports, including auto-save modes and HUD enhancements.

The recompilation tool corrects timings and offers low latency, no stuttering gameplay with an ubershader approach.

The audio system in the recompiled ports has been rewritten for excellent clarity, with no crackling or timing issues.

The recompilation tool is designed for simplicity and streamlined gameplay, allowing for coexistence with more complex, modding-focused ports.

The recompilation tool is set to be used for other games in the future, with plans for features like DLSS, custom textures, free cameras, and more.

The recompilation process is a significant step forward for the N64 platform, potentially improving the playability of many games and keeping them accessible.

Wiseguy encourages other modders to use the recompilation tool to bring more N64 games to PC, providing a link for those interested.

Transcripts

00:01

N64 emulation has long been held back by 2000s era software- there have certainly been advancements

00:06

over the years, but mostly built atop the same archaic plugin system.

00:10

Native ports solve that issue but they take a lot of time and work.

00:13

A full decompilation can take years-

00:17

"It is done. Two years! We started this in 2019"

00:21

and the ports themselves are usually separate projects taking months more.

00:24

Not every game can get this treatment, with most efforts so far focusing on the same handful

00:28

of popular games that emulators did.

00:31

What if there were a way to…

00:32

I don’t know… magically turn an N64 ROM into a runnable exe?

00:36

Like, in a matter of minutes?

00:38

While opening the door to ray tracing, 4k, widescreen, gyro, and high framerates,

00:42

if it’s not too much trouble?

00:44

It may sound like a late April Fool’s Day joke, but that’s what the “static recompilation”

00:48

tool made by modder Wiseguy is capable of.

00:50

I thought viewers might not believe this was real, so I asked Wiseguy to record a demonstration.

00:56

A standard ROM is loaded, translated, and ready for compiling, in mere seconds.

01:00

It’s so fast, the workload doesn’t even bother multithreading.

01:03

It’s important to note that the end user won’t have to do this- the compiled ports

01:08

don’t include the original game assets, so Wiseguy should be able to share them pre-built.

01:12

You’ll be prompted to load from your own ROM dump on first startup, similar to the

01:15

current PC ports.

01:18

As far as how it works, the tool converts the N64 code into C so it can be compiled

01:22

to run on a modern processor, and at runtime the renderer translates the graphics operations

01:27

to modern low level API calls- Direct3D12 on Windows and Vulkan on Linux.

01:32

Wiseguy likened this to the way Valve’s Proton compatibility layer works, and also

01:36

compared it to the approach taken by the Mega Man Legacy Collection.

01:39

A decompiled port may alter the game’s source code to make it easier to run on PC, but the

01:44

translation based approach of these recomps keeps the internal processing the same as

01:48

original hardware.

01:49

Wiseguy claims their method achieves near Parallel-RDP accuracy, having created dozens

01:53

of test ROMs to make sure the original lighting and effects are correct, and I’ve seen nothing

01:57

so far to suggest otherwise.

01:59

Issues GlideN64 still struggles with, like depth effects, work perfectly here without

02:03

the need to configure pages of settings.

02:06

Any glitches I ran into were related to the high framerate feature and have been patched.

02:10

The only suspected bugs otherwise, like this tearing effect when the screen shrinks, turned

02:14

out to be accurate behavior, though the effect was fixed anyway for good measure.

02:18

I didn't experience a single crash or stability issue.

02:22

There was a game ending bug involving a lot of head stepping, but that's a known issue

02:26

within the game itself.

02:27

That said, the automated process isn’t perfect and the recomps usually require manual fixes

02:31

for things like modern hardware speeds being way faster than expected.

02:35

But the amount of time and work needed to patch them up pales in comparison to a full

02:39

decompilation and port process- while the Majora’s Mask repo is still inching towards

02:44

completion, Wiseguy claims to have had a fully playable port as early as February 2023-

02:48

and it only took two days to make.

02:51

The time since was spent on polishing the recompilation process and various enhancements.

02:56

In no way does this render decompilation and traditional porting obsolete- the recomp code

03:00

is not readable, so having fully reverse engineered source code is a big help for modding and

03:05

patching even when using this tool.

03:07

Part of the reason Majora’s Mask only took two days is that there was a decompilation

03:10

to reference.

03:11

But of course, the point is that you don’t need a decompilation to create a port anymore,

03:16

opening the door to the most obscure games running natively on PC.

03:19

Wiseguy’s first successful recomp test was Rocket: Robot on Wheels, a game I had never

03:24

even heard of before, but that now has a port thanks to this tool.

03:27

Even Superman 64- a direct affront to God- has a port thanks to this tool.

03:33

That’s not a joke!

03:35

This piece of shit is on PC!

03:37

Testing has been limited to a handful of games so far, but Wiseguy expects the tool to generally

03:41

work with the full N64 library.

03:43

The exceptions will be games with custom microcodes- for Majora’s Mask, the lighting microcode

03:48

was already understood well enough to be implemented in its port.

03:51

For other and less documented microcodes, ports could still work but in LLE mode, which

03:56

would mean sacrificing the major enhancements like ray tracing and high framerates.

04:00

Speaking of- major enhancements, like ray tracing and high framerates.

04:04

These come courtesy of Dario’s RT64 renderer; you may know Dario from his excellent Mario

04:09

64 ray tracing fork.

04:11

When preparing to bring RT64 to Ocarina of Time he realized that he could carry his work

04:15

over to an emulator plugin and deliver his enhancements to many games at once.

04:20

From there, Wiseguy’s experimental recomp tool allowed RT64 to bypass emulators altogether.

04:25

Some of the screenshots Dario has been sharing for the RT plugin were secretly from recomp

04:30

ports instead.

04:31

That emulator plugin is still planned for release, but the recomps will be less restricted

04:35

when it comes to enhancement potential.

04:37

And in specific ways, the recomps will be less restricted than the current PC ports.

04:41

I’m a big fan of Ship of Harkinian, so I don’t mean to disparage it in any way- it’s

04:45

a great port with amazing features and compatibility, but its use of older APIs and reliance on

04:50

the CPU for processing vertices creates roadblocks for certain enhancements.

04:54

RT64 relies much more heavily on the GPU, taking advantage of compute shaders and low

04:59

level APIs to make enhancements easier.

05:01

High framerates are achieved with the game logic running at 20fps, but instead of sending

05:06

commands as draw calls right away, the full frame data is recorded and queued for the

05:10

renderer- that difference is apparently critical to everything RT64 does.

05:15

The queued frames are checked for matching draw calls, and then the renderer creates

05:18

the additional frames between them.

05:19

In the event the renderer gets something wrong, specific animations can be tagged with IDs

05:24

that tell the renderer how to do it right.

05:27

The results are extremely smooth.

05:31

The animations don’t look out of place to me (as they often can at higher rates) and

05:34

even the texture scrolling effects for fire and water are interpolated- without this,

05:38

the game action and 2D effects can be wildly mismatched.

05:42

Model replacements will also be done at the render stage, not unlike RTX remix, so modern

05:46

formats can be used and there’s no danger of the game exploding due to a larger than

05:50

expected file, since it’s internally using the original assets.

05:54

Much like MY BODY, ultrawide aspect ratios are supported and mostly work well.

05:59

The 3D cone for song effects was patched to extend beyond the 4:3 window, though the camera

06:03

still clips through the landscape during some cutscenes.

06:06

There's support extensive modding, and it should be possible to port existing ROMhacks

06:10

over- the Zelda games will support gyro aiming, D-pad mappings and widescreen HUD placements

06:15

out of the box.

06:16

Majora’s Mask also has an auto-save mode, which hijacks the owl slot to intermittently

06:21

back up your progress.

06:23

Everything is saved but your location, so you can quit as soon as the icon appears.

06:26

Here I’ve closed the recomp just at the end of the laborious Don Gero quest, and picked

06:31

right back up where I left off.

06:32

The last auto-save loads at startup by default, though you can still choose the song of time

06:37

saves using the “rewind” button.

06:39

Using an owl statue will overwrite the autosave, and like the 3DS version these are permanent.

06:44

You could rely on this system entirely if you want a more modern experience, but you’re

06:47

free to disable it and play the original way.

06:50

Everybody wins.

06:52

The recomp also has corrected timings to keep the Giant’s sequence from finishing before

06:55

the music.

07:05

These ports have been designed from the ground up to have low latency and no stuttering,

07:09

using an ubershader approach similar to Dolphin.

07:11

It’s unbelievable how fluid and smooth Majora’s Mask is every step of the way- from the pause

07:16

menu to the pictobox, there’s no hanging or delay in any of the usual places.

07:21

The audio is also deserving of praise, with excellent clarity and no crackling or timing

07:25

issues.

07:26

Wiseguy rewrote the audio system three times to get a satisfactory result and didn’t

07:30

take the shortcuts with frame pacing that most audio plugins have, resulting in the

07:34

clearest N64 sound quality I’ve heard:

07:48

After years of fiddling with plugins and still getting bad results, it’s a relief for the

07:52

sound to just work, and to work this well.

07:56

The existence of this recomp shouldn’t dampen anyone’s enthusiasm for the decompilation-based

08:00

port that’s coming.

08:02

Ship of Harkinian aims for a different experience, crafted with the help of speedrunners and

08:06

people familiar with all of the game’s quirks and absolutely loaded with options to customize

08:10

each and every one of them.

08:11

The Majora’s Mask port should offer the same depth, as well as lower hardware requirements.

08:14

The recomps are streamlined for simplicity- the interface is restrained to get you into

08:19

the game with minimal fuss, more like an official release.

08:22

These are very much focused on playing rather than tinkering, so there’s room enough for

08:25

two ports to coexist.

08:27

Majora’s Mask is the only recomp launching now, but Ocarina of Time will be added soon.

08:32

The plan is for sequels, like the Zeldas or Banjo games, to be combined together in one

08:36

launcher.

08:37

Some features, like DLSS, custom textures, free cameras, and of course ray tracing will

08:41

arrive in upcoming builds.

08:43

I didn’t get a chance to go hands-on with an RT build, but everything I’ve seen gels

08:46

with the 64 graphics surprisingly well, and the results are worlds apart from ReShade’s

08:51

RT.

08:52

Zelda’s time of day systems especially take on a new realism when you can actually see

08:56

the sun casting shadows on the landscape.

08:59

There are even more possible enhancements Dario would like to bring afterward, but the

09:02

roadmap is already too full to mention anything else.

09:05

The emulator plugin likely won’t be ready until late this year but it should offer a

09:08

great sampling of Dario’s RT work until more recomps arrive.

09:12

The RT64 library is shared between recomps and the plugin, so any-

09:16

I’m sorry, he put ray tracing in this...

09:19

This piece of shit!

09:20

…So any fixes or updates made for one branch will benefit the other.

09:24

The plugin can theoretically be integrated into Ship of Harkinian as a rendering backend

09:28

as well, though a lot of tech details would have to be worked out first.

09:31

Even without the fancy enhancements, this is a monumental step forward for keeping the

09:35

full N64 platform accessible and should vastly improve the playability of many games.

09:40

It’s yet another testament to the ingenuity of the fan community and the ever-escalating

09:44

level of quality it delivers for retro gaming.

09:47

Wiseguy is only able to do so much, so his hope is for other modders to take the tool

09:50

into their own hands and do recomps from here.

09:53

If you’ve always wanted a certain game on PC and know how to COMPUTER, this could be

09:56

your chance.

09:58

The recomp is linked below, and again, you’ll need to provide a US ROM of your own to use

10:02

it.

10:03

Whether you own a physical or digital version of the game, this is easily done.

10:06

And because there’s a native Linux version it can easily run on a Deck- no Protoning

10:10

required.

10:12

If you want to learn more about recomps or RT64- and you should- check out the official

10:17

trailer from Wiseguy, as well as RT64’s development history

10:20

on TWITTERI’mNotCallingItX

10:24

Barf!

10:25

Koolooh Limpah!

10:46

SUPERMAN, in short time your fate will be sealed,

10:49

SUPERMAN.

10:53

SUPERMAN, in short time your SUPERMAN will be sealed,

10:57

SUPERMAN.

11:00

SUPERMAN.

11:01

SUPERMAN, in short time your SUPERMAN

11:04

will be SUPERMAN.

11:06

Piece of shit!

11:07

SUPERMAN

Rate This

5.0 / 5 (0 votes)

Related Tags
N64 EmulationStatic RecompilationWiseguyRay TracingHigh FrameratesGyro ControlsDirect3D12VulkanModdingGame PortingFan Community