Eseguire ELF sul Wii???

Ebbene sì, quando parlavo di tornare alla carica non mi sarei aspettato in questo modo. Sono riuscito ad eseguire dei binari arbitrari sul mio parallelepipedo bianco. Dato che voglio condividere i miei risultati con voi, ecco un howto su come fare.

REQUISITI:

  • Un Wii, ovviamente :) ;
  • Una scheda SD e relativo lettore;
  • Una copia di The Legend of Zelda: Twilight Princess.

Qui darò per scontato che usiate Linux (con GNOME :) ), quindi per chi usa altri OS si ricavi le istruzioni da solo.

PROCEDIMENTO:

Per prima cosa, attraverso l’utility di gestione dei salvataggi del Wii, copiate i vostri salvataggi di Zelda su una scheda SD, che avrete preventivamente inserito nella console. Ora, collegate questa scheda al vostro computer, e il caro Nautilus si aprirà mostrandone il contenuto. Dovrebbe essere apparsa una nuova cartella, private: al suo interno troverete la sottodirectory wii, che a sua volta contiene title. Quest’ultima cartella contiene varie directory a seconda dei giochi che avete scaricato dalla Virtual Console e salvato sulla SD o i salvataggi dei giochi. Ora ci interessano i salvataggi di Zelda, quindi andiamo dentro la cartella RZDP (se avete la versione europea), dove troveremo finalmente data.bin, che è il nostro salvataggio.

Dato che ora dovremo sostituirlo con un altro, se ancora non avete finito il gioco o amate uccidere Ganondorf ogni pomeriggio (come me XD), salvate l’originale da qualche parte (io l’ho gzippato sul desktop :) ). Ora, sostituite il data.bin originale con questo. Per chi volesse saperne di più, questo è un salvataggio hackerato, che si differenzia dall’originale per il fatto che il nome di Epona (che, come dovreste sapere, lo scegliete voi) è MOLTO più lungo del normale (infatti il salvataggio pesa il doppio XD), e nella parte in eccesso non c’è il resto del nome ma codice eseguibile. Capirete tutto tra poco.

A questo punto le strade si dividono: questo salvataggio eseguirà il binario chiamato boot.elf che troverà nella root directory della vostra SD, quindi dovete fargli trovare un binario lì. Il mio consiglio è quello di inserire il file di installazione dell’Homebrew Channel, che vi permetterà in futuro di eseguire tutti i binari che volete senza dover ripetere questo trucco. Se però qualche binario non dovesse funzionare con esso, con questo trucco potete eseguire tutti gli ELF che volete, basta che si chiamino boot.elf e che siano al posto giusto nella SD.

Ora, smontate la scheda SD e inseritela nel Wii. Cancellate dalla console il vostro salvataggio di Zelda (l’avete salvato sul PC, vero?) e copiate al suo interno quello presente sulla scheda SD, facilmente riconoscibile per l’icona diversa. Anche se apparentemente sembra qualcos’altro, in realtà è sempre un salvataggio di Zelda, non preoccupatevi. Ora, se non l’avete già fatto, inserite il disco dorato di Twilight Princess nel vostro Wii, e fate partire il gioco. Se ve ne siete dimenticati, collegate il Nunchuck XD. Ora, aprite il salvataggio e cominciate a giocare. Vi ritroverete davanti alla vostra casa. In realtà siete all’inizio del gioco, quando Fad vi chiede dove sia Epona, che è stata portata da Iria alla sorgente dello spirito. Quando andrete a parlargli, il gioco proverà a caricare il nome di Epona dal vostro salvataggio, che si rivelerà essere molto più lungo del normale. Così, quando il Wii proverà a scrivere in memoria il nome di Epona, quest’ultimo sovrascriverà il codice del gioco con il proprio (tecnicamente è un buffer overflow), che ordinerà alla console di eseguire il binario boot.elf che troverà nella scheda SD. Comincerete a gioire quando le desolate lande di Hyrule saranno sostituite dai caratteri bianchi della CLI del Wii XD. Comunque, se ora avete inserito nella scheda SD il file di installazione dell’Homebrew Channel, vi apparirà nella shell del Wii il programma di installazione, che vi mostrerà almeno due avvertenze. Non preoccupatevi e accettate tutto premendo 1 sul Wii Remote.

