A Link to the Past (3DS)
The Legend of Zelda: A Link to the Past
Sobre el proyecto
The Legend of Zelda: A Link to the Past, conocido en Japón como Zelda no Densetsu: Kamigami no Triforce , también conocido como Zelda 3 y Zelda III, es un juego de acción y aventuras desarrollado y publicado por Nintendo para la consola Super Nintendo Entertainment System y años después a la Game Boy Advance junto a The Legend of Zelda: Four Swords, siendo lanzado el 3 de diciembre del 2002, siendo la tercera entrega de la saga de videojuegos The Legend of Zelda.
9 versiones de The Legend of Zelda: A Link to the Past
Estás viendo: A Link to the Past (3DS)
The Legend of Zelda: A Link to the Pastgithub.com/YeOldPress/alttp-dx
Moon Pearlgithub.com/DoutorRaposo/moonpearl
Z3R Launcher (xander-haj)github.com/xander-haj/Z3R-Launcher
Zelda 3 Launcher (RadzPrower)github.com/RadzPrower/Zelda-3-Launcher
zelda3github.com/snesrev/zelda3
Zelda3 (Android)github.com/samyost1/zelda3-android
Zelda3Launchergithub.com/Waterdish/zelda3-android
ZeldaAlttPSNESRecompgithub.com/mstan/ZeldaAlttPSNESRecompInformación oficial del proyecto
Nintendo 3DS dual-screen port of Zelda3.
This project was developed with the help of OpenAI Codex and Claude Code. Learn more about the development process here.
This project is based on open-source work from:
- Original reverse-engineered Zelda3 engine: https://github.com/snesrev/zelda3
- Android port base: https://github.com/Waterdish/zelda3-android
- Dual-screen Android branch used as the 3DS source base: https://github.com/samyost1/zelda3-android
No ROM or extracted game asset package is distributed in this repository. Each user must provide their own legally obtained USA, unheadered ROM on their own 3DS SD card.
Version 4.0 adds seven languages, character mods, a native randomizer, fifteen quality-of-life options and refined dual-screen presentation. See development and build boundaries for source organization and the disabled developer scenarios.
Features
<table> <tr> <td width="50%" valign="top"><strong>Return to Hyrule</strong><br>A native dual-screen adaptation based on Zelda3 and its Android ports.</td> <td width="50%" valign="top"><strong>Made for two screens</strong><br>400×240 gameplay above; live maps, gear, items and touch settings below.</td> </tr> <tr> <td width="50%" valign="top"><strong>Choose your view</strong><br>Wide, stretched and original presentation, with persistent per-ROM settings and turbo options.</td> <td width="50%" valign="top"><strong>Keep it current</strong><br>Stable / Pre-release updates, on-device ROM extraction and quick diagnostic checkpoints.</td> </tr> </table>Feature details
- Top screen: 400x240 gameplay.
- Bottom screen: 320x240 live map, dungeon map, gear view, item selection and touch settings.
- First launch extracts
zelda3_assets.datlocally from the user's ROM. - Display modes: wide mod, stretched original and original aspect.
- Turbo speed: off, x2, x3, x4 or x5.
- New 3DS: ZL or C-stick can hold turbo when turbo is enabled.
- Quick diagnostics: press
L + R + Ato create a dump with memory files, physical 400x240/320x240 screen captures, raw display framebuffers and a validatedload-state.bincheckpoint. Audio pauses during capture and aDUMP SAVEDnotice confirms complete success on the top screen. - Developer settings can load the newest dump checkpoint for the active ROM profile and optionally show the current FPS on the top screen.
- PICA200/Citro2D presentation for both screens with nearest-neighbor sampling and RGB565 display output.
- PICA200 GPU rendering on Old 3DS, with automatic software fallback for unsupported effects. New 3DS uses its existing CPU renderer.
- Native 400x240 WIDE mode, fixed-camera edge corrections and persistent per-ROM display, zoom, turbo and control settings.
- Responsive map controls and independent heart updates on Old 3DS.
- Fixed-step 60 Hz gameplay timing with bounded catch-up instead of making game speed depend on when a VBlank wait returns.
- Parallel PPU scanline rendering on Core 0 and Core 1, plus Core 2 on New 3DS, with persistent tile-row caches and frame-time diagnostics in quick dumps.
- HOME Menu banner uses a lightweight custom CGFX 3D logo model with the supplied hover sound converted to a short PCM WAV.
<a id="installation"></a>
Download and installation
<p> <a href="https://github.com/EstebanPdN/zelda-alttp-3ds/releases/download/v4.0/zelda3-3ds-v4.0.cia"><img src="docs/images/download-cia.svg" alt="Download A Link to the Past 3DS CIA" width="210" height="46"></a> <a href="https://github.com/EstebanPdN/zelda-alttp-3ds/releases/download/v4.0/zelda3-3ds-v4.0.3dsx"><img src="docs/images/download-3dsx.svg" alt="Download Homebrew Launcher 3DSX" width="210" height="46"></a> </p>Stable: v4.0.
Install the CIA, then create this directory on the SD card:
sdmc:/3ds/Zelda 3DS/
Place a legally obtained USA, unheadered ROM there. The preferred filename is
zelda3.sfc, but the setup also accepts other .sfc or .smc filenames.
On first launch, press A to validate the ROM and extract the assets. The ROM is read locally and is never copied into the CIA.
If you’re using a translated/patched ROM, put both the clean USA ROM and the patched ROM in sdmc:/3ds/Zelda 3DS/.
The port should use the clean ROM for the original assets and the patched ROM for the translated text. Translation patches may work this way, but gameplay hacks are not guaranteed to be compatible.
Audio requires:
sdmc:/3ds/dspfirm.cdc
Luma3DS can create this file from the console's own firmware through Rosalina's
Dump DSP firmware command.
Releases
Every GitHub release includes:
- installable CIA
- Homebrew Launcher 3DSX
- QR code for scanning the CIA URL from FBI on a 3DS
GitHub supplies automatic source-code archives for each tag. The release page shows the QR code, a short changelog and bug-report instructions. Detailed development notes are preserved inside the source snapshot.
Latest stable release: v4.0
See CHANGELOG.md for the changes since v2.8.
Bug reports
Press L + R + A while the issue is visible and attach the resulting dump from:
sdmc:/3ds/Zelda 3DS/dumps/
Documentation
| Guide | Purpose |
|---|---|
| 3DS controls and diagnostics | Platform setup, input and bug-report captures. |
| Updates | Channels, release notes, installation and restart behavior. |
| Building | Toolchain, SDL2 source and CIA packaging. |
| Changelog | Version history and changes. |
Building
Requirements:
- devkitARM, libctru and 3ds-cmake under
DEVKITPRO makeromandbannertoolfor CIA packaging- the vendored SDL2 source in
third_party/SDL2 banner.cgfxis prebuilt inplatform/3ds/assets; it was generated from the supplied 2.0 Blender logo model.
Build:
chmod +x platform/3ds/build.sh
platform/3ds/build.sh
The script builds the 3DSX and CIA under build-3ds/game/.
License and legal notice
The Zelda3 engine retains the MIT license and copyright notices in engine/LICENSE.txt, which also contains the Opus notice. SDL2, SDL2_mixer and other dependencies retain their own licenses. These component licenses do not grant rights to Nintendo game content.
This repository contains only source code, build scripts, redistributable port
assets and patch/extraction logic. It does not include a ROM, extracted game
assets, or zelda3_assets.dat.
Users are responsible for providing their own legally obtained compatible ROM.
Credits
This port builds on snesrev, Waterdish, samyost1 and JeodC. Thanks to 999sian, arth78, Archaistic and everyone who submitted patches, tested builds, opened issues or suggested improvements.
Special thanks to Snipy44300 for the community pack and French Canadian work, and to the original mod, skin and translation authors. 3D banner work is by Phibonacci, based on the model by TiraArt.
See full credits and contribution links for the PR authors, reporters, the community pack's original creators, the six bundled skin artists, translation teams, randomizer sources and other reused work.
Updates
In Settings > Update, choose Stable or Pre-release. Tap the release name to read its changelog on the top screen, with Prev/Next below for more pages. Choose Download Update and confirm installation, then reopen the game. Save in-game before installing. Startup checks also indicate newer releases.
Version v4.0 is the latest stable release. Select the Stable channel to install it.
Settings is Screen, Turbo Speed, Developer, Update, Restart. Restart returns to the startup home and starts the game fresh; existing saves remain.
Version 3.1 uses the native HID contact flag for touch press and release detection, including startup and releases with residual coordinates. Physical coordinates remain protected from SDL viewport transforms. The last 32 touch selections are included in diagnostic dumps. Use the FBI QR if touch controls prevent opening Update.
Community and bug reports
Join the project Discord for updates, testing, suggestions and support. Use GitHub issues for reproducible reports, including your version, console model and steps to reproduce the problem. Review diagnostic captures before sharing them.
<p align="center"> <a href="https://estebanpdn.github.io/">Esteban’s Forge</a> · <a href="https://discord.gg/BjbzfRYpV">Discord</a> · <a href="#documentation">Documentation</a> · <a href="#license-and-legal-notice">License and notices</a><br> <sub>An independent fan project. Game names and content belong to their respective owners.</sub> </p>