Retropie 4.3 e 8Bitdo Zero

Guida aggiornata, alcuni passaggi non erano chiari.

Il Raspberry ZeroW è un ottima ed economica board per far girare fluidamente una bel po’ di emulatori vintage con una distribuzione tipo Retropie. Praticamente tutte le consolle 8bit e 16bitvengono emulate fluidamente. Per quelle a 32bit bisogna usare una board un po’ più aggressiva, tipo un Raspberry3 o un OrangePi (la distrubuzione per l’Orange si chiama RetrorangePI)
Viste le ridottissime dimensioni della board risulta alquanto “ridicolo” dotarla di un paio di Joypad “standard”, con relativo adattatore microusb e hub a 2 porte…. meglio dotarla di un paio di mini-controller BT, così da avere la possibilità di far stare tutto il setup in una tasca, senza tanti fili e connettori che gironzolano.
  Gira e rigira, il controller più miniaturizzato ma funzionale che ho trovato è l’8Bitdo Zero, che costa poco e funziona bene (dalla Cina arriva con poco meno di 10 euro).
E qui viene il bello…. le istruzioni per il pairing ed il corretto funzionamento sono poce, poco chiare, approssimative e dispersive.
Spesso seguendole alla fine non funziona un tubo. Ecco una guida “Pairing for Dummies” che dovrebbe essere chiara, esplicativa e non lasciare spazio a dubbi.
Per prima cosa, facciamo riferimento ad una release moderna del Retropie. Inutile accanirsi su release obsolete,  quando in meno di un’ora si scarica, installa e configura completamente una Retropie aggiornata su un Raspberry ZeroW. Al momento la release più recente è la 4.3.
Prepariamo quindi una micro SD con una distribuzione funzionante. Per i core che girano su un Raspberry Zero basta una schedina da 8gb, al limite da 16 ma non ne vale la pena. Basta che sia una Classe10 veloce, da 80mb/s. Per questa cosa dell’installazione vedrò di fare un altro “tutorial for dummies” con un po’ di comparazioni fra board diverse (comparazioni realistiche, non allucinazioni collettive megalodontiche su giochi che poi vanno da schifo a 10 fps gracchiando come una supposta di carborundum:) )…
Colleghiamo il raspettino alla tv via HDMI, colleghiamo una tastiera con un adattatore OTG microusb-usb e configuriamo la tastiera come unico controller.
Una volta caricato il sistema, un po’ lentamente, l’interfaccia della EmulationStation lancerà la prima schermata di configurazione dei controller, e basterà premere invio sulla tastiera per farla rilevare e configurarla correttamente come “pad alternativo”.

Per prima cosa, se avete gia accoppiato l’8Bitdo Zero con qualche altro device, dovete resettarlo: accendetelo premendo Start per un paio di secondi; il led blu lampeggierà. Tenete premuto Select finchè non farà un flash bianco; a questo punto tenendo premuto Select, premete Start per una decina di secondi, finchè il led farà una luce bianca fissa. Rliasciate i pulsanti e lui si spegnerà. Eccolo resettato.
Partiamo da una “macchina pulita” che è meglio.
  A questo punto entriamo nella sezione “Retropie”, (l’unica presente se non abbiamo ancora caricato alcuna rom nel sistema, e delle rom/bios parleremo un’altra volta…) e clicchiamo sulla voce Bluetooth. Si aprirà una interfaccia tipo “DOS” (vabeh, non è dos, è linux… 😉 ).

