Arcademachine
Tutto sul mondo arcade

Retropie ed Emulationstation

RETROPIE - EMULATIONSTATION
Retropie è un software che contiene tutte le funzionalità di un emulatore in grado di far funzionare molte piattaforme diverse.
Emulationstation invece è il front-end la visualizzazione grafica (tipo hyperspin, tanto per intenderci).
Per poter utilizzare il vostro Raspberry Pi come macchina da gioco sarà sufficiente installare la piattaforma EmulationStation. EmulationStation è disponibile per Linux (Debian) e Windows. L'immagine che potete scaricare da qui è in grado di far girare il front-end EmulationStation su un Raspberry Pi tramite una speciale ISO su SecureDigital (raccomando una micro SD da 8 o 16 GB classe 10). RetroPie inoltre vi permette di usare un Gamepad USB per selezionare uno dei numerosi emulatori disponibili e giocare senza utilizzare necessariamente una tastiera o un mouse (a meno che non vogliate emulare anche qualche home pc).
Tuttavia per i primi settaggi consiglio vivamente l'utilizzo della tastiera.
Di seguito l’elenco dei sistemi supportati (tra parentesi l’emulatore utilizzato).
  • Amiga (UAE4ALL)
  • Apple II (LinApple)
  • Atari 800 (Atari800)
  • Atari 2600 (RetroArch/Stella)
  • Atari ST/STE/TT/Falcon (Hatari)
  • Apple Macintosh (Basilisk II)
  • C64 (VICE)
  • Amstrad CPC (#CPC4Rpi)
  • Final Burn Alpha (RetroArch/PiFBA, RetroArch/FBA)
  • Game Boy (RetroArch/Gambatte)
  • Game Boy Advance (GpSP)
  • Game Boy Color (RetroArch/Gambatte)
  • Sega Game Gear (Osmose)
  • Intellivision (jzIntv)
  • MAME (RetroArch/mame4all-pi, RetroArch/mame4all)
  • MSX (openMSX)
  • PC – x86 (rpix86)
  • NeoGeo (PiFBA, GnGeo)
  • Nintendo Entertainment System (RetroArch/FCEUmm)
  • Nintendo 64 (Mupen64Plus-RPi)
  • TurboGrafx 16 – PC Engine (RetroArch/Mednafen/pce_fast)
  • Ports
  1. CaveStory (RetroArch/NXEngine)
  2. Doom (RetroArch/PrBoom)
  3. Duke Nukem 3D (eDuke)
  • ScummVM
  • Sega Master System / Mark III (RetroArch/Picodrive, Osmose, DGen)
  • Sega Mega Drive / Genesis (RetroArch/Picodrive, DGen)
  • Sega Mega-CD / CD (RetroArch/Picodrive, DGen)
  • Sega 32X (RetroArch/Picodrive, DGen)
  • Playstation 1 (RetroArch/PCSX ReARMed)
  • Super Nintendo Entertainment System (RetroArch/Pocket SNES, snes9x-rpi)
  • Sinclair ZX Spectrum (Fuse, FBZX)
Installazione 
Scaricate il file immagine da qui e procedete a dezippare la cartella. Il file zip è da 1.2 GB ca.
Inserite l’SD nel vostro PC e dopo averla formattata, estraete l’immagine come per qualsiasi altra immagine per Raspberry Pi 
  • Gli utenti Windows possono utilizzare Win32DiskImager
  • Gli utenti MAC possono utilizzare RPI-sd card builder (abbiate qualche minuto di pazienza, potrebbe volerci del tempo)
  • Gli utenti Linux possono divertirsi da linea di comando (richiede molto più tempo).
Completata la procedura di scrittura rimuovete l’SD dal PC e a Raspberry spento collegate gamepad e tastiera ed inserite la micro SD nell'apposito slot.
Accendete il Raspberry Pi. Dopo il boot premete F4 sulla tastiera per accedere al terminale.
Come prima cosa, dopo l’installazione dell’ultima immagine, è bene fare un aggiornamento generale.
Digitate i comandi esattamente come riportati di seguito (devono essere assolutamente rispettati gli spazi, lettere grandi ecc.). Se avete connesso il raspberry alla rete internet procedete con le prime due righe di comando di seguito (premere invio dopo ogni riga). Ultimata questa fase, continuate la procedura con il comando successivo *
Essendo la tastiera non ancora configurata, per ottenere il segno - dovete digitare il tasto ? (Almeno per tastiera layout italiana modello trust)
sudo apt-get update
sudo apt-get upgrade -y
Se il raspberry non è collegato ad internet digitate direttamente il comando * :
sudo raspi-config 
Premete invio
Con questo comando accedete direttamente alla schermata di set-up del vostro Raspberry Pi.
Selezionate dal menu i seguenti comandi.
  • Expand Filesystem: in questo modo espandete la partizione sulla SD sfruttando lo spazio disponibile;
  • Internationalisation Options: settate correttamente location, tastiera e time-zone.
  • Advanced Options: selezionate Memory Split e cambiate il numero a 192 o 128 (consigliato 192 per il modello da 512 mb)
  • Selezionate overclock e portate il raspberry a 800 MHz.
  • Advanced Options: sempre dal menu di opzioni avanzate abilitate anche l’SSH.
  • Finish: terminate.
  • Reboot: riavviate il vostro Raspberry Pi.
Dopo il reboot del vostro Raspberry Pi seguite le istruzioni a video sulla GUI di EmulationStation e calibrate il gamepad (che al momento funziona in EmulationStation ma non negli emulatori: vi manca un ultimo step per configurare il gamepad o la vostra plancia dei comandi, ma lo vedremo in seguito).
Dopo la prima configurazione dei tasti in Emulationstation, premete Ok per concludere (per fare questo, utilizzate il tasto A che avete precedentemente configurato).
Tornate al terminale con il tasto F4 e digitate i seguenti comandi :
cd RetroPie-Setup
Premete invio, continuate con quest'altro comando :
sudo ./retropie_setup.sh
Premete invio
Questo comando vi porterà nel seguente menu.
Selezionate Update RetroPie Setup Script, premete invio e quando questo è completato selezionate SETUP premendo ancora invio. 
Da qui selezionate Register controller for RetroArch emulator per configurare la vostra plancia per poterla utilizzare con tutti gli emulatori sotto RetroArch. 
Dopo aver premuto invio,  sarà mostrata una schermata nera, quando siete pronti fate partire la procedura di registrazione premendo ancora una volta invio. 
A video vi saranno mostrati i comandi che potete assegnare a ciascun tasto o movimento del joystick. Dovete essere veloci perché la procedura guidata non si ferma (circa 2 secondi per ciascun comando). Qualora vi sia sfuggito un settaggio o avete immesso un tasto errato, potete attendere che la procedura di registrazione termini e ripetere il tutto dall'inizio.
Prima di ultimare la procedura con Perform reboot, avete la possibilità di modificare il cosiddetto splashscreen oppure potete disattivarlo del tutto.
Selezionate SETUP e successivamente Select splashscreen. Qui trovate ben 29 temi diversi, sceglietene uno e premete invio due volte.
Poi selezionate cancel e premete invio per tornare al menu principale e fate il reboot.
Ora avete settato i comandi e personalizzato lo splashscreen.
Resta tuttavia ancora un settaggio da ultimare.
Per evitare di utilizzare la tastiera per uscire da un emulatore mediante il tasto escape è possibile inoltre modificare il file retroarch.cfg.
Tornate al terminale con il tasto F4 e digitate la seguente riga di comando 
sudo nano /opt/retropie/configs/all/retroarch.cfg
e premete invio. Si aprirà il file Skeleton config file for retroarch.
Con i tasti freccia in giù scorrete il file fino ad arrivare alla configurazione dei tasti (le righe non contrassegnate dal simbolo #).
Aggiungete le due righe di comando come di seguito 
input_enable_hotkey_btn = 8
input_exit_emulator_btn = 9

Per terminare e modificare il file retroarch.cfg premete contemporaneamente i tasti ctrl e X. Vi sarà chiesto se siete sicuri di voler modificare il file, per cui procedete con Y e poi invio.
Il file ora è aggiornato e vi permetterà di uscire dagli emulatori che utilizzano retroarch semplicemente premendo i tasti start e select contemporaneamente. Tuttavia potete configurare anche altri tasti per utilizzare questa funzione, anziché registrare 8 e 9, registrate altri tasti che avete disponibili.
Terminata la modifica, effettuate il reboot del raspberry. 
NOTA BENE : Per far si che i tasti appena settati funzionano correttamente, dovete scollegare la tastiera dal raspberry. 
Per configurare il tasto esc anche sull'emulatore mame,  lanciate un gioco qualsiasi (ne basta uno) dopo averlo salvato come da procedura spiegata di seguito. 
Premete il tasto tab per accedere al menu. Selezionate "Input general" e premete invio. 
Vi saranno mostrati i comandi settati per tutti i giochi del mame,  per cui qualsiasi tasto configurate o modificate avrà effetto su tutti i giochi. Cercate la riga "uscire dalla Ui o similare" che è settato con il tasto esc della tastiera. Premete invio ed assegnate un nuovo tasto della vostra plancia. Premete nuovamente il tasto tab per uscire dalla videata di setup del mame. Ora che avete configurato anche il mame non avete più bisogno della tastiera per gestire i vari emulatori. 

Ora non vi resta che caricare tutte le roms.
Per essere sicuri che la procedura fin qui descritta funzioni correttamente, ho effettuato svariati test. Purtroppo può capitare che il vostro raspberry durante questa fase non riesce a copiare le rom sulla SD oppure si blocca in modo anomalo. In questo caso riformattate la SD è copiate le roms subito dopo aver ultimato la prima configurazione con sudo raspi-config. 
Se il problema persiste, consultate inoltre la tabella di compatibilità della vostra scheda SD con il raspberry al seguente
link
Procuratevi una memoria USB formattata e inseritela nella porta del vostro raspberry.
Automaticamente verranno create le cartelle roms per ciascun emulatore. 
Estraete la chiavetta USB ed inseritela nel vostro PC con windows. Quando accedete nella chiavetta USB noterete che è stata creata una cartella roms. All'interno tante sottocartelle dei vari emulatori. 
Procuratevi il mame romset 037b5, anche se potrebbero funzionare alcune roms da altro romset, ma per essere sicuri andate su quelle della 037b5. Per gli altri emulatori è necessario fare delle prove di compatibilità, personalmente ne ho testati diversi senza riscontrare particolari problemi.
Trasferite le roms che desiderate nelle cartelle di appartenenza (esempio mame).
Spegnete il vostro raspberry oppure tornate sul terminale con il tasto F4.
Inserite nuovamente la chiavetta USB nel raspberry ed avviate l'emulatore digitando:
emulationstation
e premete invio
Tutto il contenuto della chiavetta sarà trasferito sulla SD del vostro raspberry. Attendete un po di tempo in base alla quantità di roms che avete caricato. Potete eventualmente controllare la luce lampeggiante verde del raspberry. Quando sarà spenta il processo è terminato. 
Non vi resta che selezionare l'emulatore e far partire un gioco.
ATTENZIONE !!! Alcuni emulatori potrebbero non riconoscere le rom perché necessitano del BIOS come per esempio la Playstation o NeoGeo.
Per quest'ultimo salvate il file bios NeoGeo.zip direttamente nella cartella delle roms ed il gioco è fatto.
Altri emulatori come il NES hanno bisogno di rom con estensione .nes.
Per SNES salvare le rom con estensione .smc
Qualora non visualizzate un emulatore su emulationstation non preoccupatevi, basta ripetere la procedura salvando sulla chiavetta USB almeno una rom nella cartella specifica di quel emulatore.
Al prossimo avvio sarà visibile e selezionabile.
Qui di seguito la grafica di Emulationstation dopo aver caricato le roms.
Con il joystick vi spostate a destra e a sinistra, mentre con il tasto "A" della vostra plancia entrate nell'emulatore. Selezionate un gioco è lanciatelo sempre con il tasto "A".
Il tasto "B" è utilizzato dal frontend di Emulationstation per uscire dal menu di un emulatore e per tornare alla schermata di selezione (schermata principale).
Avete inoltre la possibilità di effettuare altri settaggi sul front-end emulationstation accedendo alla UI mediante i tasti start e select che avete configurato precedentemente. 
Sempre da terminale (mediante il tasto F4) digitando startx e premendo invio accedete alla visualizzazione grafica del vostro raspberry (stile windows). 
Questa modalità vi potrà essere utile per trasferire i file BIOS dalla pennetta USB alla SD, oppure le snap dei giochi, perché contrariamente alla cartella delle rom, gli altri file devono essere trasferiti manualmente.
Buon divertimento con la vostra nuova console tascabile.