Home Homebrew Completata la decompilazione di Twilight Princess: Un milestone epico per i fan...

Completata la decompilazione di Twilight Princess: Un milestone epico per i fan di Zelda

182
0

Dopo cinque anni di lavoro costante, il team ZeldaRET è riuscito a trasformare completamente il codice binario originale del 2006 in codice sorgente C leggibile, compilabile e perfettamente identico all’originale, byte per byte.

La notizia si è diffusa rapidamente grazie alla community, esplodendo sui social e raccogliendo l’entusiasmo di fan e sviluppatori. Twilight Princess non è un capitolo qualunque della saga.

Il titolo, pubblicato nel 2006 su GameCube e Wii, rappresenta uno degli episodi più amati di Zelda per il suo tono più maturo e oscuro, per l’introduzione di Wolf Link e per dungeon e boss rimasti iconici nel tempo.

Nonostante il remaster HD su Wii U del 2016, la versione originale GameCube è sempre rimasta nel cuore di molti giocatori, proprio per la sua atmosfera unica.

Il codice, che comprende oltre 11 megabyte di sorgente e più di 2,5 megabyte di dati, è ora completamente “libero” dal punto di vista tecnico: può essere compilato nativamente su PC, Linux, Nintendo Switch e altre piattaforme, senza bisogno di emulazione.

Questo significa che Twilight Princess non è più legato all’hardware originale o a emulatori, ma può vivere in forma nativa su sistemi moderni.

Twilight Princess diventa così il quarto Zelda completato integralmente da ZeldaRET, dopo Ocarina of Time, Majora’s Mask e Minish Cap, consolidando il progetto come uno dei più importanti nella storia della decompilazione videoludica.

Il progetto supporta le seguenti versioni

  • GZ2E01: GameCube – Nord America
  • GZ2P01: GameCube – Europa/Australia
  • GZ2J01: GameCube – Giappone
  • RZDE01_00: Wii – Nord America (Revisione 0)
  • RZDE01_02: Wii – Nord America (Revisione 2)
  • RZDP01: Wii – Europa/Australia
  • RZDJ01: Wii – Giappone
  • Shield: Nvidia Shield – Cina
  • ShieldD: Nvidia Shield – Cina (Versione Debug)

Maggiori informazioni sul progetto sono disponibili qui: https://zsrtp.link

Dipendenze

Sono necessarie le seguenti dipendenze:

  • git
  • ninja
  • python3
  • clang-format (opzionale)

Windows

Su Windows è fortemente consigliato utilizzare strumenti nativi. WSL o msys2 non sono necessari. Quando si utilizza WSL, objdiff non è in grado di ricevere notifiche dal file system per le ricompilazioni automatiche.

  • Installare Python e aggiungerlo al %PATH%.
  • Scaricare ninja e aggiungerlo al %PATH%.
    • Installazione rapida tramite pip: pip install ninja

macOS

  • Installare ninja: brew install ninja

wibo, un wrapper minimale per binari Windows a 32 bit, verrà scaricato automaticamente e utilizzato.

Linux

wibo, un wrapper minimale per binari Windows a 32 bit, verrà scaricato automaticamente e utilizzato.

Compilazione

  • Clonare la repository: git clone https://github.com/zeldaret/tp.git
  • Copiare l’immagine del disco del gioco in orig/GZ2E01.
    • Formati supportati: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC.
    • Dopo la prima compilazione, l’immagine del disco può essere eliminata per risparmiare spazio.
  • Configurazione: python configure.py
    • Per utilizzare una versione diversa da GZ2E01 (GameCube USA), specificarla con l’opzione --version.
  • Compilazione: ninja

Diffing

Una volta completata con successo la prima compilazione, nella root del progetto sarà presente un file objdiff.json.

Scaricare l’ultima release da encounter/objdiff. Nelle impostazioni del progetto, impostare Project directory. La configurazione dovrebbe caricarsi automaticamente.

Selezionare un oggetto dalla barra laterale sinistra per iniziare il confronto. Le modifiche al progetto attiveranno automaticamente una nuova compilazione: cambiamenti ai file sorgente, header, configure.py, splits.txt o symbols.txt.

Download: Source code The Legend of Zelda: Twilight Princess