Più di un anno fa veniva pubblicata su Lega Nerd la mia guida su come costruirsi una vera e propria console portatile con il semplice ausilio di un Raspberry e un minimo di dimestichezza “informatica”. Da Marzo 2017, complice il successo del Mini NES di Nintendo, c’è stato un vero e proprio boom di mini console che ripropongono i maggiori titoli di successo per l’uno o l’altro sistema. Dal Mini SNES al Neo Geo Mini, passando per l’Atari Flashback e la Playtation Classic.
Tutte console perfettamente emulabili con la nostra soluzione, già prima dell’uscita dei suddetti prodotti sul mercato. Ma allora perché un nuovo articolo? Perché continuare a parlare del Retropie se già riesce a soddisfare tutti i nostri bisogni di retrogaming?
Nonostante il Raspberry sia un ottimo contenintore, risulta particolarmente carente nella parte inerente ai controlli. Sebbene sia abbastanza intuitivo impugnare un pad Playstation/XBox per approcciarsi a titoli di console casalinghe quali lo SNES o un Genesis, manca ancora quel feeling tipico per essere catapultati direttamente nella nostra infanzia.
Manca ancora un controller che ci faccia veramente avere la sensazione di esserci portati una sala giochi in casa.
Complice un vecchio video di MailTime dove Itomi comprava un arcade stick, mi sono iniziato a documentare e ho fatto delle scoperte davvero interessanti.
Two is meglio che One
Di soluzioni ready-to-go ce ne sono quante ne volete, su Amazon è possibile trovare kit più o meno completi dotati di tasti, joystick e “case” sagomati tramite cui assemblare il tutto.
Quello che si nota da subito è che queste soluzioni sono tarate per un singolo giocatore, manca totalmente una configurazione che sia adatta per stare spalla a spalla con un nostro amico e godere dei medesimi controlli arcade.
A volere essere precisi ci sono delle soluzioni apposta per due giocatori, come il noto Pandoras Box, che però prevedono già una soluzione con al suo interno già inserito un Raspberry pre-configurato, che quindi per noi risulta poco interessante visto che in teoria vorremmo utilizzare quello che già precedentemente abbiamo preparato con le nostre abili manine.
In ogni caso guardando i vari modelli di Pandoras Box sono riuscito a capire quale fosse il risultato finale che volevo ottenere, ma ho scoperto che purtroppo era solamente la punta dell’iceberg.
Pulsanti, cavi e delay
Il primo passo che mi è venuto naturale è stato quello di capire quali fossero i pulsanti e i joystick più idonei al mio scopo, anche perché comunque la plancia poi deve essere forata con un diametro adatto ai componenti scelti.
Il mio primo impeto è stato quello di andare su Amazon per verificare se ci fossero delle soluzioni già complete e devo dire che non ne sono rimasto deluso. Però tutto quello che vedevo mi sembrava alla stessa stregua di cinesate da pochi spicci, quindi ho preferito ritardarne l’acquisto per documentarmi prima in separata sede.
Ho così scoperto che esiste un mondo “competitivo” di persone che usano joystick ed emulatori in casa per allenarsi in vista dei vari eventi di eSports. Ad esempio la stessa Evolution Championship Series (EVO) prevede un premio per il vincitore del torneo di Street Fighter 2 Turbo.
Ci sono quindi controller più o meno adatti per l’uno o l’altro gioco a seconda dell’obiettivo che si vuole raggiungere.
In particolare c’è un elemento tenuto attentamente in considerazione quando si utilizzano questi emulatori: il delay.
Per pochi millisecondi di differenza
C’è una vera e propria scienza dietro quale sia la combinazione migliore fra i joystick e i pulsanti da usare, sulla base di quanto sia il ritardo fra la pressione di questi e l’effettiva esecuzione dell’animazione in-game.
Per farla breve dal mondo competitivo i più apprezzati sono i Joystick Sanwa, personalizzabili sotto diversi aspetti, quali il rumore che viene fatto dallo stick, quando sono vincolati nei loro movimenti, che tipo di “palline” si vuole mettere sopra etc..
Per i pulsanti il discorso è ancora diverso. Sebbene un pulsante bene o male sia un semplice pezzo di plastica, sotto di esso è presente un microswitch, ossia un piccolo interruttore che si occuperà di mandare il segnale di pressione al nostro Raspberry.
Anche per i microswitch ci sono diverse possibilità di acquisto, ma quelli più idonei al nostro scopo (ossia puro divertimento, senza pretese di essere super competitivi) sono quelli della marca Acemake. Quelli meno costosi infatti risultano leggermente più duri e rischiano, con un utilizzo prolungato, di deformare la plastica del pulsante che vi appoggeremo sopra.
Purtroppo in questo caso Amazon non ci aiuta, perché i loro kit pre-confezionati non ci danno garanzie sul tipo di prodotto che ci verrà inviato in termini di Joystick o microswitch. C’è però un sito francese specializzato proprio in questo, Jammastar.com, dove io stesso ho reperito parte dei componenti per questo progetto.
In particolare:
In ogni caso, dovrete selezionare dal menu a destra i microswitch che preferite, Acemake nel mio caso.
Quanto avete appena comprato però non si collegherà magicamente al vostro dispositivo raspberry, ma sarà necessario avvalersi di connettori specifici e una buona dose di pazienza, perché questi a loro volta potrebbero essere dei colli di bottiglia per le performance del prodotto.
Un termine spesso associato ai vari set di pulsanti è zero-delay, che niente altro è se non un piccolo encoder bianco che presenta diversi pin di connessione, fra cui uno per un cavo USB standard.
Spesso le pulsantiere vengono vendute già con i cavi e gli encoder, ma non è tutto oro quello che luccica.
Nonostante il nome infatti questo encoder presenta comunque un ritardo nella risposta ai comandi. Apro una piccolissima parentesi per specificare che la presenza o meno di un delay nei comandi non è una cosa banale, chiaramente non stiamo cercando di avere una connessione al massimo livello di rapidità per concorrere nei tornei di e-sport, ma è importante che i giochi abbiano il giusto feedback quando ci giochiamo.
Per un gioco come Dragon’s Lair, anche un minimo ritardo nei comandi può essere fatale.
Se, ad esempio, cercassimo di giocare a Dragon’s Lair tramite emulatore Daphne, un controller con zero-delay spesso non elaborerà i nostri input in un tempo abbastanza rapido da non farci fallire alcune sessioni di gioco.
Ecco quindi che se ad un costo identico si può ovviare il problema forse conviene passare ad una soluzione più performante.
Il GPIO, questo sconosciuto
Una cosa che i meno esperti potrebbero non avere notato è che il Raspberry contiene sulla sua scheda anche due file di connettori GPIO (General Purpose Input Output) dove è possibile, previa consultazione di appositi schemi, connettere direttamente i pulsanti e lo stick di controllo.
Unico caveat di questo approccio è che i cavi di connessione devono avere gli attacchi giusti, ma fortunatamente sempre il sito JammaStar accorre in nostro aiuto. Bisognerà munirsi sia di cavi denominati “GPIO connectors” sia di cavi denominati “Ground Harness” che servono per la messa a terra del circuito.
In particolare io ho acquistato i seguenti set:
- Ground Harness da 30 connettori – Connessi in catena
- Connettori da Dupont a GPIO – Con passo da 48 mm
Mi raccomando, in questo caso specifico è necessario sapere di quanti millimetri è il vostro attacco sul microswitch, visto che può essere di 3 dimensioni, ossia da 2.8, da 4.8 e da 6.3. Nel mio caso il passo era da 4.8, quindi ho scelto selezionato la dimensione giusta dai vari menu di acquisto.
Inoltre, se la messa a terra viene venduta in kit da 30 connettori già connessi in catena, per gli altri cavi dovrete determinarne il numero esatto di cui avete bisogno. Per una soluzione che prevede due giocatori avrete:
- 1 Cavo per ogni direzione del Joystick (Su, Giù, Sx, Dx)
- 1 Cavo per ogni pulsante che volete avere (6 per gli input durante il gioco + 2 di servizio)
Avremo quindi 12 cavi per giocatore, per un totale finale di 24 cavi.
Aggiungetene due, che vi serviranno per l’unica cosa realmente complicata di questa guida, e un paio di scorta, nel caso se ne dovesse rompere qualcuno (come mi è successo).
Considerando che con poco più di 20 euro vi portate a casa tutto spedito, si riesce ad avere tutto il necessario allo stesso prezzo richiesto per acquistare due encoder zero-delay, ma senza i ritardi di quest’ultimo.
Ci sei? Sei connesso?
In questo marasma di cavi e compagnia bella, la prima domanda che mi sono posto è stata piuttosto semplice.
Come connetto tutto insieme? Anche perché osservando il GPIO non vengono indicati in alcun modo i poli da utilizzare per i vari scopi. Fortunatamente in giro per la rete è possibile trovare diversi schemi di collegamento, che spiegano in modo specifico come connettere i vari componenti. Personalmente ho usato quello che vedete qui sotto, perché è già studiato per due giocatori con 6 pulsanti e i due START/SELECT.
Questa immagine deve essere considerata con la parte alta rappresentate dei due connettori GPIO più lontati dalle porte USB, o se preferite quelli che sono situati più vicini al bordo.
Nel microswitch bisognerà mettere il cavetto con la parte finale con due fori, mentre nel GPIO la parte con un solo foro. Ciò che salta all’occhio è che negli switch c’è ancora una connessione che rimane “vuota”, dove andremo a posizionare i nostri cavi per la messa a terra.
Come già spiegato il cavo per la messa a terra è in realtà collegato in cascata, con due estremità che sono invece “libere”. Una delle due connessioni esterne sarà da connettere al GPIO, nelle prese rimaste inutilizzate indicate come “ground”.
Il mio personale consiglio è di dividere la catena di connettori in due, in modo da tenere separati i set di controller, tenendone 12 da una parte e 12 dall’altra.
A questo punto sorge spontaneo lo scoglio più grosso di questa soluzione. Come connetto la terra al GPIO? Per ovviare al problema dovrete saldare due una estremità del cavo ground (senza connettore) ad una del connettore dupont (sempre senza connettore).
Ricapitolando:
- Dividete la catena ground in due, tenendo una estremità con solo il cavo senza connettore.
- Prendete uno dei cavi dupont, e tagliatelo a metà, tenendo la parte con il connettore che andrà direttamente sul GPIO
- “Sgommate” una piccola parte dei due cavi, connetteli e saldateli.
- Vi troverete con una catena ground che ha in una estremità il connettore da inserire sul GPIO
Per i dettagli sulla saldatura e compagnia bella, vi rimando ai numerosi video su youtube che spiegano per filo e per segno come eseguire la procedura.
A questo punto, bisogna collegare il tutto alle porte “ground” presenti sul GPIO, una per set di controller. Ad esempio la 39/34 andranno benissimo. Cercate sempre di usare lo stesso connettore su ogni pulsante per la terra, in modo da non confondervi.
Al momento della redazione di questa guida mi sono reso conto che sempre su Jammastar vendono dei kit contenenti già i cavi di terra e quelli dupont e un encoder che sinceramente non conosco.
Sulla descrizione c’è già scritto che non serve nessun tipo di saldatura, ma onestamente ignoro se il pacchetto venduto sia già comprensivo di tutto quanto vi serve.
Per i più temerari lascio il link qui sotto:
Ah, non è plug-and-play?
So che vorreste, una volta effettuati tutti i collegamenti, avere già tutto pronto per il gioco, ma purtroppo le cose non sono mai come ce le immaginiamo. Anzi, spesso sono esattamente il loro opposto.
In ogni caso non sarà troppo difficile configurare il joystick e i pulsanti appena collegati, fermo restando che dovrete avere almeno una tastiera attaccata via USB al raspberry per navigare i vari menu. Una volta acceso il vostro raspberry ed arrivati alla schermata di Emulation Station selezionare l’opzione “quit emulation station” tramite il menù accessibile con la pressione del tasto START.
A questo punto vi si aprirà il classico terminale linux, tramite cui scaricherete il tool per configurare il GPIO tramite i seguenti comandi:
cd ~ git clone https://github.com/mholgatem/GPIOnext.git bash GPIOnext/install.sh
Dovrete aspettare qualche minuto perché l’installazione si completi, al suo completamento vi verrà richiesto di effettuare una configurazione del controller.
In realtà questa procedura è abbastanza lineare, prima vi verrà chiesto quanti joystick volete configurare, poi il numero di pulsanti per ognuno, ed infine quali dei vari pulsanti volete utilizzare nella vostra macchina.
Poi dovrete associare ad ogni “comando” lo specifico pin del GPIO. Semplicemente a video vi verrà chiesto di premere il pulsante o la direzione del joystick in corrispondenza del comando che si vuole impartire, se tutto va a buon fine vedrete associata lo specifico numero di PIN del GPIO.
A questo punto lanciate il comando:
gpionext start
per lanciare il daemon che vi leggerà gli input dal GPIO.
Ora scrivete, sempre da terminale:
emulationstation
E vi si riavvierà l’interfaccia grafica di Retropie. Una volta eseguita, potrete configurare il tutto esattamente come se fosse un pad esterno, o una tastiera collegati tramite USB.
Per questa operazione vi rimando all’articolo scritto sempre qui su Lega Nerd
Io personalmente vi consiglio di fare tutte le dovute prove prima di inserire tutto all’interno del contenitore che utilizzerete per alloggiare le pulsantiere ed il retropie, così che non dobbiate togliere e mettere più volte delle viti nel caso in cui qualcosa andasse storto.
E adesso? Dove inserisco tutto?
Il mio più grande scoglio nell’approcciarmi a questa nuova soluzione, è stato quello di capire come costruirmi un mobile, uno stick, un bartop che potesse contenere quando stavo cercando di costruirmi.
Le soluzioni possibili sono acquistare un prodotto preassemblato (che solitamente appunto comprende già però i joystick / tasti), comprare un kit già tagliato e solo da assemblare… oppure costruirsi tutto da zero.
Per il primo caso non vi serve niente di questa guida se non una ricerca su Amazon, ci sono mille soluzioni già belle che pronte, come la Pandora’s Box che ho citato a inizio guida.
In alternativa ci sono case vuoti da assemblare anche su Amazon a prezzi decenti, date un’occhiata:
Per finire potete farvi voi un progetto oppure partire da qualosa di già pronto e creare da zero il case, vi consiglio di dare un’occhiata su instructables.com
Ora non vi resta che collegare tutto alla vostra TV e semplicemente tornare con la mente alla vostra infanzia, quando magari un po’ sporchi di sabbia e di salsedine vi mettevate in fila dietro al cabinato di qualche gioco per vedere fin dove sareste arrivati con le vostre semplici 2 monete da 200/500 Lire.
NdItomi
Personalmente vi consiglio caldamente di partire con soluzioni più economiche e già assemblate completamente o in parte, che siano una Pandora’s Box (che alla fine costa davvero un cazzo e va benone per un uso casual) o dei kit economici.
Ve lo dico semplicemente perché, per esperienza, so che questi progetti sono belli da realizzare, ma spesso poi rimangono in un angolo a prendere polvere dopo un periodo iniziale di super fotta… quindi spendeteci il meno possibile.
Con meno di 150 euro vi portate a casa una soluzione già finita e funzionante come la Pandora 6s… e potreste anche usarla come base su cui poi montare in futuro componenti migliori se la fotta non vi scende. ?