I don’t have a first memory of The Legend of Zelda: Ocarina of Time because It’s been in my life for as long as I can remember. Before I had the coordination to play the game myself, I would watch my older brothers play it for hours on end. When I could finally play through it myself, it felt like flying.
I chase that dopamine hit once every year or two by playing through Ocarina of Time, which normally requires dusting off my old GameCube and hoping the disk isn’t too scratched to read. But for the last several months, I haven’t been playing Ocarina of Time on a Nintendo console at all. Instead, I’ve been playing it on something called Ship of Harkinian: an unofficial port of Ocarina of Time for PC that a few short years ago would have been unimaginable.
For decades now, Nintendo has graciously indulged my — and other players’ — love of Ocarina of Time by re-releasing the much-celebrated game on every one of their home consoles since the Nintendo 64. In a way, these official ports have allowed the game to grow with me. But not all ports are created equal. Ocarina of Time’s most recent re-release as part of the Nintendo Switch Online collection was, in a word, abysmal.
Finding ways to play the game elsewhere has been dicey at best. Before Ship, running the game on a PC required using an emulator to mimic a Nintendo console’s hardware. Emulators are notoriously finicky, sometimes dramatically affecting gameplay. But building a native, non-emulated port would require access to Ocarina of Time’s source code — the human-readable code written by the developers who created it.
This poses a serious problem, because Ocarina of Time’s source code is kept strictly between God and Nintendo. For mere mortals, the only insight into the inner workings of Ocarina of Time is the near-unintelligible binary compiled from the source code and loaded onto the game’s cartridge. That’s where something called decompilation comes in.
Decompilation is a form of reverse engineering in software. Like starting at the end of a maze and working backwards, a decompilation enthusiast writes new code based on the compiled binary of the program they’re trying to match. Instead of making guesses about how the original source code looked, all they need to do is make sure the new code compiles to the same binary. Once they’ve accomplished that, their new code — which likely looks very different from the original — can be treated like source code, open to tweaks, improvements, and recompilation.
This can be an incredibly arduous, time-consuming process, especially for a large program like a video game. But Ocarina of Time‘s fan base is devoted, and in 2020 a group of those fans under the name Zelda Reverse Engineering Team (ZeldaRET for short) announced their intention to decompile the entire game, along with several other entries in the franchise. For the first time in more than two decades, a fan-made PC port felt like it was in reach, but ZeldaRET had no such plans. The entirely volunteer-based group is made up mostly of speedrunners and modders with no intention of porting the games they successfully decompile (a fact they make explicit numerous times on their website).
And who can blame them? While software reverse engineering enjoys marginal legal protection, porting games that someone else developed is a litigation minefield, and Nintendo is notoriously hawkish when it comes to defending their intellectual property. Moreover, ZeldaRET’s stated goal is increased understanding and preservation of the classic games, the need for which is becoming more and more apparent in the video game industry, and which doesn’t require a risky porting effort to accomplish.
But unlike Nintendo, all of ZeldaRET’s code is open-source. A publicly available code base and a deeply dedicated fandom made it almost inevitable for a port to be attempted, legally risky or not.
Industrious Zelda fans Jack Walker and Kenix took up the challenge. In June of 2020, with the decompilation project at only 17 percent completion, the two began trading ideas for a port based on the growing code base. In November 2021, after accumulating a team of volunteer developers, the first real port build was started. And in March of this year, four months after successful decompilation and 23 years after Ocarina of Time’s initial release, the OoT PC port — now called Ship of Harkinian in reference to the ill-conceived and oft-memed CD-i Zelda games — was made available to the public.
So can anyone go on Ship of Harkinian’s Discord and download the full game? No, that would be piracy, and Ship’s developers are strictly anti-piracy. What you’ll find instead on their downloads page is a sort of shell of the game, with all of the decompiled game mechanics and logic ready to go, but none of the copyright-protected assets like character models, level maps, or music that make the game playable.
Upon downloading, the user needs to “build” the port by feeding Ship a specific ROM file of the original game — basically a copy of the binary found on the game cartridge or disk — from which the port pulls those assets. This means that the only legitimate way of running Ship of Harkinian requires owning a version of Ocarina of Time and having the tools and know-how to interface it with a program running on your PC. That’s not an easy task, but it’s a worthwhile one, because the final product is a thing of beauty.
Once built, opening Ship of Harkinian yields a familiar scene for Zelda fans: a solitary hill lit by a setting moon and rendered in nostalgically primitive 3D graphics. Sentimental chords are struck on a surprisingly faithful sampled piano; a familiar figure rides a familiar horse across the screen.
This title screen is exactly what you would see on an official version of the game. In fact, the experience from here on out is exactly what you would expect from the original game, albeit with native high-definition output, widescreen compatibility, complete stability, and impressively minuscule input lag.
But to really dig into Ship of Harkinian, you need to dive into the settings bar. There, you’ll find cosmetic options, game enhancements, cheats, and scores of other features lovingly built out by an active and talented volunteer development team.
When I play, the game runs at a smooth 60fps, three times the original’s choppy frame rate. Link’s tunic is light blue to match his updated palette from Breath of the Wild. The climbing and block-pushing speed are increased to soften the game’s more tedious puzzle mechanics, and I can use the extra buttons on my gamepad to equip more items, reducing time spent pausing and unpausing for equipment swaps. There are dozens of other small changes and updates that make the aging game feel positively spry again, and there are even more to look forward to with future releases.
But what of the sleeping bear Nintendo? It could be only a matter of time before the whole project is forced underground by a single memo from their prodigious legal team. Under modern copyright law, rights-holders can wield near limitless power over their work; just the perception of copyright infringement is enough to unleash a battery of suffocating legal threats. But the fact that Ship has gone this long with no word from Kyoto is reason to be tentatively optimistic. Maybe the community’s dedication to self-monitoring against copyright infractions, aggressively rooting out any attempt at or advocacy of piracy in their ranks, will pay off.
As long as Nintendo is content putting out alarmingly low-quality versions of their classic games for shockingly high prices, Ship of Harkinian is proof that the unofficial option is sometimes the best option. In a perfect world, Ship would provide paid work for its dedicated developers whose efforts could be celebrated widely and openly. In the real world, its developers are uncompensated and their labor of love is enjoyed in hushed tones, always nervous of the future. They continue to do it because they love the game. It’s a love I understand.
Derek Hill is a freelance writer and designer. In his free time, he enjoys woodworking and touring modern architecture.