Cronología de la Decompilación de Twilight Princess (2020–2026)
Cómo una comunidad reescribió a mano todo el código fuente de Twilight Princess, de agosto 2020 a diciembre 2025. Hitos verificados, colaboradores, y por qué la decomp de TP fue tan difícil.
La razón por la que Dusklight existe en 2026 es porque una comunidad de ingenieros inversos pasó cinco años y cuatro meses reconstruyendo todo el código fuente de Twilight Princess — sin ayuda de Nintendo, sin filtraciones, y sin ver nunca el código original. En diciembre de 2025, todas las versiones de GameCube coincidían byte a byte. Cinco meses después, TwilitRealm lanzó Dusk sobre ese trabajo.
Esta es la cronología de ese esfuerzo.
Por qué la decomp es necesaria para los ports
La versión de GameCube de TP se distribuyó únicamente como un binario compilado en un disco de 1,4 GB. Nintendo nunca publicó el código fuente. Para hacer un port nativo para PC, alguien tiene que reconstruir el código fuente — es decir: escribir a mano C/C++ que, al compilarse con el toolchain original (Metrowerks CodeWarrior para PowerPC), produce un binario idéntico byte a byte al disco comercial.
Este proceso se llama decompilación de matching. Es minucioso; no hay atajos. Cada función, cada layout de datos, cada quirk de optimización del compilador tiene que reproducirse exactamente. La recompensa: una vez hecho, el código fuente es tuyo para forkear, portar, modificar o construir obras derivadas — sin tocar jamás la IP de Nintendo.
La cronología
Agosto 2020 — Inicio del proyecto
- 2020-08-29 —
Pheenoh(Howard Luck) crea el repositorio zeldaret/tp en GitHub. El mensaje del primer commit es, con mucho encanto,"ok". - El scaffold inicial apunta a GZ2E01, la versión de GameCube para EE.UU.
- El proyecto se configura con C++ como lenguaje principal — inusual para decomps de juegos, que históricamente apuntaban a juegos en C (SM64, OoT, MM). El matching de C++ es materialmente más difícil por los vtables, RTTI y el name mangling de plantillas bajo MWCC.
2020–2022 — Arranque lento
- Pheenoh, Jcw87 y hatal175 establecen la infraestructura de build: decomp-toolkit, matching del compilador PowerPC de mwcc, orquestación de build personalizada
- El progreso es constante pero lento durante estos años; un equipo pequeño está construyendo herramientas más que escribiendo código de matching
2023 — Aceleración
- TakaRikka se une y se convierte en el colaborador más prolífico (eventualmente lidera el conteo de commits)
- LagoLunatic (líder de la decomp de Wind Waker, autor del WW Randomizer) se une y aporta experiencia en tooling
- El proyecto llega a Hacker News en noviembre de 2023 con finalización parcial
2024 — Fase de producción
- El conteo de PRs sube a miles a medida que se unen más colaboradores
- GZ2P01 (GameCube EU/AU PAL) y GZ2J01 (GameCube Japón) se añaden como objetivos adicionales de matching — el proyecto ahora apunta a las tres regiones de GameCube simultáneamente
Noviembre 2025 — Hito del 99%
- El proyecto alcanza 99,02% de matching para las versiones de GameCube (cobertura de GBAtemp, noviembre 2025)
Diciembre 2025 — Todas las versiones de GameCube completas
- 2025-12-23 — Las versiones de GameCube alcanzan 100% de matching para las tres regiones comerciales: GZ2E01 (NA), GZ2P01 (EU/AU), GZ2J01 (Japón)
- Cobertura de Time Extension, GamesRadar y Gaming Bible
Finales de febrero 2026 — TwilitRealm comienza el trabajo de port
- Según el post oficial de lanzamiento de Dusklight v1.0.0: “Starting in late February, we embarked on the journey to bring the finished decompilation project to more platforms.”
- Aquí es cuando TwilitRealm forkea (o construye sobre) la decomp ya completa y comienza el trabajo de port basado en Aurora
Abril 2026 — Trabajo en decomp de Wii continúa + ports anunciados
- Las revisiones de Wii (RZDE01_00, RZDE01_02, RZDP01, RZDJ01), la Kiosk Demo de Wii (DZDE01) y el port de Nvidia Shield China (Shield/ShieldD) siguen en progreso
- Time Extension reporta dos ports nativos para PC en paralelo: Dusk (TwilitRealm) y Courage Reborn (Linifadomra)
- Total de commits en el repo de decomp en este punto: ~2.365
Mayo 2026 — Dusklight se lanza (y se renombra a Dusklight el 12 de mayo)
- 2026-05-09 21:59 UTC — TwilitRealm lanza Dusk v1.0.0 en Windows, macOS (ARM + Intel), Linux (x86 + ARM), Android e iOS
- El trabajo de GameCube de la decomp es la base; las versiones de Wii / NTSC-J siguen en progreso, por lo que el primer lanzamiento de Dusklight solo soporta ROMs de GameCube NA + PAL
- 2026-05-12 — El proyecto se renombra oficialmente de Dusk a Dusklight
Qué hizo que la decomp de TP fuera especialmente difícil
Volumen de código
Según decomp.dev/zeldaret/tp, el proyecto contiene aproximadamente 11,5 MB de código + 2,5 MB de datos. Para comparar:
| Proyecto | Tamaño de código | Tiempo hasta matching 100% |
|---|---|---|
| Super Mario 64 | ~250 KB | ~2 años |
| Ocarina of Time | ~1 MB | ~3 años |
| Majora’s Mask | ~1 MB | ~3 años |
| Twilight Princess | ~11,5 MB (C++) | ~5 años 4 meses hasta GC completo |
TP es aproximadamente 10 veces más grande que las decomps previas en C de la familia Zelda.
El matching de C++ es materialmente más difícil que el de C
Las decomps anteriores de Zelda (OoT, MM) apuntaban a código fuente C — que tiene name mangling predecible, sin virtual tables, sin RTTI, sin plantillas. C++ añade:
- Name mangling que varía según la versión del compilador (el esquema de mangling de MWCC es propio)
- Vtables que deben estar dispuestos byte a byte perfectamente
- RTTI que el compilador emite en formatos específicos del runtime CodeWarrior
- Plantillas que instancian a nombres de símbolo específicos dependiendo de las elecciones del compilador original
Cada uno de estos tiene que coincidir exactamente con los bytes del binario comercial. Los errores no aparecen como “comportamiento incorrecto” — aparecen como una ROM diferente, lo que hace fallar el test de matching.
Diferencias por revisión
Tres regiones comerciales de GameCube más una build de Debug más las revisiones de Wii más el port de Nvidia Shield (China). Cada una tiene pequeñas diferencias que el código base tiene que manejar limpiamente mediante compilación condicional. El repo lo hace; que funcione sin romper otros targets es una tensión constante.
La afirmación de “mayor proyecto de decompilación jamás completado”
El anuncio v1.0 de TwilitRealm dijo:
“the largest decompilation project ever completed”
¿Es esto cierto? De forma plausible, sí. Skyward Sword (zeldaret/ss, también C++) es comparable en escala y está en una etapa mucho más temprana. Wind Waker (zeldaret/tww, C++) tiene un tamaño similar y sigue en progreso. Por “mayor decompilación de juego de consola con matching completo, en estado terminado, a finales de 2025” — TP parece ostentar el récord. No está certificado formalmente, pero nadie ha presentado un contraejemplo.
Versiones de ROM rastreadas por el proyecto
| ID de versión | Plataforma / Región | Estado de decomp (mayo 2026) |
|---|---|---|
| GZ2E01 | GameCube NA | ✅ 100% matching |
| GZ2P01 | GameCube EU/AU (PAL) | ✅ 100% matching |
| GZ2J01 | GameCube Japón | ✅ 100% matching |
| RZDE01_00 | Wii NA rev 0 | 🔄 En progreso |
| RZDE01_02 | Wii NA rev 2 | 🔄 En progreso |
| RZDP01 | Wii EU/AU | 🔄 En progreso |
| RZDJ01 | Wii Japón | 🔄 En progreso |
| DZDE01 | Wii Kiosk Demo | 🔄 En progreso |
| Shield | Nvidia Shield China | 🔄 En progreso |
| ShieldD | Shield Debug | 🔄 En progreso (usado para recuperar símbolos/tipos) |
El resumen del dashboard de decomp.dev en el momento de la consulta: 100,00% decompilado, 87,13% completamente enlazado. El 12,87% restante es el trabajo de alineación Wii→GC.
Principales colaboradores (por conteo de commits)
Extraídos de gh api /repos/zeldaret/tp/contributors:
- TakaRikka — 409 commits
- Pheenoh (Howard Luck) — 375 commits (fundador)
- hatal175 — 301
- caseif — 127
- Jcw87 — 123
- carter-ktb21 — 114
- LagoLunatic — 86
- YunataSavior — 85
- lepelog — 77
- jdflyer — 64
Más allá del top 10, cientos de otros colaboradores hicieron contribuciones menores — el proyecto tiene una larga cola.
Por qué esto importa en 2026
El hecho de que la decomp de TP se completara a finales de 2025 es la razón por la que Dusklight pudo lanzarse en mayo de 2026. Antes de diciembre de 2025, los ports nativos para PC de TP eran imposibles sin código fuente filtrado. Después: trivial en principio, solo lento trabajo de port.
Este es el mismo patrón que Ocarina of Time: zeldaret/oot alcanzó alta finalización → Ship of Harkinian se lanzó. La decomp es la librería upstream; el port es el producto de cara al consumidor downstream.
Los próximos beneficiarios probables de este patrón:
- Wind Waker (
zeldaret/tww) — una vez que alcance el matching, esperar un port al estilo Ship-of-Harkinian - Skyward Sword (
zeldaret/ss) — en etapa más temprana, pero se vigila - Breath of the Wild (
zeldaret/botw) — el de alto perfil; muy temprano
Relacionado
- Todos los proyectos de decompilación de Zelda, clasificados — estado actual de los 8 repos de zeldaret
- ¿Qué es Dusklight? — explicación del concepto de port por decomp
- Guía pilar de Dusklight — qué construyó TwilitRealm sobre este trabajo
Fuentes
- github.com/zeldaret/tp — repositorio
- decomp.dev/zeldaret/tp — dashboard de progreso
- twilitrealm.dev/posts/2026-05-09-dusk-v1-released — post de lanzamiento de Dusklight v1
- Time Extension: decomp de TP completada (dic 2025)
- Time Extension: Dos ports para PC anunciados (abr 2026)
- GBAtemp hito del 99% (nov 2025)
- Hilo de HN noviembre 2023
Última actualización: 2026-05-19. Actualizamos esta página a medida que avanza el trabajo de decomp de Wii / NTSC-J / Shield.
← Hub de decomp · Guía pilar →