Detailing

Let’s discover the PC “port” of Ocarina Of Time

In November 2021, a team of Zelda 64 Reverse Engineering fans – having passed two years about the project – revealed that they had painstakingly recreated the entire The Legend of Zelda: Ocarina of Time. Now, only a few months later, we have a good look at one of the main goals of this project: a proper PC port of the game.

How is that different from anyone playing the game on a PC now through emulation? This game is Nintendo’s original code for a console from the 90s, with the emulator basically translating it so it can run on a modern PC. This code, having been reverse engineered, was designed entirely to run on a PC, for a PC.

This means for fans that they will be able to play a version of the game that is at home on the platform. This port, for example – made by zel and vertigo – supports widescreen and scaling, and it also opens the door for substantial mods to be made for it. Also please note the end of the video, where they show the Water Temple reflections working perfectly.

There are, however, a few pitfalls. First of all, it’s unclear how legal this all is, which, given that we’re talking about Nintendo, is a big deal. Here’s what I wrote about this riddle the last time we saw it, after fans reverse-engineered it Super Mario 64:

These fans have…rebuilt the game’s entire code – albeit “using modern coding languages” – from scratch, to the point where it functions identically to the original. This means that we expect technically they didn’t do anything illegal. How legally certain this is remains to be seen, but for reference, reverse engineering Super Mario 64 the code is still available at its source, although Nintendo is pursuing some projects built from this code.

The second is that you might naturally watch that video above and think it’s still running pretty slow for a game that’s been reverse-engineered specifically for the PC. Turns out there’s a pretty good technical explanation for this, summarized by mvit:

The n64 version operates at three frame rates, 60 fps for the pause screen, 30 fps for the title screen, and 20 fps for the outside world. Through decomposition, we found what controls the game speed, so in theory 60 fps is already possible.

The problem is really that the NPC routines and some of the link move sets (sword swipe, hook, backflips, front flips) all calculate their distance based on frame rate. So at 60 fps the link simply triples its jump distance, hook distance, etc.

60fps will then be realistic once these functions are properly documented and a nice workaround is found to counter these results.

So fixes will come – it’s a work in progress – but they haven’t been made Again. If you want to know more about the effort, there are some links in the description of the YouTube video.