The Legend of Zelda: A Link to the Past recreated on PC from reverse-engineered code
SNES Zelda masterpiece tailored for modern gaming systemsBy Alfonso Maruccia 23 comments
In brief: Reverse engineering (RE) is a powerful weapon when used by retrogaming enthusiasts and capable programmers. A new RE project is breathing new life into one of the greatest games of all time, which can now run on modern PCs with no need for third-party SNES emulators.
The scene of reverse-engineered Zelda games welcomes a new member with the unofficial port of A Link to the Past, a game originally released for the Super Nintendo Entertainment System in 1991 (Japan) and 1992 (North America, Europe). A team of stubborn and passionate coders disassembled the game's original code, recreating it for PC operating systems and adding just the essential features needed to make users' lives a bit easier.
As explained on the project's official GitHub page, Zelda3 is a "reimplementation" of The Legend of Zelda: A Link to the Past, which is the third game in The Legend of Zelda series and the first to arrive on the SNES console. Zelda 3 introduced many of the staples adopted by later games in the series and is considered one of the best games ever made.
After the initial successful release for the Super Nintendo, A Link to the Past has been re-released on several Nintendo systems over the years, including Wii, Wii U, New Nintendo 3DS and finally the modern Switch console. The new reverse engineered effort, however, is something else and does things no other official re-release has ever done.
Zelda3 programmers disassembled the original code and then turned it into around 70-80,000 lines of C code, reimplementing all the parts of the original game, which is now playable "from start to end." The RE port includes SNES hardware-emulated components (namely the PPU and DSP) taken from the open-source, C-based SNES emulator LakeSnes.
The port also includes speed optimizations to improve performance over the original code, which fixes slowdowns and speeds up transition effects affecting the console version. Other quality-of-life updates include support for pixel shader and modern aspect ratios (16:9, 16:10) for prettier graphics, higher quality world map, support for external audio tracks, a secondary item slot on button X, and more.
Zelda3 can be configured to show the original machine code and the new C code running side by side, so that users can compare the RAM states of each version and see how they provide exactly the same gaming experience despite being designed to run in two completely different environments.
Zelda3 supports Windows, Linux, macOS and even homebrew-compatible Switch consoles, with instructions tailored for the game's installation on each compatible system. A copy of the game's original ROM is required (but of course not provided) to extract game assets (levels, images) that are not present in the port's code, so Nintendo won't try to sue the developers or send a cease & desist letter to GitHub for copyright infringement.