The Legend of Zelda: A Link to the Past is one of the most beloved video games of all time, and for many it’s their favorite in the franchise. Now, thanks to a programmer on Github who goes by Snesrev, the game has been reverse-engineered, opening up the possibility of Link to the Past on other platforms, like Sega's 32X or the Sony Playstation. This reimplementation of Link to the Past is written in C and contains an astonishing 80,000 lines of code.
This version is also content complete, with all the same levels, enemies, and puzzles that fans of the original game will remember. In its current state, the game requires the PPU and DSP libraries from LakeSNES, a fast SNES emulator with a number of speed optimizations that make the game run faster and smoother than ever before. Breaking from the LakeSNES dependency, which allows for compatibility on modern operating systems, would allow the code to be built for retro hardware. It also offers one of the craziest features I have seen in a long time; the game can run the original machine code alongside the reverse-engineered C implementation. This works by creating a save-state on both versions of the game after every frame of gameplay, comparing their state and proving that the reimplementation works.
The project would not be possible without Zelda 3 JP disassembly, a project that dumps the rom into raw assembly code, and other sources that documented function names and variables. Unfortunately we were unable to find a homepage for the disassembly project. However, with this head start, Snesrev was able to get a better understanding of how the original game was put together, and to make sure that the reimplementation is as accurate as possible. Of course, creating a clone of such a complex game is no small feat, and Snesrev now works alongside 19 other contributors.
Despite the immense amount of work that went into this project, the result is brilliant. Not only does the game play just like the original, it also includes a number of new features that were not present in the original. For example, the game now supports pixel shaders, which allow for even more stunning visuals. It also supports widescreen aspect-ratios, giving players a wider field of view, making the game even more immersive on modern displays.
Another new feature of this reimplementation is the higher quality world map. The new map is much more detailed and gives players a better sense of the world they are exploring. The game also gains a secondary item slot accessed with the 'X' button, allowing players to switch items more quickly and easily. And, with the ability to switch current items using the L/R, you don't have to waste time flipping back and forth to your inventory screen. Additionally, the game supports MSU audio tracks, where the DSP chip in the SNES is replaced by a modern synthesizer. You can hear the enhanced soundtrack below.
This reverse engineered clone of A Link to the Past is a masterpiece and the amount of time, effort, and talent that went into creating this is simply astonishing. Not only does the game play just like the original, but it also includes a number of new features that make it even more enjoyable to play. Currently, the code supports building on Windows, Mac, Linux, and Nintendo Switch, but there's nothing stopping a savvy coder from getting this to run in places where it never belonged. How about an enhanced Atari Jaguar CD port? A Sega Genesis demake? A "definitive edition" for the Sega CD/32X? It's a real possibility now.
Correction: In the original publication of this article, we reported the lead dev for this project to be a github user called xander-haj. After hearing from xander-haj, we've learned the project leader is Snesrev (Github)
29 Comments - Add comment