It’s a sad reality among retro emulation enthusiasts: You often spend far more time crafting your perfect setup than playing the games. You get your controller, linear filtering, sound engine, and everything else just right, and then you discover that your favorite game of yesteryear is far slower and more annoying than you remember.
That’s why the hard work of reverse engineers is so valuable. Hobbyist decompilers have worked to turn ROM binaries into thousands of lines of human-readable code, allowing for far deeper audiovisual upgrades, features, and other tweaks. It has resulted in some impressive new takes on games, including Ocarina of Time, Sonic the Hedgehog, and Grand Theft Auto. And unlike many fan-based projects, reverse engineering generally passes legal muster as long as no copyrighted assets are distributed along with the decompiled code.
And they often far outshine game publishers’ official offerings, which usually amount to little more than officially licensed, lightly tweaked emulation.
Now you can add The Legend of Zelda: A Link to the Past to the list of classic games reverse-engineered and made great in modern times (first spotted by Neowin). I got the game working on a Windows PC (there are instructions for Mac, Linux, and homebrew-enabled Switches, too). It took about 10 minutes of reading the instructions, futzing with Python, and adding a few files—including the extraction of assets from a personal backup copy of the original game.
What resulted was a version of one of the foundational games of my childhood that I’m far more likely to play again. The game fits my modern high-resolution monitor and has options for alternate higher-fidelity music (via drop-in MSU files). It looks mostly the same, though it plays far more quickly and smoothly, without the frame-rate drops and long scene transitions I remember. I’ve enabled several quality-of-life upgrades: fast item switching, breaking pots with a sword, turning off the low-health beep, and some other small fixes. You can go further by messing with all kinds of settings in an .ini file.
For me, this represents an agreeable compromise between nostalgia and modern realities. You can play A Link to the Past with nothing but support for your modern system and screen. Or you can tweak many little things that might irk you and swap out Link’s sprite for Zelda, Hello Kitty, or others. Either way, you’re playing the original game, freed from the limitations of its original hardware but not significantly altered in any real way.
Less noticeable a feature, but just as remarkable, is this port’s deep fidelity to the original. You can run Snesrev’s version in a way that shows the original machine code version running side by side with their C implementation, with the RAM state compared between each, frame by frame, to ensure you’re playing, at a fundamental level, the same game.
Somehow it’s not surprising that this thoughtful rework of a classic game comes not from copyright-holder Nintendo but from a group of volunteers working diligently to understand what made the original game work and streamline it.
From talking to contributors in their Discord, I gleaned that the disassembly work (from binary to assembly code) came from Spannerisms. Moving the assembly to nearly 80,000 lines of C code and creating a playable product was Snesrev. FitzRoyX cleaned up bugs from the original game, xander-haj maintained the wiki and added item features and sprite swaps. Xander-haj noted that other ports were forked from the Snesrev project, including Xbox One and PlayStation Vita.
While projects based on a Nintendo property are often killed by legal threats just as they come to attention, this reverse-engineered project, which specifically makes no use of any original game assets, has a good chance of staying alive. Reverse-engineered code for Grand Theft Auto III and Vice City remains online after Github agreed to a Digital Millennium Copyright Act counterclaim. Courts have previously struck down reverse-engineering-based projects based on end-user license agreements (EULAs). But fully decoupled projects from the likes of the Zelda Reverse Engineering Team march on, giving hope that even more games get their shot at modern tuning.
https://arstechnica.com/?p=1914063