Lasciamo l’ultima voce “8 Bitdo mapping hack…” su OFF, poichè è irrilevante per qusto controller, che non ha mai avuto alcun aggiornamento di firmware.
A questo punto accendiamo il piccolo controller tenendo premuto il tasto R (anteriore destro) e tenendo premuto per alcuni secondi il tasto Start. E’ importante accenderlo con questa sequenza di tasti, sempre, poichè in questo modo parte in modalità joypad. Se premiamo solo Start parte in modalità tastera e poi non va una cippa. E’ una cazzata di progettazione, poichè l’utilizzo di default è joypad e non tastiera… vabehhh…
Se tutto va bene un led blu inizierà a lampaggiare sul controller.
Ora selezioniamo la prima voce “R Register and Connect….” finchè non apparirà il controller 8Bitdo nelle periferiche rilevate.
Se il BT del Raspberry non dovesse trovare nulla, premiamo esc e riselezioniamo la prima voce del menù, finchè non apparirà il controller. Può succedere di doverlo fare anche 10 volte di seguito, prima che il controller venga rilevato.
Ovviamente tutto questo deve essere fatto mentre il led verde lampeggia. Il pad non resterà in pairing in eterno, dopo un po si spegnerà…
Se si dovesse spegnere, riaccenderlo sempre con R+Start, e riselezionare la voce (R Register and Connect….)
Quando appare il controller 8Bitdo nelle periferiche rilevate, selezionarlo e selezionare la terza voce del nuovo menù (che è il metodo di pairing senza input).
Se tutto va bene dopo alcuni secondi apparirà il messaggio di pairing avvenuto, e la luce del controller diventerà blu, fissa. Prendetevi nota del mac address del controller, nel caso ne vogliate installare un secondo uguale per fare la coppia.
Se tutto va bene, dicevo, il controller è accoppiato correttamente, ed in modalità Joypad.

A questo punto torniamo al menu principale della configurazione BT, selezioniamo la penultima voce, (Configure bluetooth connect mode) ed inpostiamolo su Background. In questo moo il rasp cerca il controller anche se lo spegnamo e riaccendiamo, o se va in standby.

Infine torniamo nel menù di configurazione BT e selezioniamo la quarta voce (U Set up udev rule…) e poi riavviamo il sistema operativo.
A questo punto premendo sulla tastiera il tasto che corrisponde a Start entriamo nel menù di configurazione dei nuovi joypad e procediamo a configurare l’8Bitdo Zero come un normale controller.
Se gli unici tasti che vengono rilevati sono quelli anteriori L e R, e il controller viene rilevato come Keyboard vul dire che nella fase di pairing non lo abbiamo acceso premendo R+Start, ma premendo solo Start. In questo caso il pad si avvia inemulazione tastiera e non funziona correttamente.
Una volta accoppiato e configurato correttamente, per accenderlo basterà  premere R+Start, in qualsiasi momento dopo che la Emulatiostation si è avviata, e il Joypad sarà connesso.
Per spegnerlo basta tenere premuto Start. Spegnendo invece il Raspberry, dopo alcuni secondi si spegnerà anche il Pad.

Ora il controller funziona nel menù di Emulationstation, ma ancora non funziona correttamente nei vri emulatori. Perchè funzioni bisogna fare ancora una cosa, importnte, fondamentale, che nessun tutorial dice: si deve entrare nel menu Retroarch, (ci si deve muovere con la tastiera qui dentro…) entrare in Settings-Driver-Joypad Driver ed impostare sdl2, nel caso fosse selezionato altro (udev non va bene…). Poi prenere esc, ancora esc, entrare in Configurations eselezionare Save Current Configuration. Ancora esc, poi Quit Retroarch.

A questo punto il controller dovrebbe funzionare correttamente negli emulatori. Se non lo fa, basta premere Start, entrare nuovamente in Configure Input e riconfigurare il controller.

Il controller è ora configurato per tutti gli emulatori tranne FBA e Mame, e per configurare gli input in questi due emulatori vi lascio cercare in google, è facile.

Se vogliamo aggiungere un secondo cotroller facciamo tutto uguale tranne creare un’altra udev rule (per questo modello di controller lo abbiamo gia fatto) e tranne impostare il driver, che abbiamo gia impostato. Il secondo controller verrà rilevato dal BT con lo stesso nome del primo ma un mac address diverso.

Questa procedura “dovrebbe” funzionare con tutti i controller della 8Bitdo… ma avendo solo lo Zero non ho potuto verificare 🙂
Sembra difficile, ma non lo è 🙂

PS: all’avvio quando il pad viene collegato il menù della Emulationstatio parte a scorrere lateralmente, è normale… basta premere un tasto del pad e lo scroll pazzo si ferma.

Ogni tanto, purtroppo, per motivi ignoti sti cacchio di bluetooth non si connettono più al rasp, e bisogna rifare tutto, con una tastiera… amen….  forse prima o poi ci sarà una release di Retropie col bluetooth stabile… 🙁

Precedente Midnight Commander, uscire nella stessa directory Successivo Sunvell R69 e RetrOrangePi