Ciao Ragazzi, giacché ho ricevuto qualche messaggio privato nel quale mi si chiedeva come procedere alla creazione di una piattaforma Arcade basata su Raspberry, ho deciso di realizzare una guida in modo che sia fruibile da tutti.
Occorrente:
Raspberry Pi 2 (Va bene anche la B+ ma è meno potente e, di conseguenza, supporta meno giochi) Acquistabile qui
Scheda Micro SD 32/64 GB Classe 10 Aquistabile qui
Monitor o TV che abbia ingresso HDMI o VGA (La Raspberry ha solo HDMI come uscita digitale oltre a quella AV, considerate l'acquisto di un cavo HDMI-VGA)
Casse Stereo Amplificate se non avete un TV o se, cmq, volete dirottare l'audio su Altoparlanti esterni.
Amplificatore Audio ed Altoparlanti per chi vuole creare un Cabinato. (Non cito fonti perché in questo sito trovate di tutto di più l'importante è che l'amplificatore sia munito di un ingresso mini jack stereo)
Immagine di un OS da trasferire su scheda SD
Joystick Xbox, xbox 360, Super Nintendo, PS3 o Arcade
Tastiera usb (Per configurare il sistema)
Cavo Lan necessario, per molte distribuzioni, per trasferire Roms via connessione ssh tra Raspberry e router Lan (anche wifi ma occorre configurare una chiavetta e la cosa diventa complessa per chi è a digiuno di linux)
Un pc con Linux, Windows o Mac.
Procedura 1: Scegliere una distribuzione
Di solito la scelta di una distribuzione la si fa in base alle proprie necessità ma, in questa sede, dovendo essere chiari ed efficienti, sceglieremo Retropie, una distribuzione basata su Raspbian (Debian per Raspberry) che contiene tutto il necessario per cominciare a divertirsi. Emulatori e Fornt-End sono disponibili in bundle con la distro il che ci farà risparmiare tempo per scaricare ed installare i singoli emulatori. Un altra peculiarità di Retropie consiste nella facilità di personalizzare ogni aspetto della distribuzione grazie al software opensource e agli script che lo staff di Retropie ha introdotto. Per ragioni di equità bisogna dire che esistono altre distribuzioni adatte allo scopo. Lakka (Solo Raspberry A, A+, B, B+, Per Raspberry 2 è in corso la fase di testing) che trovate Qui e RecalBox molto carina con molte funzioni, musica in background, impostazione della lingua italiana anche per EmulationStation (il fornt-end), impostazione del joystick, anche collegato via GPIO, direttamente dal Front-End. potete scaricarlo da Qui a Recal Box dedicherò uno spazio alla fine della guida.
Passo 1 - Scarichiamo la distribuzione
Al momento di questa guida l'ultima versione di Retropie è la 3.5 per cui scarichiamola in base alla Raspberry in nostro possesso.
Raspberry A, A+, B, B+
Questa è l'immagine da scaricare per le versioni tutte le versioni precedenti alla Raspberry pi 2 (Inclusa La Nuova Raspberry pi ZERO)
Versione 3.5 HTML
Raspberry Pi 2
Questa, invece, è la versione da usare con Raspberry Pi 2
Versione 3.5 HTML
Passo 2 - Trasferiamo su Scheda SD l'immagine scaricata
Windows
Premessa:
L'immagine scaricata è compressa in un formato zip con estensione .gz. Ciò implica l'uso di un software capace di gestire questo tipo di files. Zip Genius, 7zip, WinRar dovrebbero supportare questo formato ragion per cui evito di descrivere questo passo.
Decompressa l'immagine passiamo al trasferimento su scheda SD:
- Collegate la Scheda SD al PC e verificate la lettera dell'unità assegnatagli. (Ed Esempio F:)
Scaricate Win32DiskImager da qui
Decomprimete l'archivio del softare e, senza installarlo, avviatelo semplicemente cliccando sull'icona
Cliccare sull'icona della cartella e scegliamo l'immagine di Retropie precedentemente scaricata e decompressa.
Accertiamoci che nella sezione Device sia presente la lettera corrispondente a quella della Scheda SD collegata al PC
Fatto ciò cliccate sul pulsante Write ed attendete che l'operazione si concluda.
Ottimo Avete trasferito l'immagine su scheda SD
Linux
Scrivere un immagine su una scheda SD con Linux è molto semplice per grazie al comando dd. Questo potente strumento, disponibile anche sui mac, non prevede la formattazione della partizione poiché riscrive in modalità raw, per tanto è da usare con molta cautela.
Prima di cominciare occorre scaricare ed estrarre l'immagine dell'OS in base al modello di Raspberry in nostro possesso. Linux, così come MacOS X, gestisce nativamente il formato .gz, basta un click del mouse per estrarre il contenuto dell'archivio.
ATTENZIONE:
L'utilizzo di questo comando cancellerà inevitabilmente il contenuto della scheda SD o Qualunque altro dispositivo destinato a ricevere il file. Prima di procedere consiglio vivamente di scollegare qualsiasi dispositivo esterno collegato al pc, sia esso un Hard Disk, un Chiave USB, o una Scheda che contiene dati importanti. Non mi assumo nessuna responsabilità circa i danni causati da un uso improprio del suddetto comando.
Prepariamo la scheda SD
- Aprite un terminale
- Digitate il comando:
Codice: Seleziona tutto
df -h
- Osservate il risultato che dovrebbe essere simile a questo [attachment=41]use-df-to-check-storage-space-on-raspberry-pi0.jpg[/attachment]
- Inserite La Scheda SD nel Lettore o adattatore USB
- Digitate il comando:
Codice: Seleziona tutto
df -h
- Osservate il risultato che dovrebbe essere simile a questo [attachment=40]use-df-to-check-storage-space-on-raspberry-pi.jpg[/attachment]
- Dopo aver preso nota del percorso della Scheda SD bisogna "smontare" la scheda, per farlo usiamo il comando:
- Occhio: dovete sostituire il percorso /dev/sdxx con quello che visualizzerete sul vostro pc.
Codice: Seleziona tutto
umount /dev/sdxx
- Recatevi nella cartella dove avete estratto l'immagine di Retropie o, per comodità, spostatela nella vostra home
- Fatto questo possiamo procedere a trasferire l'immagine alla scheda SD, tramite il comando:
Codice: Seleziona tutto
dd bs=4M if=~/immagine-scaricata.img of=/dev/sdx
- immagine-scaricata.img va sostituito col nome del file dell'immagine scaricata, e /dev/sdxx con la destinazione che avete appuntato prima. Nel mio caso il comando sarebbe questo:
Codice: Seleziona tutto
dd bs=4M if=~/retropie-v3.0rc1-rpi2.img of=/dev/sda
- Anche se non visualizzerete nulla sul terminale attendete, ad operazione conclusa (richiede un po di tempo), riceverete un messaggio che confermerà l'avvenuta scrittura dell'immagine su scheda SD
- Complimenti Avete Trasferito Retropie su Scheda SD
NOTE:
Potenzialmente questa procedura va bene anche per mac, essendo OSX, un sistema unix come lo è Linux. i comandi che useremo per OSX, però, si appoggiano a software esclusivi di OSX stesso e che, di fatto, per quanto simili, sono diversi.
I meno geek potrebbero impaurirsi difronte alla shell di Linux (terminale) ragion per cui, credo sia il caso di precisare che, gli utenti di Debian o distribuzioni derivate da esso, Ubuntu, Mint ecc possono servirsi di uno strumento visuale, simile a quello illustrato per Windows.
Il programma si chiama ImageWriter ed è possibile installarlo con un semplice comando del terminale.
Codice: Seleziona tutto
apt-get install imagewriter
Mac OS X
Premessa:
Il trasferimento dell'OS su Scheda SD con MacOS è molto simile a quello usato per Linux, anche se, useremo la suite di comandi forniti da diskutil (sostanzialmente utility disco fa da interfaccia grafica a questi strumenti testuali)
Prima di cominciare occorre scaricare ed estrarre l'immagine dell'OS in base al modello di Raspberry in nostro possesso. MacOS X, così come Linux, gestisce nativamente il formato .gz, basta un click del mouse per estrarre il contenuto dell'archivio nella cartella in cui si trova.
Nota:
Una nota doverosa è quella relativa all'identificazione dei dischi e delle partizioni di MacOS X che, in verità, è un po diversa da quella di Linux perchè molto più vicina a quella dei sistemi BSD (Dal quale OSX deriva)
In Linux La Seconda Partizione del Primo Disco è: /dev/sda2
In MacOS invece è: /dev/disk1s2
Sostanzialmente in Linux la lettera a, fa riferimento al Disco, il numero 2 Alla partizione, In MacOS X, come intuirete disk1 identifica il disco, s2 identifica la partizione 2.
Chiariti questi concetti valgono le stesse precauzioni fatte per Linux dal momento che useremo il comando dd per trasferire l'immagine su scheda SD.
Procedura
- Inserite la card nel lettore o nell'adattatore USB
- Digitate il comando: e identificate il dispositivo destinatario ignorando, però la partizione come, nel mio caso, /dev/disk1/ in foto
Codice: Seleziona tutto
diskutil list
[attachment=39]Mac1.png[/attachment]
- Smontiamo la Scheda SD con il comando dove X va sostituita con il numero del disco (Non la partizione) interessato.
Codice: Seleziona tutto
diskutil unmountDisk /dev/diskX
- Spostiamoci nella cartella contenente il file Estratto mediante il comando cd seguito dal percorso in cui si trova il file.
- Avviamo il trasferimento dell'OS su scheda SD usando questo comando: <tua immagine>.img va sostituito con il nome dell'immagine scaricata ed estratta e <disk#> va sostituito con il numero identificativo della Scheda SD (ad esempio /dev/disk1 come nel mio caso.
Codice: Seleziona tutto
sudo dd bs=1m if=<tua immagine>.img of=/dev/<disk#>
- Anche in questo caso, non vedremo nulla a schermo, se non a trasferimento ultimato, attendiamo che il sistema ci avverta (impiega un po) e smontiamo la scheda...
- Complimenti hai trasferito Retropie su Scheda SD [color=#008000][u]Nota:[/u][/color] Anche MacOS X dispone di alcuni strumenti grafici per il trasferimento delle immagini Disco su Su Scheda SD o USB, uno di essi è ApplePi-Backer, creato ad hoc per Raspberry Pi ma, francamente, a me non ha funzionato, Ad ogni modo è possibile scaricarlo da [url=http://www.tweaking4all.com/downloads/raspberrypi/ApplePi-Baker.zip]qui[/url]
Adesso operiamo da Raspberry con Retropie
Arrivati a questo punto possiamo inserire la scheda SD, (micro per i modelli B, B+ e 2) collegare il cavo hdmi, una tastiera USB, un Joystick e l'alimentatore (micro usb sui modelli più recenti) attendiamo l'avvio di Retropie che Dovrebbe terminare con l'esecuzione di EmulationStation, il Front end per i nostri Emulatori. Lo Schermo dovrebbe apparire simile a quello della foto in basso. Il sistema ci chiede di configurare un Joypad, per farlo premete un pulsante per qualche instante su di esso e vedrete il nome del dispositivo connesso se riconosciuto. Procedete seguendo le istruzioni a schermo e, ricordate, che i pulsanti non presenti su vostro joypad vanno evitati. Per farlo basta premere, per qualche istante, un pulsante precedentemente assegnato, e vedrete la dicitura HOLD TO SKYP prima, NOT DEFINED in un secondo momento. a questo punto proseguite. A configurazione ultimata sarete in grado di muovervi all'interno di EmulationStation.
A questo punto bisogna cominciare a settare Retropie per metterla a punto.
Per prima cosa bisogna espandere lo spazio occupato dal sistema affinché sia uguale a quello massimo disponibile della card utilizzata che, altrimenti diverrebbe inaccessibile.
ATTENZIONE !!! Se state usando Retropie 3.5 Saltate i prossimi passi da 1 a 5 e procedete dal successivo.
Retropie 3.5 Espande lo spazio automaticamente al primo avvio del sistema quindi non è più necessario eseguire questa delicata operazione
Procedura
Note:
Nome Utente: pi Password: raspberry
La password vale anche per l'utente Root (Admin)
- Premete F4 per uscire da EmulationStation
- Acquisiamo i privilegi di Root:
Codice: Seleziona tutto
sudo -s
- Lanciamo il tool di configurazione di Raspberry:
Codice: Seleziona tutto
raspi-config
Apparirà questa Schermata:
[attachment=37]raspi-config.png[/attachment]
- Scegliamo L'opzione Expand Filesystem e confermiamo con Invio
- Riavviamo il Sistema scegliendo Finish, altrimenti, tornando nel terminale digitate: e attendete il riavvio.
Codice: Seleziona tutto
reboot
Ecco un video esplicativo (su Retropie 2.6): [url=https://www.youtube.com/watch?v=ujYsnm-Zr4o]qui[/url]
- Al riavvio premiamo F4 e digitiamo tutto quanto descritto prima fino al tool raspi-config [u][color=#008000]Stavolta configureremo la lingua di sistema, il set di caratteri unicode, il fuso orario e la mappatura della tastiera.[/color][/u]
- Dalla Finestra di raspi-config selezioniamo la voce Internationalisation Options, come mostrato nella figura in basso
- Successivamente, nella prossima schermata andremo a scegliere l'opzione, Change Locale
- Poi, ancora, andremo a cercare, ne lunghissimo elenco, la voce it_IT.UTF-8 UTF-8 e diamo conferma spostandoci su ok ed invio
- Ritorneremo alla schermata precedente ed andremo a scegliere l'opzione Change Keyboard Layout e scegliamo standard, poi it_IT@Eruo
- Confermiamo le scelte di default fino alla fine, e ritornati alla schermata precedente, andremo a scegliere l'opzione Change Timezone
- Cerchiamo Europe, Rome, e usciamo dal tool. Prima con Ok poi con Finish!!! [attachment=36]Schermata 2015-07-24 alle 13.44.59.png[/attachment] [attachment=35]Schermata 2015-07-24 alle 13.45.27.png[/attachment] [attachment=34]Schermata 2015-07-24 alle 13.52.20.png[/attachment] [attachment=33]Schermata 2015-07-24 alle 13.54.28.png[/attachment] [attachment=32]Schermata 2015-07-24 alle 13.53.31.png[/attachment] [color=#008040]Bene Avete Concluso con la configurazione del fuso orario, della lingua e del layout della tastiera!!![/color] [color=#0080BF][u]Nota:[/u][/color] Nelle schermate che vedete sopra, le scritte in italiano, sono dovute al fatto che nel mio sistema la lingua, è già configurata in italiano e questi saranno i risultati che otterrete appena lo avrete fatto anche voi. Dal bordo della finestra, presente negli screenshoot, noterete che non ero su raspberry ma, al contrario, operavo da remoto per mezzo di una connessione SSH tra la Raspberry ed il mio mac. Vedremo ora come ottenere questi risultati.
La connessione remota risulta essere molto comoda per controllare il cabinato e retropie dal Pc. Su Mac e Linux la cosa è tanto simile quanto semplice. Partirò da questi due Sistemi per spiegare come muoversi in questo senso e rimando, solo provvisoriamente, la parte windows perchè, sul mio macbook pro, ha deciso di fare capricci. Comunque, accedendo alle risorse di rete è possibile individuare una risorsa chiamata retropie, basta aprirla per vedere che, al suo interno, si trovano cartelle Roms, Bios, e Configurations. Queste cartelle sono condivise automaticamente da retropie ma, per farlo, bisogna abilitare la condivisione via ssh. Vediamo come procedere (Lo si fa da respberry lanciando il tools, Raspi-config usato in precedenza).
Procedimento:
- Colleghiamo i cavi, monitor e tastiera ed attendiamo l'avvio di EmulationStation (che chiamerò ES per comodità )
- Premiamo F4 per uscire da ES e Spazio per impoedire che ES si riapra. Se la connessione SSH è attiva, potremo visualizzare l'indirizzo ip nella Schermata di Benvenuto visibile al momento della chiusura di ES. ma di solito non lo è e bisogna abilitarlo. come visibile nello screenshoot in basso. [attachment=31]retropie_Senza_ssh.png[/attachment]
- Abilitiamo il server SSH con il tool usato in precedenza:
Codice: Seleziona tutto
sudo raspi-config
- Scgliamo Advanced Options
- SSH[/+]
- Enable
- Finish e (non opbbligatorio ma consigliato) riavviamo
Codice: Seleziona tutto
sudo reboot
Note:
Retropie permette di eseguire dalla GUI il tools raspi-config direttamente dalla voce Retropie Menu presente in ES. Benchè sia una comodità, l'approccio standard, nel mio, caso, è preferibile in modo che chi, eventualmente, potesse avere problemi per i quali Retropie non fornisca strumenti grafici per la gestione della macchina, non abbia il timore di approcciarsi, per la prima volta, al terminale di Linux che, per fortuna, ha un potenziale ineguagliabile per poter far fornte a problemi di vario genere. basti pensare che, qualcuno, ad esempio, lo usa per modificare le immaggini, convertire video, masterizzare, senza necessità di usare un ambiente grafico, decisamente poco performante ed utile in ambienti in cui le risorse vanno preservate per scopi assai più utili e delicati.
Seguono gli screenshoot relativi ai passaggi sopra elencati.- Lanciamo il comando: e controlliamo se l'idiriizzo ip è visualizzato.
Codice: Seleziona tutto
retropie_welcome
[attachment=27]retropie_ssh.png[/attachment]
Arrivati a questo punto [color=#00BFBF]SIETE PRONTI A TRASFERIRE FILES E CONTROLLARE RETROPIE DA PC[/color]
- Apriamo un terminale
- Digitiamo il comando:
Codice: Seleziona tutto
ssh pi@indirizzo.ip
- ci verrà chiesta una password: che è raspberry, inseriamola. Nel mio caso scriverò: [code]ssh pi@192.168.1.2[/code] inserisco la password ed otterrò questo risultato. [attachment=26]avvio SSH.png[/attachment]
Attiviamo la Connessione SSH su WINDOWS (TUTTE LE VERSIONI)
Premessa
La connessione SSH in ambiente Windows è resa semplice da un programmino (putty) opensource che andremo a scaricare da QUI, avendo cura di scegliere la versione di windows appropriata (ad esempio 32 o 64bit). Il programma non va installato per cui, estratto l'archivio zip potete copiare il file ovunque, avendo cura però, di creare un collegamento sul Desktop per futuri, probabili, utilizzi!
Detto ciò, procediamo:
- Scarichiamo il software ed avviamo l'esguibile
- Inseriamo l'indirizzo IP del nostro Raspberry LA procedura per ottenerlo è la stessa indicata per Linux ed OSX
- Alla finestra della Sicurezza (che appare solo la prima volta che si usa un dato IP) rispondiamo affermativamente
- Inseriamo Nome utente pi
- Inseriamo la password raspberry
Bene abbiamo avviato il terminale del Raspberry su Windows
NOTA:
Anche senza Putty installato, che serve per operare in modalità terminale da remoto su Retropie, è possibile trasferire files da e verso Retropie, aprendo esplora risorse di windows, nelle risorse di rete. (come mostrato nel seguente Screenshot) L'importante è aver attivato il server SSH su Retropie come indicato in precedenza.
Trasferiamo i Files dal PC a Retropie attraverso i File Manager Nautilus e Finder
Premessa:
Gli screenshoot che vedete, per quanto simili a finestre di OSX sono in realtà di Ubuntu che, essendo installato sul mio MacBook Pro, ho cercato di rendere simile in modo da non confondere qualche familiare che potrebbe disorientarsi di fronte ad un ambiente nuovo. Eviteò screenshoot di OSX (Che in realtà ho già catturato) per il semplice fatto che la schermata del Finder e quella di Nautilus sono molto simili. Sappiate comunque che, se avete le roms ed i bios delle vostre piattaforme gia pronte potreste decidere di copiare tutto su un HD o una chiavetta da collegare alle porte della Raspberry e procedere da terminale al trasferimento dei file nella singole cartelle.
Nota:
Appena uscirete da ES sarete nella cartella
/home/pi/
Esiste una cartella denominata roms, nella quale sono presenti diverse sottocartelle, ognuna col nome della piattaforma supportata, ad esempio, megadrive, gb, c64, ecc. Le roms di ogni piattaforma andranno copiate nella rispettiva cartella, sia compressa (zip) che decompressa. Se optate per questa procedura potete collegare il dispositivo al raspberry e procedere da PC. Per spostarci nella cartella sorgente bisogna usare il comando cd (change directory) tyenendo presente che, linux e mac usano / non \ per dividere le cartelle tra loro. I dispositivi collegati alla porta usb saranno collocati in /media/usbX dove X sta per il numero che, varia in base alle periferiche (HD, Chiavette, Lettori CD ecc) connesse ed al numero di partizioni in esso presenti.
Ad esempio se una chiavetta o un HD ha due partizioni la prima sarà collocata in /media/usb0 mentre la seconda in /media/usb1 ecc.
Mentre le cartelle Bios e Roms, sono collocate in /home/pi/RetroPie
Chiariti questi concetti procediamo alla copia dei file usando il Terminale ed una chiavetta collecata al Raspberry, supponiamo che nella periferica via sia una cartella chiamata Roms che contiene una sottocartella che si chiama neogeo. dovremmo quyindi copiare tutti i files nella cartella di destinazione /home/pi/RetroPie/roms/neogeo/
Pérocediamo
- Spostiamoci nella cartella sorgente con il seguente comando:
Codice: Seleziona tutto
cd /media/usb1/Roms/neogeo
- Copiamo tutti i files presnti nella cartella destinazione:
Codice: Seleziona tutto
cp -v * /home/pi/Retropie/roms/neogeo/
Nota:
Questo procedimento trasferirà tutti i files e visualizzerà a schermo tutti i file che, mano a mano, saranno trasferiti
Ricordo inoltre che, questa procedura, esuguendola da remoto vale per tutti i sistemi operativi, perchè i comandi li stiamo eseguendo direttamente su Raspberry e quindi da Linux, ovviamente lo stesso vale se decidessimo di operare direttamente da Retropie su Raspberry collegando, ovviamente, anche una tastiera.
Procedimento da Remoto (in modalità grafica) usando Il Finder (Mac OS X) o Nautilus (Linux, Ubuntu, Debian ecc.)
- Apriamo il Finder o Nautilus e osserviamo in basso a destra l'elenco dei dispositivi locali e romoti. e cerchiamo Roms su retropie, Bios su retropie (Su Linux) o semplicemnnte Retropie su Mac e clicchiamoci sopra Otterremo questo Risultato su Linux [attachment=25]Retropie-Cartella Remota.png[/attachment] Questo, invece, dovrebbe essere ciò che osserverete cliccando su retropie, nel lato sinistro della finestra del Finder. Le stesse cartelle, poi, dovrebbero essere visibili anche esplorando la rete (Risorse di Rete) in Windows, il sistema di condivisione della cartelle e garantito da Smb "SAMBA" pienamente compatibile con i sistemi Windows (Dal quale, in verità, è stato ereditato) [attachment=24]Retropie_Browse-Net.png[/attachment]
- Aprite un altra finestra del Finder o di Nautilus, e affiancandola a quella precedentemente aperta, eseguite il Trasferimento delle Roms e dei Files Necessari. Il risultato dovrebbe essere simile a questo: [attachment=23]Retropie-trasfer.png[/attachment]
INSTALLARE I JOYSTICK SU PORTA GPIO
AGGIORNAMENTO DEL 21 Febbraio 2016 Solo per Retropie 3.5
Ho riscontrato alcuni problemi nell'installare il driver GPIO con questa versione di Retropie quindi, per evitare di imbattervi nei miei stessi problemi, seguite questi passi prima di installare il driver:
- Apriamo un terminale ed installiamo rpi-update
Codice: Seleziona tutto
sudo apt-get install rpi-update
- Importiamo le chiavi ed i certificati necessari per accedere ai serve https:
Codice: Seleziona tutto
wget http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
- Spostiamoli i due files nella cartella /usr/local/share/ca-certificates/
Codice: Seleziona tutto
sudo cp root.crt /usr/local/share/ca-certificates/cacert-root.crt
Codice: Seleziona tutto
sudo cp class3.crt /usr/local/share/ca-certificates/cacert-class3.crt
- Aggiungiamo le chiavi ed i certificati al sistema in modo che siano subito disponibili
Codice: Seleziona tutto
sudo update-ca-certificates
Se tutto è avvenuto correttamente, vedrete qualcosa di simile nel terminale$ sudo update-ca-certificates
Updating certificates in /etc/ssl/certs... 2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Adding debian:cacert-class3.pem
Adding debian:cacert-root.pem
done.
done. - BENE AVETE FINITOProcediamo seguendo la parte successiva
Questa procedura permette di installare e configurare uno o due joystick su porta GPIO (General Purpouse Input Output) Il numero dei joystick collegabili alla raspberry attraverso questa porta dipende, principalmente dalla versione di Raspberry in vostro posssso. Le versioni A e B, infatti, hanno un porta GPIO decisamente più piccola (26 PIN) rispetto alle rev. A+, B*+ e la Più Recente Versione 2 che possano contare su 40 PIN. Quindi nel primo caso possiamo contare solo su un joystick e 8 pulsanti nel secondo, invece 2 Joystick e 16 pulsanti. Questi limiti, anche nel caso della Raspberry A+ B+ e 2 sono dettati dal numero di 21 pin usabili per l'indirizzamento dei dati (gli altri servono per altre funzioni oltre ai GND (Ground) necessari per il corretto funzionamento degli stessi) Cosa cmq, risolvibile Combinando la pressione di più tasti contemporaneamente, ad esempio, per tornare al frontend (EmulationStation)
Queello che andremo a fare è, dunque, configurare un controller che abbia, per ogni player, 1 leva (joystick) e 8 pulsanti: A, B, X, Y, L(TL), R(TR), Select e Start.
Come nello schema sottostante.
Per il mio cabinato Select Corrisponde al COIN (in MAME , FINAL BURN ALPHA, NEOGEO) mentre START corrisponde Al Tasto START arcade, di solito raffigurato con l'omino. Ovviamente negli altri Emulatori, MEGADRIVE, SNES, PSX Ecc questi pulsanti rispetteranno quella che hanno nelle rispettive macchine. Combinando la pressione di questi due, Esco dal gioco e torno al forntend (EmulationStaton).
COLLEGAMENTO PULSANTI
Se non disponete di un kit che fornisca i cavi, bisogna procedere a collegare i poli di tutti gli interruttori (in genere quello COM) tra di loro. Questo perché, tutti hanno il Ground (GND) che serve di ritorno ed è comune a tutti.
L'altro polo, invece, dev'essere collegato tendendo in considerazione il numero di player e la Raspberry in proprio possesso, secondo gli schemi che seguono.
RaspberryPi A, B RaspberryPi A+, B+ Raspberry Pi 2 Un kit, comprendente anche un controller USB (xin-mo) che, oviamente non userete, potrebbe essere Questo che oltre al controller xin-mo aggiunge cavi, 2 joystick e 22 Pulsanti più convertitore jamma e lampadine (i pulsanti sono luminosi) a 38$ più le spese. Potrebbe essere un buon punto di partenza. Terminati i Cablaggi, procediamo alla configurazione del software.
Installazione del Driver GPIO
Premessa:
Il driver è compatibile per entrambi le soluzioni e, nonostante sia possibile procedere all'installazione manuale, procederemo seguendo il metodo automatico che funziona sempre. Questa procedura può essere eseguita sia da locale (dal raspberry stesso) che da Remoto via SSH. Procediamo.
- Colleghiamo la raspberry in rete, via Lan o Wifi.
- Se Operiamo da locale, premiamo F4, poi spazio, per uscire dal EmulationStation. Altrimenti, se operiamo da remoto avviamo la connessone SSH.
- Creamo una cartella che chiameremo mkjoystick:
Codice: Seleziona tutto
mkdir mkjoystick
- Spostiamoci al suo interno:
Codice: Seleziona tutto
cd mkjoystick
- Scarichiamo l'installer del driver dal sito di digitalLumberjak: e aspettiamo che finisca.
Codice: Seleziona tutto
wget https://github.com/digitalLumberjack/mk_arcade_joystick_rpi/releases/download/v0.1.4/install.sh
- Rendiamo eseguibile il file scaricato: A questo punto, bisogna aggiornare il sistema e scaricare i sorgenti del Kernel ed i moduli DMKS, per farlo basta lanciare il tool scaricato e avviarlo con l'ozione updatesystem, tranquilli è più semplice farlo che dirlo
Codice: Seleziona tutto
chmod +x install.sh
- Aggiorniamo il sistema e ed installiamo i sorgenti del kernel:
Codice: Seleziona tutto
sudo sh ./install.sh updatesystem
- A processo finito, (5 min) occorre ravviare il sistema, facciamolo così: A Questo Punto accertiamoci di essere nelle condizioni del Punto 1 e 2 e proseguiamo ad installare il driver.
Codice: Seleziona tutto
sudo reboot
- Ripetiamo il punto 3, ovvero spostiamoci nella cartella del Driver:
Codice: Seleziona tutto
cd mkjoystick
- Lanciamo l'installer, stavolta senza opzioni, e attendiamo che il processo si concluda: Aggiornamento Retropie 3.8 del 13 Giungo 2016
Codice: Seleziona tutto
sudo sh ./install.sh
Se Operiamo con Retropie 3.8 o successivi
- Colleghiamo la raspberry in rete, via Lan o Wifi.
- Se Operiamo da locale, premiamo F4 per uscire dal EmulationStation. Altrimenti, se operiamo da remoto avviamo la connessone SSH.
- Creamo una cartella che chiameremo mkjoystick:
Codice: Seleziona tutto
mkdir mkjoystick
- Spostiamoci al suo interno:
Codice: Seleziona tutto
cd mkjoystick
- Scarichiamo i software necessari
Codice: Seleziona tutto
sudo apt-get install -y --force-yes dkms cpp-4.7 gcc-4.7 git joystick raspberrypi-kernel-headers
- Scarichiamo il pacchetto precompilato in questo modo:
Codice: Seleziona tutto
wget https://github.com/digitalLumberjack/mk_arcade_joystick_rpi/releases/download/v0.1.4/mk-arcade-joystick-rpi-0.1.4.deb
- Installiamolo con aspettiamo che finisca!
Codice: Seleziona tutto
sudo dpkg -i mk-arcade-joystick-rpi-0.1.4.deb
Ottimo abbiamo installato il driver. A questo punto si può proseguire
FINE AGGIORNAMENTO DI RETROPIE 3.8
CARICHIAMO IL DRIVER, Testiamo il Joystick e Rendiamo automatico il caricamento all'avvio del sistema.
Premessa
Ora che il driver è installato possiamo testarlo senza riavviare e senza avviare EmulationStation.
SE SI HA UN SOLO JOYSTICK CONNESSO o una RASPBERRY A - B PROCEDIAMO COSI' :
Codice: Seleziona tutto
sudo modprobe mk_arcade_joystick_rpi map=1
SE SI HANNO DEU JOYSTICK CONNESSI PROCEDIAMO COSI' :
Codice: Seleziona tutto
sudo modprobe mk_arcade_joystick_rpi map=1,2
A questo punto il driver è caricato ma, bisogna procedere all'automatizzazione di questo procedimento onde evitare di dover caricare il driver manualmente ad ogni riavvio. Per farlo occorre modificare un file che, all'avio del sistema, viene letto e, in modo sequenziale, avvia i singoli moduli elencati nel suddetto file. Ovviamente anche qui, bisogna inserire la stringa corretta in base al numero di joystick collegati al GPIO, per chi ha una Raspberry A e B è sempre e solo 1.
L'editor di testo che useremo sarà nano e, se avete configurato la lingua di sistema in italiano dovrebbe essere abbastanza semplice comprendere come funziona. ad ogni modo i comandi sono
CONTROL+o per Salvare
CONTROL+x per Uscire dall'editor di testo.
PROCEDIAMO
PER CHI USA RETROPIE 3.2 O VERSIONI PRECEDENTI
- Avviamo l'editor di testo che punti direttamente al file da modificare:
Codice: Seleziona tutto
sudo nano /etc/modules
- Aggiungiamo questa riga se abbiamo UN solo Joystick:
Codice: Seleziona tutto
mk_arcade_joystick_rpi map=1
- Oppure questa se abbiamo DUE Joystick:
Codice: Seleziona tutto
mk_arcade_joystick_rpi map=1,2
- Aggiungiamo questa riga se abbiamo UN solo Joystick:
- Premiamo CTRL+o per salvare il file.
- Premiamo CTRL+x per uscire dall'editor.
PER CHI USA RETROPIE 3.4 O VERSIONI SUPERIORI
Premessa:
Raspbian è stato aggiornato alla versione Jassye di Debian dalla quale deriva, RetroPie, di conseguenza, ha ereditato tutte le modifiche appartate alla distro madre dalla quale dipende.
Nonostante abbia cercato, più volte, al team di sviluppo di suggerirmi una soluzione efficace per far avviare il driver al boot, non ho ricevuto nessuna risposta. Allora, Armato di Buona Pazienza, sono andato
a leggere un po di documentazione di Raspbian per cercare di capire come ragionasse il sistema in fase di boot al fine di capirci qualcosa e porre fine a questo, apparentemente, insormontabile problema. Devo dire che sono riuscito ad ottenere
il risultato sperato e, finalmente, il Driver GPIO, viene caricato automaticamente al boot del nostro Retropie 3.4 - 3.5!
PROCEDIAMO
- Avviamo l'editor di testo che punti direttamente al file del driver da caricare:
Codice: Seleziona tutto
sudo nano /etc/modules-load.d/modules.conf
- Aggiungiamo questa riga [/color]
Codice: Seleziona tutto
mk_arcade_joystick_rpi
- Premiamo CTRL+o per salvare il file.
- Premiamo CTRL+x per uscire dall'editor.
- Avviamo l'editor di testo che punti direttamente al file di configurazione delle opzioni del driver:
Codice: Seleziona tutto
sudo nano /etc/modprobe.d/mk_arcade_joystick_rpi.conf
- Aggiungiamo questa riga se abbiamo UN solo Joystick:
Codice: Seleziona tutto
options mk_arcade_joystick_rpi map=1
- Oppure questa se abbiamo DUE Joystick:
Codice: Seleziona tutto
options mk_arcade_joystick_rpi map=1,2
- Aggiungiamo questa riga se abbiamo UN solo Joystick:
- Premiamo CTRL+o per salvare il file.
- Premiamo CTRL+x per uscire dall'editor.
Testiamo il joystick:
Il Joystick lo si può testare direttamente nella consolle, stavolta da locale, attraverso il seguente comando:
PLAYER 1:
Codice: Seleziona tutto
jstest /dev/input/js0
PLAYER 2:
Codice: Seleziona tutto
jstest /dev/input/js1
Se avete altri gamepad configurati i numeri js0 o js1 potrebbero corrispondere a quelli precedentemente configurati. Ad esempio, prima di configurare questo collegato su GPIO avevo due gamepad XBOX 360 configurati e tutt'ora collegati, in tal caso Il GPIO 1 sarà js2 e il GPIO 2 sarà js3
ATTIVIAMOLI SU EMULATION STATION
L'attivazione su Emulation Station è molto semplice. Ricordiamoci solo che, I Tasti L ed R corrispondono alla voce TOP LEFT e TOP RIGHT. Ricordiamo, inoltre, che i tasti non presenti possono essere ignorati premendo un tasto precedentemente assegnato per due secondi.
NOTA: Se non abbiamo configurato nessun joystick in Emulation Station, sarà lui a chiederci di Farlo per cui saltiamo i passi A e B del seguente procedimento.
Procediamo:
- Premiamo Start
- Configure Input
- Premiamo un pulsante a caso del joystick 1 o 2 e noteremo il suo nome. GPIO Controller 1 Corrisponde al Player 1 così come GPIO Controller 2 corrisponde al Player 2.
Finita la configurazione dei controller sarete in grado di muovervi nel menu di EmulationSation e, i giochi supportati da Retroarch seguiranno lo schema che vi ho proposto All'inizio della procedura di installazione del driver.
CONFIGURARE CONTROLLER USB XIN-MO
Premessa:
L'uso di un controller usb esterno per realizzare una cabinato arcade, per quanto superfluo (giacché si può optare per la soluzione GPIO che non richiede hardware supplementare, può tornare utile qualora si voglia aumentare
il numero di player disponibili per giochi che li supportano, ad esempio: KNIGTHS OF THE ROUND per mame che supporta 3 giocatori simultaneamente. Per molto tempo questa periferica è stata supportata da Linux poi, a causa di un bug presente nelle più recenti versioni del kernel, cominciarono a verificarsi problemi tipo:
A) Posizione del Joystick UP & Left non accettata e non riconosciuta
B) Secondo Joystick e Pulsanti non riconosciuti o Riconosciuti come equivalenti al primo o, ancora, Riconosciuti come tasti e joystick supplementari ma sempre relativi al Player 1.
Nonostante fosse possibile riparare ricompilando i sorgenti del kernel previa modifica di alcuni parametri o all'aggiunta di patch, la procedura risultava lunga e difficile per chiunque fosse estraneo al mondo linux.
Dopo miriadi di ricerche sul web, dopo infiniti forum letti (in inglese) nonostante tutti garantissero che la pacth fosse stata implementata nelle release future del kernel i problemi continuavano a persistere, finché,
per pura casualità, non venni a conoscenza di una soluzione efficace quanto banale che, a breve, descriverò.
Attenzione
La seguente procedura è stata testata su Retropie 3.2.1 e successivi con Raspberry pi B+ e pi2
- Procuriamoci un Controller Xin-Mo 2P Arcade Controller o THT-THT Arcade Console 2P USB player! Il controller, di solito, è fornito in bundle con i kit standard di pulsanti arcade... Ecco una foto per riconoscerlo
- Colleghiamo i joystick ed i pulsanti seguendo lo schema proposto di seguito:
- Da Retropie o da Remoto (ma anche inserendo la scheda SD in un lettore e modificando il file cmdline.txt che trovate nella partizione boot) editiamo il file: cmdline.txt in questo modo:
- Apriamo il file cmdline.txt con:
Codice: Seleziona tutto
sudo nano /boot/cmdline.txt
- Aggiungiamo il Seguente codice all'interno del file (mettetelo anche a inizio rigo, quel che conta, però, è lasciare uno spazio vuoto tra questo ed il comando che segue) in questo modo:
Codice: Seleziona tutto
usbhid.quirks=0x16c0:0x05e1:0x040
- Premiamo CTRL+o per salvare il file di testo
- Premiamo CTRL+x per chiudere l'editor di testo
- Riavviamo il Sistema
Codice: Seleziona tutto
sudo reboot
- Tornati a Emulation Station Procedete a configurare i pulsanti e, stavolta, saranno rilevati 2 Joystick anziché 1
BENE Avete Configurato il vostro Controller Arcade

Personalizzare Emulation Station
Installare e Cambiare i Temi
Illustrerò, passo passo, come installare i temi e come impostarli
NOTA:
Giacché Retropie ha permesso di accedere al tools di configurazione direttamente dal frontend useremo questo metodo per avviarlo evitando di premere F4 e spazio per avviare la consolle.
Si può usare anche il controller per navigare nei menu della shell, se avete configurato il GPIO seguendo il mio schema, il tasto per confermare è Y, ovvero, il primo tasto in alto a destra!
Se non volete ripetere, ogni volta, questa procedura scaricate ed installate tutti i temi in modo tale che, all'occorrenza, siano già disponibili nel frontend.
N.B. Alcuni mancano di immagini e loghi perciò, a meno che non decidiate di crearli da voi, avrete delle scritte orripilanti. Siete Avvisati !!!!
ATTENZIONE
L'uso di temi diversi da, CARBON, EUDORA, TURTLE-PI, CANELA, (anche le relative varianti degli stessi) possono provocare il Freeze o il Crash caratterizzato da una schermata bianca, in presenza di 10 o più emulatori.
Una possibile soluzione potrebbe essere quella di dedicare più memoria alla scheda video! Consiglio di avviare sempre una connessione ssh in modo da tenere sempre sotto controllo il sistema e, all'occorrenza,intervenire per risolvere eventuali problemi.
- dal Frontend spostiamoci nel menu di Retropie
- Scegliamo la voce Retropie-Setup
- Sceglimo l'opzione 3: Setup / Configuration (to be used post install)
- Scegli opzione 307: Install themes for Emulation Station
- Rispondimo/clicchiamo su OK alla finestra che appare
- Sceglimo i temi da installare
- Attendiamo l'installazione del/dei tema/i
- Usciamo dal menu cliccando su annulla fino a tornare nel menu Retropie del Frontend
- Benché non sia previsto consiglio sempre di Riavviare (Dopo aver installato il Tema, o più temi) [Se installate Tanti temi, riavviate soloquando avrete finito di installarli tutti.]
- Tornati in Emulation Station Potremo Scegliere tra i temi installati
Quello di default delle precedenti versioni di Retropie era il tema simple mentre quello attuale è carbon
TEMI CONSIGLIATI
- EUDORA
- TURTLE-PI
- CANELA
- SIMPLE
Come anticipato, alcuni temi, provocano dei Freeze o Crash e, nonostante il sistema sia attivo, lo schermo bianco vi impedisce di vedere ciò che state facendo. Proviamo a premere F4 e poi spazio, se riuscite ad accedere alla consolle di Retropie tralasciate il primo passo nella sequenza indicata sotto altrimenti partiamo da esso.
Supponiamo che io abbia installato il tema turtle-pi e che, lo stesso, provochi il crash. Ovvio che, nella vostra configurazione, troverete un altro nome al posto di turtle-pi, l'importante è sostituirlo con carbon.
- Accertatevi di avere attivato la connessione SSH su Retropie e di esservi connesso ad esso dal PC
- digitiamo il comando:
Codice: Seleziona tutto
nano -w .emulationstation/es_settings.cfg
Ci ritroveremo un file come questo :<?xml version="1.0"?>
<bool name="BackgroundJoystickInput" value="false" />
<bool name="DrawFramerate" value="false" />
<bool name="EnableSounds" value="true" />
<bool name="QuickSystemSelect" value="true" />
<bool name="ScrapeRatings" value="true" />
<bool name="ShowHelpPrompts" value="true" />
<int name="ScraperResizeHeight" value="0" />
<int name="ScraperResizeWidth" value="400" />
<int name="ScreenSaverTime" value="300000" />
<string name="Scraper" value="TheGamesDB" />
<string name="ScreenSaverBehavior" value="dim" />
<string name="ThemeSet" value="turtle-pi" />
<string name="TransitionStyle" value="fade" /> - Alla penultima riga,evidenziata in rosso per distinguerla, sostituiamo la scritta nelle virgolette turtle-pi con carbon facendo attenzione a non lasciare spazi vuoti e a non eliminare le virgolette
- Premiamo i tasti CTRL+o per salvare il file
- Premiamo CTRL+x per uscire dall'editor
- Riavviamo la raspberry La connessione ssh sarà interrotta!
Codice: Seleziona tutto
sudo reboot
- A boot ultimato dovreste trovarvi in Emulation Station allo stato di default.
Personalizzare lo Splashscreen (Immaggine o Video) al boot
Personalizzare la schermata di avvio di Retropie, oltre a contribuire a rendere più gradevole l'avvio del sistema, consente di personalizzare, secondo i nostri gusti, la nostra bella gamebox.
Che siate di fronte ad un cabinato o ad una nuda Raspberry pi, abbellire l'avvio di Linux è appagante e quanto semplice e, a meno che non siate dei severi sysadmin, tutto ciò che vorreste
vedere all'avvio del sistema, sono immagini colorate o video. Fino a poco tempo fa, non era previsto uno strumento per gestire in maniera così semplice tutto ciò, ora, grazie ai tools di
Retropie, tutto diventa semplice e intuitivo. Tuttavia, chi ha avuto modo di approcciarsi a Retropie nelle versioni antecedenti alla 3.2, potrebbe trovarsi disorientato non trovando i files
immagine riservate al boot. Lo scopo di questa mini guida è quello di rendere quanto più agevole e indolore possibile questo procedimento grazie ai nuovi tools presenti in RetroPie 3.X.
NOTA:
Tralascio, volutamente, le solite spiegazioni su come avviare lo script da shell o da remoto in quanto, abbondantemente, discussi nei paragrafi precedenti. Detto ciò, Procediamo!
- Da shell, da remoto o, semplicemente, dal menu Retropie in Emulation Station, Avviamo lo strumento retropie-setup
- Al menu che appare selezioniamo la terza opzione (Setup / Configuration ecc..)
- Al seguente menu, scorriamo il lungo elenco di opzioni disponibili fino a giungere alla 23^ (Configure Splashscreen)
- Attendiamo che il sistema scarichi i files necessari dalla rete (accertiamoci di essere online)
- A lavoro ultimato ci troveremo di fornte una schermata simile a quella in Fig. 4 e, stando attenti, avremo una nuova cartella: che, dopo il riavvio di SAMBA (il server che condivide le cartelle ROMS BIOS e CONFIG in Rete) apparirà nelle risorse di rete disponibili.
Codice: Seleziona tutto
/home/pi/RetroPie/splashscreens
Se ciò non dovesse accadere apriamo un terminale (o da remoto con putty) e digitiamo il comando:
A) Scorrere fino alla fine del fileCodice: Seleziona tutto
sudo nano /etc/samba/smb.conf
B) Aggiungiamo queste righe:
C) Premiamo CTRL+o per salvare il file[splashscreens]
comment = splashscreens
path = /home/pi/RetroPie/splashscreens
writeable = yes
guest ok = yes
create mask = 0644
directory mask = 0755
force user = pi
D) Premiamo CTRL+x per uscire dall'editor - Riavviamo il server samba con il comando:
Codice: Seleziona tutto
sudo service samba restart
- A questo punto la cartella è visibile nelle risorse di rete di Retropie!!!!
NOTA 2:
Perché RetroPie riconosca le nostre immagini occorre che ogni singolo file sia copiato in una cartella avente il nome quanto più simile al file stesso, nella cartella /home/pi/RetroPie/splashscreens dal momento che la suddetta cartella sarà visibile nelle risorse di rete, diventa semplice individuarla! - Trasferiamo una cartella contenente un file immagine o video (il video deve essere mp4 con risoluzione Full HD (1980x1020, le immagini devono essere PNG sempre 1980x1020)
- Scegliamo l'opzione 3, Enable custom splashscreen on boot e, se abbiamo agito correttamente, troveremo la cartella precedentemente copiata nell'elenco che appare
Tutto OK, abbiamo impostato il nostro splashscreen
Ora sapete Come Muovervi, Buon Boot a tutti!
Seguono le immagini riepilogative, eccetto quelle del trasferimento da pc, è come passare le roms nelle varie cartelle ...