Alla fine la console si riavvierà, e nel vostro menu Wii comparirà un nuovo canale, il Canale Homebrew appunto. Questo canale vi permetterà di eseguire tutti i binari che volete senza dover più ricorrere al bug di Twilight Princess che avete usato per installarlo. Il funzionamento del canale è questo: quando lo avvierete leggerà dalla scheda SD il contenuto della cartella apps (che dovrete fargli trovare, ovviamente :) ), in cui sono contenuti i vostri binari secondo questo schema: dentro apps ci deve essere una cartella per ogni binario che volete eseguire (potete dargli il nome che volete), e al suo interno dovrete mettere tre file: uno è il binario, che dovrete chiamare boot.elf o boot.dol a seconda che sia per il Wii o per il Gamecube (le due console usano la stessa famiglia di CPU, quindi il Wii può eseguire il codice del cubo nativamente), l’altro è icon.png, che conterrà un immagine di 128×48 pixel rappresentante il vostro programma.

Il terzo file è leggermente più complesso. Si chiama meta.xml, ed è un XML avente questa struttura:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name></name>
<coder></coder>
<version></version>
<release_date></release_date>
<short_description></short_description>
<long_description></long_description>
</app>

Dentro il tag <name> dovrete inserire il nome del programma, dentro <coder> il nome dello sviluppatore, in <version> il numero di revisione, in <release_date> la data del rilascio nel formato AAAAMMGGHHMM (quindi le 13:04 del 10 giugno 2008 sono rappresentate come 200806101304), in <short_description> va una breve descrizione del programma, che comparirà accanto al nome nella schermata di selezione, e in <long_description> va una descrizione più lunga, che comparirà quando farete clic sull’icona del programma, prima di avviarlo.

All’interno della SD, usando questo sistema, potrete inserire tutti i binari che volete. Una lista di programmi pronta all’uso la potete trovare qui. Adesso, però so cosa volete sperimentare: “con questo sistema posso anche eseguire il codice di Torvalds?”. E sapete cosa vi rispondo? SÌ!

Volete provare ad eseguire Linux sul vostro Wii? Esiste una minidistro basata su GC Linux (Linux per il Gamecube, ovviamente :) ), creata dagli sviluppatori di quest’ultimo, che può essere eseguita nel Wii. Dato che non voglio farvi smanettare troppo, vi fornisco il file per l’Homebrew Channel già pronto (i dati di login potete leggerli nella descrizione del programma). L’unica cosa che vi serve è una tastiera USB da attaccare al parallelepipedo bianco, poi siete pronti ad usare Linux! Fate attenzione, però: quello che ottenete è una semplice distro a linea di comando senza programmi aggiuntivi (per intenderci: la dotazione di software è pari a quella di una Debian ottenuta con debootstrap). Se volete eseguire qualcosa in più, potete provare a inserire nella vostra SD un filesystem di un sistema Linux per PowerPC (il Wii è un PowerPC, sì) e chrootarci dentro. Poi ci proverò e vi farò sapere come è andata. Oppure, se volete provare singole applicazioni, vi basta compilarle per PowerPC, inserirle nella vostra SD, montarla da lì ed eseguire i vostri programmi. Ora io ci proverò con l’interprete Python. Poi magari, una volta impiantata una toolchain, potrete compilare dal vostro Wii tutti i programmi che volete. Vi terrò aggiornati sui miei esperimenti, voi nel frattempo sperimentate!

Per maggiori informazioni andate su wiibrew.org.

3 Risposte a “Eseguire ELF sul Wii???”

  1. Emanuele Dice:

    olm ti prego prestami quel gioco :D

  2. koalalorenzo Dice:

    anche a me! (pure mario galaxy please :D )

  3. koalalorenzo Dice:

    Vedi tra i tag nintendo! Questo post risulta il più visitato ;-) e bravo olm!

I commenti sono chiusi.