gitmyhub

zelda3

C ★ 4.7k updated 2y ago

A fully playable reverse-engineered recreation of The Legend of Zelda: A Link to the Past written in C, with added features like widescreen support, pixel shaders, and higher-quality audio. Requires an original SNES game ROM to extract assets.

CSDL2PythonMakeVisual Studiosetup: hardcomplexity 4/5

This project is a reverse-engineered recreation of The Legend of Zelda: A Link to the Past (also known as Zelda 3), originally released for the Super Nintendo. The code is written in C and covers the entire game, making it playable from start to finish. The approach taken was to study the original game's assembly code and rewrite its behavior in C, resulting in roughly 70,000 to 80,000 lines of code.

To run this, you need a copy of the original game ROM file (the specific US region version, verified by a SHA256 hash listed in the README). A Python script extracts the game's assets (levels, images, and other data) from that ROM file into a separate data file. After that step, the ROM itself is no longer required to run the game. The project uses SDL2, a cross-platform library for handling graphics and input, and builds on Windows, Linux, macOS, and Nintendo Switch.

Several features have been added beyond the original game. These include support for pixel shaders to change how the game looks, widescreen aspect ratios of 16:9 or 16:10 instead of the original 4:3, a higher-quality world map, support for MSU audio tracks (a format for replacing the original music with higher-quality recordings), and extra controls for switching items more quickly.

For people who want to build it themselves, the README walks through compiling on Windows using either a small free compiler called TCC or the full Visual Studio IDE, as well as on Linux and macOS using the standard make build system. A Windows-only launcher built by a community member provides a simpler no-build option. The project is licensed under the MIT license.

Where it fits