N64 Recompiled and Majora's Mask
I recently discovered a project that allows Nintendo 64 games to be recompiled and personally got The Legend of Zelda: Majora's Mask running on my Steam Deck natively. It is absolutely insane, and I think it could breathe new life into playing N64 games on modern hardware.
Back in May, I came across a reddit post in the r/SteamDeck subreddit about Majora's Mask Recomp. The post mentioned mod support (for an N64 game???), so I was both puzzled and intrigued. I decided to do a little research. It turns out, there has been a project running over the past year or so that allows the user to "recompile N64 binaries into C code that can be compiled for any platform."
To flex the Computer Science degree a bit here, a binary (file) is a program that has been converted into the necessary 0s and 1s to run on a particular computer architecture. Computer architectures vary wildly between different processors and platforms, so a binary for one chipset is unlikely or even impossible to run on a different chipset. Binaries created for a processor will typically ONLY run on that processor. Plus, the file contains only binary code, which isn't human readable. It runs super fast because the computer doesn't have to do any translation, but it isn't portable at all.
There are a lot of tools and methods in use today to "reverse engineer" binaries to their source code, but they're often difficult, expensive, or incomplete. If we had the original source code, we could obviously recreate it on any platform, but that's obviously not something that the original creator wants to have available most of the time. Nintendo would ideally like to keep control of Nintendo games. However, since the N64 as a platform died off years ago, there's very little effort to keep those games locked down now.
Having a tool that can recompile binaries to C code automatically removes a huge portion of the complexity. Having the C code doesn't mean you can run the game on anything, but it does get you a lot closer. The implication (and what has now been accomplished for some games), is that you can use this C code to create new binaries for modern architectures. In my case, I was able to run Majora's Mask as if it were a PC game directly on my Steam Deck.
Reading through the README for the N64Recomp project gave me serious flashbacks to when I wrote IBM Series/1 Assembler code, but it also made me so happy that someone else took care of that. I'll stick with writing JavaScript, thank you very much. Alas, I was less concerned with actively working on this project, rather I just wanted to play the game without emulation.
Aside for a bit of context on WHY this is a big deal. Emulation is computationally expensive. You're using a computer to pretend to be another type of computer, and THEN run software on that pretend computer. It's the reason why it's hard to emulate modern consoles, and even harder to emulate current gen. Specifically, N64 used a really weird architecture, so that makes it even harder to emulate compared to similarly powered consoles. I have seen computers emulate PS2 games better than the older N64. If you're able to run software natively, without emulation at all, especially complicated N64 emulation, you're going to get WAY better performance. And that's on top of all the other benefits.
With a native PC port that breaks free from all the limitations and restrictions of emulation, I was super excited about the potential for N64 recompiles and Zelda specifically. But, wait a second, these are still Nintendo IP that fall within copyright protection. Isn't it illegal to give this game out for free? It WOULD be, but you have to supply a (legally obtained) ROM of your own. Sure, you could still pursue a ROM through illegal methods, but that's on the end user. The creators are protected because they aren't given you anything copyright protected. It's genius. Download the project by itself and it doesn't do anything. Drop in a ROM of Ocarina of Time or Majora's Mask and you're in business.
You've met with a terrible fate, haven't you? |
So what are some of the non-performance benefits? Framerate is the biggest one I've personally seen. Games that originally ran at 20 fps getting bumped up to 60 fps is wild, and buttery smooth to a disconcerting level. Plus, you can set to run at your device's refresh rate, so you don't get those weird hiccups and stutters. AND it isn't locked to the N64's native 4:3 aspect ratio, so you can full screen on nearly any display. Another benefit? Mods. You can mod an N64 game now. I don't think mods even existed in 1998. Actually, I'm sure they probably existed, but I didn't personally know about them until much later. What a world.
There are a lot of disparate projects right now to create native PC ports of recompiled N64 games, but the ones I am personally most interested in are The Legend of Zelda: Ocarina of Time and The Legend of Zelda: Majora's Mask. Technically, two different groups are working toward both. Zelda 64: Recompiled started with Majora's Mask and is currently working on Ocarina of Time. Ship of Harkinian started with OoT and is working on MM. I started with Zelda 64: Recompiled, but I have since installed both on my Steam Deck.
Both games run great, they look incredible, and I think this is a superb way to modernize some true classics. The 3DS ports of the N64 Zelda games were great, but they made a lot of changes to gameplay and even the 3DS is going the way of the dinosaur. Switch Virtual Console availability of N64 games does preserve the originals, but it also hasn't been cleaned up or improved in any way. Some would argue that the originals are perfect as is, but I'm not going to turn down higher framerates and better compatibility. I genuinely believe that PC ports that stay true to the original with toggleable upgrades are the best of both worlds.
In the future, I would love to see these individual projects collected together into a single platform, or else just provide installers like with other PC games. RetroArch allows me to put all my N64 games in one place, but I can understand that these ports aren't the same as just dropping ROM files in. At the same time, I have a different install process and multiple steps for EVERY SINGLE PC port of an N64 game that I install. Let me just download that sucker as a single complete package and set it up as a non-Steam game.
I played through the first few hours of Majora's Mask, and I have nothing but praise for it. However, I decided after the forest temple that it might be cool to record the game as a sort of let's play series. Once the kids go back to school and I can regularly get an uninterrupted hour or so (about the average length of a single 3-day cycle in Majora's Mask), I thought about starting a YouTube series for it. One cycle at a time, no commentary, just playing through a game so others might be able to see how it runs and decide if they want to experience it for themselves.
These games are old as dirt, but they still keep providing value. I can't say that PC ports will become the new standard, especially when original hardware is the holy grail for things like speed running competitions. Still, cleaning them up and making them more accessible is always a good thing, especially with generations that may never have experienced them in their original formats and may not be willing to deal with the limitations of older hardware. N64 Recompiled has already bought us a lot of cool stuff, and I expect to see even more in the coming months and years.
Comments
Post a Comment