Salve a tutti.
Benchè nuovo utente del forum volevo dare il mio contributo scrivendo una guida "Dalla A alla Z" sull'Homebrew per Xbox360. Con questo tutorial voglio integrare e un pò aggiornare l'ottimo lavoro fatto già dall'utente Pa0lone, che ho avuto modo di leggere.
Per iniziare:
Il requisito fondamentale è una console Xbox360 con modifica JTAG (SMC Hack) o RGH. Giusto per essere esaustivi, una Xbox 360 modificata con queste due tecniche permette l'esecuzione di codice non firmato. Alla maggior parte degli utenti questo interessa perchè in questo modo possono far girare dashboard alternative, eseguire le proprie copie di backup direttamente da HDD ecc...
C'è però un'altra comunità di utenti che ha visto in queste modifiche l'opportunità di poter creare delle applicazioni che siano al tempo stesso libere, quindi sotto licenza GPL, e anche legali, da creare e da distribuire. Questo perchè, le applicazioni che si trovano in rete, avviabili da Dashboard, es. XeXMenu, implicano comunque, per la loro creazione, l'utilizzo di alcune librerie di sviluppo protette da Copyright di Microsoft, il cui utilizzo quindi, se non autorizzato, è illegale.
Non solo, ma per riuscire a trovare le applicazioni che cerchiamo, molte volte siamo costretti a girovagare per la rete per ore, e non sempre il software che scarichiamo è pulito e pronto al funzionamento, molte volte senza saperlo ci si becca anche qualche bel trojan o rootkit.
Il Reset Glitch Hack sta permettendo invece la creazione di applicazioni, come per esempio gli emulatori, che vengono costantemente aggiornate dagli sviluppatori e hanno raggiunto una notevole stabilità.
Sapevate che è possibile far diventare la Xbox 360 un vero e proprio computer, con a bordo Linux? E sto parlando della distribuzione Ubuntu o Debian all'ultima versione, non qualche sistema operativo a riga di comando. Voi direte, ma io Linux non lo so usare. Ormai Linux ha eguagliato Windows sull'aspetto "User Friendly" e non è necessario essere degli smanettoni per utilizzarlo. Magari affronteremo anche quest'argomento in un altro tutorial.
Okay. Passiamo alla parte pratica.
Requisiti:
Oltre al requisito della console abbiamo bisogno di avere:
- Un sistema operativo Linux. Ubuntu o Debian vanno benissimo allo scopo. Il mio consiglio è quello di utilizzare una macchina virtuale. Se non sapete come fare, coprirò questo argomento in un altro tutorial, mostrandovi come fare utilizzando del software libero disponibile per Windows.
Se siete utenti MAC potete utilizzare Parallel per creare il vostro ambiente virtuale.
Se non volete utilizzare ambienti virtuali e utilizzate Windows, sarà necessario scaricare e installare Cygwin. Tutti questi procedimenti sono però più complicati del metodo con ambiente virtuale e meno adatti a chi si avvicina per le prime volte a questo mondo, per cui per ora tratterò solo di questo metodo.
Personalmente la piattaforma che utilizzo io è la distribuzione Debian. In ogni caso per quello che dobbiamo fare le differenze fra distribuzioni non ci riguardano.
Eseguiamo il Login nella macchina e apriamo il Terminale. Gli utenti Windows devono vedere il Terminale come se fosse il Prompt di MS-DOS.
Ciò che dovete verificare prima di iniziare è che il vostro utente abbia i permessi di SUDO, cioè di poter eseguire un comando in qualità di superutente. Per gli utenti Windows, il superutente è l'utente Administrator, per gli utenti Linux il superutente è l'utente root.
Le operazioni come Superutente danno accesso al Filesystem, quindi utilizzatele con attenzione se volete sperimentare qualcosa non trattato in questa guida. Normalmente, invece, con i normali diritti utente si ha controllo soltanto sulla propria cartella Home.
Da terminale digitiamo:
Sostituite "nomeutente" con il nome che desiderate dare al vostro utente.
Ci viene restituita la lista di gruppi al quale appartiene il nostro utente.
Se volte creare un nuovo utente con il quale lavorare, da terminale digitate:
Codice:
adduser nomeutente
Vi verrà chiesto di inserire una password per l'utente e confermarla.
Torniamo al comando precedente il comando id. Ah, è necessaria una precisazione: In Linux, i comandi così come ogni altra cosa, dai nomi file ai nomi delle cartelle, alle password e tutto il resto è CASE-SENSITIVE. Vale a dire che "ID" è diverso da "id" e da "Id" e da "iD". Se digitate un comando nella sua corretta forma semantica, se ciò che avete digitato è maiuscolo ma andava scritto in minuscolo vi sarà restituito un errore perciò ricordatevi di questa cosa.
Questo è l'output per l'utente xbox appena creato:
Codice:
uid=1001(xbox) gid=1001(xbox) gruppi=1001(xbox)
Adesso dobbiamo dargli i diritti amministrativi e i diritti di sudo.
Codice:
usermod -G adm,sudo xbox
Questo è il nuovo output dando il comando id:
Codice:
uid=1001(xbox) gid=1001(xbox) gruppi=1001(xbox),4(adm),27(sudo)
Il nostro utente adesso è amministratore del sistema e ha i diritti per eseguire comandi come superutente.
Sempre da riga di comando digitiamo:
Adesso bisogna copiare il codice sorgente della libreria LibXenon e compilare la Toolchain. Ma per poterlo fare abbiamo bisogno di installare alcuni pacchetti nel nostro Sistema Operativo.
Per farlo usiamo il comando "apt-get install". "apt-get" è il comando usato per installare pacchetti (software) in un sistema operativo Unix-like.
Codice:
apt-get install libgmp3-dev libmpfr-dev libmpc-dev texinfo git-core gettext build-essential subversion
Confermiamo l'installazione quando ci verrà chiesto, qualche secondo più tardi.
Installate le necessarie dipendenze, utilizziamo il comando "git" per accedere al repository git di LibXenon e scaricare il codice sorgente.
Esiste un unico repository ufficiale per la libreria LibXenon, ed è quella del Free60 Project. Gli sviluppatori che vogliono apportare modifiche possono farlo derivando il proprio codice da quello ufficiale. Scaricato il codice sorgente, andrà compilata la Toolchain e Libxenon.
Codice:
git clone https://github.com/Free60Project/libxenon
Codice:
cd libxenon/toolchain
Codice:
./build-xenon-toolchain toolchain
Il processo di building della Toolchain impiegherà un pò di tempo. I pacchetti fondamentali che saranno scaricati saranno: Binutils, Newlib e Gcc.
***Fate sempre attenzione ai messaggi restituiti dal processo di installazione.Se qualcosa va storto lo capite da lì.***
I messaggi che dovrete ricevere in questo processo sono:
"Extracting" - "Configuring" e "Building", per tutti i pacchetti che vi ho menzionato.
Ma GCC, pacchetto indispensabile, ha bisogno di eseguire il build due volte, quindi dovrete leggere:
"Building GCC - 2nd pass. This could take a while".
Se questo passaggio non avviene, c'è qualche problema e va risolto a monte.
Terminata la procedura di building della Toolchain dobbiamo aggiungere delle variabili di sistema al nostro file d'avvio. Il file d'avvio di Linux è .bashrc.
Di questo verrà comunque dato avviso al termine del processo di compilazione.
E all'interno del file, dopo l'ultima riga inseriamo le seguenti variabili
Codice:
export DEVKITXENON="/usr/local/xenon"
export PATH="$PATH:$DEVKITXENON/bin:$DEVKITXENON/usr/bin"
***Metodo alternativo***
Dalla vostra home:
Codice:
cd /etc/profile.d
Create un nuovo file con estensione .sh. Ad esempio devkitxenon.sh
All'interno, inserite le variabili
Codice:
export DEVKITXENON="/usr/local/xenon"
export PATH="$PATH:$DEVKITXENON/bin:$DEVKITXENON/usr/bin"
salvate e chiudete il file.
Da prompt dei comandi:
Codice:
chmod +x nomefile.sh
Riavviate. Adesso la vostra libreria LibXenon è accessibile anche senza dare i permessi di root al momento della compilazione di un'applicazione.
La Toolchain e LibXenon sono compilati.
Abbiamo terminato la prima fase. Il codice base è pronto.
Ora, per poter compilare con successo il software homebrew per la Xbox 360 abbiamo bisogno di installare alcuni pacchetti aggiuntivi. Questi pacchetti però non possono essere installati normalmente con "apt-get install", perchè questi pacchetti non solo vanno installati e configurati per LibXenon, ma cosa più importante, per l'architettura della Xbox360.
La CPU della Xbox360 è una CPU IBM PowerPC.
Normalmente il processo di installazione sarebbe leggermente complesso, perchè consiste nel caricare le variabili necessarie ad utilizzare LibXenon per l'installazione dei pacchetti ed in seguito specificare da riga di comando che si deve utilizzare per la compilazione il gcc++ per LibXenon.
Ma l'installazione di questi pacchetti è stata adesso inclusa nel codice sorgente della libreria LibXenon, quindi installarli sarà semplicissimo.
Allora: Questa è la "lista della spesa" per la seconda fase.
1. Zlib
2. Libpng
3. Freetype
4. Bzip2
5. Zlx
6. Bin2s.
Rimanendo nella cartella toolchain digitate:
Codice:
./build-xenon-toolchain libs
Adesso procuriamoci Zlx.
Zlx è una libreria molto utile e potente che serve per implementare alcune funzioni di browsing e ricerca. Infatti, già scaricando il codice dal sito e compilandolo, ci ritroveremo un file che farà da browser per tutti gli homebrew. Una dashboard che permette di eseguire diverse operazioni, come lanciare il server HTTP, fare il dump della nand, riavviare Xell...
Sempre dalla cartella home del nostro utente lanciamo:
Codice:
svn checkout http://zlx.googlecode.com/svn/trunk/
Questo comando estrae la versione più aggiornata della Zlx in una cartella "trunk" nella nostra home.
Al termine del download apparirà il messaggio "Estratta revisione X (a seconda della revisione, es. 9)".
Quindi:
Codice:
cd trunk
make -f Makefile_lib
make -f Makefile_lib install
Bene. Anche la seconda fase è terminata. Complimenti! Avete finito. La vostra piattaforma è pronta.
E adesso, direte voi?
Vi spiego come funziona.
Gli sviluppatori per homebrew per Xbox360 utilizzano lo stesso repository che viene usato per LibXenon, Github.
Ciò che dovete imparare ad usare è il comando git, utilizzato già prima. Serve a prelevare una copia della versione presente nel repository per poterla poi compilare, ma anche per scaricare gli update al codice sorgente, tornare indietro se un update rivela dare problemi eccetera.
Inoltre dove imparare ad usare il comando "make". Make è il comando che serve per compilare il codice sorgente e restituire un unico file eseguibile.
Attualmente ci sono diversi progetti in cantiere da parte degli sviluppatori LibXenon, e quasi tutti non li trovate per la versione XeX.
Ve ne cito alcuni:
Mupen64-360: Un emulatore Nintendo 64 per Xbox360, dal creatore del RGH. Praticamente perfetto, tutti i giochi da me testati funzionano benissimo. Implementa il dynarec per una ricompilazione dinamica delle ROM e un framerate sempre sui 50/60 FPS.
PCSXR-Xenon: Un emulatore di Playstation 1 per Xbox 360. Già funzionante ma ancora in corso d'opera, testato con Final Fantasy 8 e 9, funzionano alla perfezione. Dal developer e amico Ced2911.
FCEUX-Xenon: Emulatore di giochi per Nintendo. Anche lui portato sulla Xbox 360 da Ced2911.
Genesis Plus Xenon: Emulatore di giochi per Sega Genesis Plus, di Ced2911.
Mame-lx: Questo, uno dei più interessanti. Già funzionante, ma ancora in corso d'opera, sempre a cura di Ced2911, è l'emulatore per Mame per Xbox360!!!
Aggiornato alla versione 144u7! Da provare assolutamente. Perchè giocare Street Fighter 2 sulla Xbox non ha prezzo ^_^.
XeLL: A cura di tuxuser, è il famoso bootloader per Xbox 360 che mostra la CPU Key e la DVD Key. Dovete sapere che viene continuamente aggiornato con nuove caratteristiche e miglioramenti, quindi avere sempre l'ultima versione aiuta sempre molto! Attenzione, se volete le versioni beta, prima di poterle compilare avete bisogno della libreria "LibXenon-testing".
Quindi...mettiamo per esempio che volete compilare il Mame.
Navigate sulla pagina dello sviluppatore. In questo caso: [url]https://github.com/Ced2911[/url]. Cercate il progetto Mame. In questo caso il link è:
[url]https://github.com/Ced2911/mame-lx[/url]
Dalla vostra home:
Codice:
git clone https://github.com/Ced2911/mame-lx
Verrà creata la cartella "mame-lx". Entratevi e digitate semplicemente:
***Attenzione***. Nel caso del mame, all'interno della cartella btools ci sono degli eseguibili, fondamentali per la compilazione. A loro va dato il privilegio di esecuzione come programma. Per cui digitiamo:
Codice:
chmod -R 755 btools
Non è necessario specificare che si fa un CROSS_COMPILE per una piattaforma Xenon. Tutto accadrà automaticamente.
Se avete un processore multicore potete velocizzare la compilazione, abbastanza lunga nel caso del Mame, in questo modo:
Dovete aggiungere l'opzione "-jX" dove "X" è uguale al numero di core che avete (o avete assegnato alla macchina virtuale) + 1.
Quindi, in caso di un processore a 4 core:
Al termine, nella cartella del mame troverete un file chiamato "mamexenonXX.elf32". "XX" può essere 32 o 64 bit a seconda del vostro Sistema Operativo.
E' presente anche un file chiamato "mamexenonXX.elf". Non va utilizzato.
XeLL è capace di riconoscere, per quello che ci serve, i file denominati cosi: "xenon.elf"; "vmlinux". Ci sono anche altre nomenclature ma non ci servono allo scopo.
Prendete quindi il file "mamexenonXX.elf32" e rinominatelo "xenon.elf".
Da riga di comando è:
Codice:
mv mamexenonXX.elf32 xenon.elf
Se vi prendete un attimo, però, e andate nella cartella compilata della libreria ZLX, troverete il file zlxbrowser.elf32.
Questo è il menu per LibXenon.
Quindi, prendete una chiavetta USB. Formattatela in FAT32. Copiate all'interno della chiavetta il file "xenon.elf". Se avete il browser zlx, potete rinominare questo in "xenon.elf" e rinominare il mame in "mame.elf". Da browser poi potrete navigare sul file e scegliere di eseguirlo. Create poi una cartella "roms" dove inserirete le vostre rom (di giochi legalmente posseduti).
Avere il browser è molto comodo, perchè magari una volta compilati gli altri homebrew potete tenerli tutti insieme con le loro rom nello stesso HDD esterno o chiavetta USB.
Testate e gioite ^_^.
Questi sono alcuni dei repository git più importanti:
[URL="https://github.com/Cancerous"]https://github.com/Cancerous[/URL]
[URL="https://github.com/gligli"]https://github.com/gligli[/URL]
[URL="https://github.com/lantus"]https://github.com/lantus[/URL]
[URL="https://github.com/tuxuser"]https://github.com/tuxuser[/URL]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^
Altri comandi git che avete bisogno di imparare sono:
"git pull" e "git revert"
git pull: Serve per applicare gli aggiornamenti al codice sorgente. Mettiamo ad esempio che abbiamo scaricato il codice sorgente del mame un mese fa e vogliamo testare il codice che è stato migliorato dal developer.
Dalla cartella dell'homebrew, mame-lx in questo caso:
Codice:
git pull https://github.com/Ced2911/mame-lx master
"master" è il cosidetto branch del codice sorgente. Quando lo sviluppatore applica gli aggiornamenti, lo fa su un branch. E bisogna specificarlo quando si chiede di applicare un aggiornamento.
Git Revert lo spiegherò più avanti per non mettere troppa roba nel pentolone e seguire un filo unico.
Adesso che avete scaricato gli aggiornamenti, vorrete fare una compilazione pulita.
Quindi, sempre dalla cartella del mame:
Questo ripulisce la cartella dai file compilati, nonchè dal pointer della compilazione.
E poi di nuovo "make".
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Bene, io penso di aver finito, per ora. Spero di aver fatto cosa gradita e che vi cimenterete in questa avventura.
Sicuramente ne avrete molte soddisfazioni, a me ne da molte perchè è come creare qualcosa da soli e c'è una
soddisfazione in più nel farla funzionare.
Con le indicazioni che vi ho dato non dovreste incontrare problemi, ma le vie del Signore sono infinite quindi, se doveste
incontrare dei problemi nella compilazione, postatelo qui e vi aiuterò a risolverli.
Alla prossima.
Ethereal
Segnalibri