Ciao ragazzi!
Finalmente ci siamo: eccoci oggi pronti per
un nuovo tutorial.
Dopo circa un mese dal precedente, si torna
ad esplorare attivamente le possibilità offerte
dal raspberry pi con un progettino che sono
sicuro troverete molto interessante.
Anche perché è stato uno di quelli da voi
più votati nel sondaggio con cui vi chiedevo
appunto su che cosa fare un successivo video.
Proprio per questo motivo, prima di addentrarci
oltre, vi linko un nuovo sondaggio per votare
la tematica del prossimo tutorial.
Come sempre lo trovate qui in alto tra le
schede di questo video, ma ovviamente suggerite
pure nuove idee nei commenti cosicché io
ne possa tenere conto per il futuro :-)
Bene!
E ora sotto a chi tocca: oggi vedremo come
costruire una videogame console casalinga
e portatile con il raspberry pi 3.
Esistono più livelli a cui è possibile aspirare
per la propria console di gioco.
L'idea è quella di creare una sorta di nintendo
switch che, per chi se lo fosse perso, ho recensito
qui sul canale, e tutti i relativi focus li
trovate linkati nelle schede di questo video.
La nintendo switch rappresenta in toto il
livello massimo che è possibile raggiungere:
un dispositivo con un display integrato per
giocare in mobilità + la possibilità di
passare automaticamente alla modalità TV
tramite dock e cavo HDMI quando siamo in presenza
di un monitor esterno.
Con il raspberry pi 3 possiamo andarci molto
vicini, costruendo un qualcosa che si comporti
in modo pressoché analogo.
Quella che vedremo oggi, però, è una base
di partenza che può essere sicuramente perfezionata
con sviluppi successivi e su cui magari in
futuro potrò tornare con nuovi focus.
Quindi fatemi sapere nei commenti
che ne pensate al riguardo.
Per costruire la nostra simil nintendo switch
abbiamo bisogno, oltre che ovviamente di un
pi 3, anche di un display da collegare sui
PIN GPIO del pi stesso (come questo di Kuman
da 3.5" di cui vi avevo già parlato in un precedente
focus), un cavo HDMI per collegare il pi direttamente
ad un monitor esterno, uno o più gamepad
per giocare, e la combo tastiera + mouse per
le fasi di configurazione iniziale e per eventuali
usi aggiuntivi di cui parleremo in seguito.
Come dicevo esistono più livelli a cui aspirare
per la propria console.
Il primo è chiaramente il più semplice e
prevede la creazione di una postazione di
gioco solamente domestica, quindi funzionante
solo con il TV di casa o in generale un qualsiasi
monitor con porta HDMI.
Ovviamente questa è anche la soluzione più
semplice da realizzare e su di essa ho anche
già pubblicato un focus -circa un annetto
fa- che trovate linkato nelle schede di questo video.
A differenza di quel video però, oggi voglio
aggiungere che esistono più sistemi operativi
che consentono di creare una retro gaming
machine con il raspberry pi.
E sono: Retropie, Recalbox e Lakka.
Retropie (la cui ultima versione è la 4.2) tra
i tre è il sistema ad oggi più diffuso e
famoso: basato su Raspbian OS, esso consta
di uno stack software a più livelli già
preinstallati e configurati in modo da rendere
possibile l'esecuzione degli emulatori e -su
di essi- dei giochi di nostro interesse.
Al di sopra di Raspbian OS ci sono RetroArch
ed EmulationStation (+ altro software), con
tutte le loro possibilità di configurazione
avanzate e non.
Sicuramente rispetto agli altri due sistemi,
Retropie è quello più completo ma anche
il più "pesante" e per certi versi meno intuitivo.
L'installazione richiede il processo standard
previsto da qualsiasi altro OS per raspberry pi,
quindi via dd su Linux/Mac o
via Wind32DiskImager su Windows.
In alternativa è possibile utilizzare Etcher,
utility di recente creazione con UI intuitiva
e funzionante sia su Linux/Mac/Windows.
Evito di dilungarmi troppo su Retropie perché
ho appunto già pubblicato un focus al riguardo
e ve l'ho mostrato anche nel focus dopo un
anno di uso del raspberry pi 3, anch'esso
linkato nelle schede di questo video.
Recalbox (la cui ultima release è la 4.0.1), invece,
è in forte ascesa: questo sistema utilizza
direttamente RetroArch ed EmulationStation
(+ altri software) senza basarsi su un sistema
operativo complesso come può essere Raspbian
OS o altra distribuzione GNU/Linux.
Ciò gli permette di essere decisamente più
leggero ed anche la sua installazione è piuttosto
semplice: basterà infatti copiare sulla microSD
i file estratti dal pacchetto scaricabile
dal sito ufficiale, ed inserire la scheda
di memoria nel raspberry pi.
Nessuno step particolare aggiuntivo.
Una volta avviato, l'OS è praticamente identico
a Retropie (personalizzazioni peculiari a
parte) visto l'utilizzo comune di RetroArch
ed EmulationStation tra i due sistemi.
L'assenza di un OS sottostante, però, lo
rende più semplice da gestire e mantenere.
Retropie e Recalbox sono quindi soluzioni
molto simili tra loro, ognuna con i propri pro
e contro, e rimando ai siti ufficiali dei due
progetti per maggiori dettagli del caso.
Lakka (la cui ultima versione, anche se ancora
in beta, è la 2.0), infine, è l'outsider:
si tratta di un sistema basato su LibreELEC
il che gli permette di essere compatibile
con tantissimi single board computer ed anche
altri device.
Quindi esso funzionerà sia sul raspberry
pi, ma anche su tanti altri dispositivi eterogenei.
La sua peculiarità comunque è che non utilizza
EmulationStation come front-end grafico: questo
sistema infatti è codificato direttamente
su RetroArch, cosa che garantisce una unificazione
della UI (indipendentemente dall'emulatore
in uso) e tanti altri benefici derivanti dal
fatto di avere meno strati software.
Anche in questo caso, come per Retropie,
l'installazione richiede il processo standard
previsto da qualsiasi altro OS
per raspberry pi 3.
Puntare ad uno rispetto all'altro è una scelta
personale, ci sono pro e contro per ognuno
di essi, e per un uso a mo' di console solamente
domestica vanno benissimo tutti e 3.
Personalmente ho scelto Retropie soltanto
perché è stato il primo che io abbia provato,
perché fa quello di cui io necessito senza
problemi, e perché all'epoca della mia scelta
era l'unico a supportare senza magagne i miei
gamepad bluetooth.
Ma appunto potete scegliere quello che più
preferite.
Sappiate che, utilizzando tutti quanti Retro
Arch come base, avrete le stesse possibilità
di emulazione poiché gli emulatori supportati
sono fondamentalmente gli stessi.
Per quanto riguarda, invece, le ROM dei giochi,
beh non mi dilungo più di tanto: dovrete
procurarvele in rete e fare attenzione alle
varie licenze d'uso.
Una volta che ne sarete in possesso potrete
seguire le guide ufficiali presenti sui siti
dei progetti per copiarle con successo sul
raspberry pi 3.
A questo punto, se non siete interessati
alla portabilità potreste anche fermarvi qui
ed iniziare a giocare a tutte le vecchie glorie.
Se invece volete qualcosa di più, allora
sappiate che i 3 OS appena descritti da soli
non sono sufficienti.
E visto che noi vogliamo creare una console
che sia anche portatile, per prima cosa occorre
fare in modo che venga riconosciuto il display
LCD collegato ai PIN GPIO del raspberry pi 3.
Per avere un controllo a 360° di tutto, secondo
me, conviene partire direttamente da Raspian OS
e creare quindi tutto lo stack necessario
a mano.
Per la configurazione iniziale del display
rimando al focus relativo di cui vi ho parlato prima.
In realtà va benissimo qualsiasi display
LCD, quindi -in caso- seguite le rispettive
istruzioni fornite dal produttore.
Fatto sta che una volta che sarete in grado
di switchare manualmente tra display LCD e
monitor via HDMI tramite gli script forniti
solitamente dal produttore del display, potrete
passare al successivo punto: cioè fare in
modo che sia possibile visualizzare in contemporanea
l'output video sia su LCD che via HDMI.
Per far ciò potrete scaricare gli script
che ho preparato e che trovate linkati in
descrizione ma soprattutto sulla guida che
ho pubblicato sul blog ed abbinata a questo video.
Attenzione poiché alcune configurazioni presenti
in quel pacchetto vanno bene per il display
di Kuman e dovranno essere eventualmente modificate
per display differenti.
Fondamentalmente, comunque, si tratta di script
bash che vi permetteranno di fare in modo
che il pi sia in grado autonomamente di caricare
all'avvio la giusta configurazione per passare
da LCD ad HDMI e viceversa.
In più dovrete scaricare un tool chiamato
fbcp, cioè framebuffer copy, che permette
di copiare frame per frame sul display LCD
ciò che viene inviato in output sulla HDMI.
Anche in questo caso per istruzioni dettagliate
rimando alla guida sul blog abbinata a questo video.
Ci sono un paio di appunti importanti da fare:
se la vostra necessità è quella di avere
una console che sia utilizzabile in modalità
portatile oppure casalinga, cioè che non
sia fondamentale avere lo switch immediato
tra i due output in tempo reale, allora gli
script così come sono stati ideati saranno
sufficienti.
In alternativa, e qui rimando magari anche
a vostri consigli nei commenti, ci sono dei
limiti da tenere in considerazione e che in questa
"versione 1.0" non sono contemplati al 100%...
Nello specifico: 1) avviando il pi 3 scollegato
dal TV, viene forzata la risoluzione dell'LCD
quindi collegando successivamente il cavo
HDMI al televisore verrà impiegata una risoluzione
potenzialmente molto bassa sul TV stesso (cosa
scomoda per chi ha TV HD o superiori);
2) avviando il pi 3 collegato al TV, viene forzata
la risoluzione del televisore quindi scollegando
il cavo HDMI e passando allo schermo LCD si
vedrà tutto potenzialmente molto piccolo
(anche qui, cosa scomoda per chi -come me- ha
schermi LCD di piccole dimensioni collegati al pi);
3) al momento è impossibile disattivare
lo schermo LCD quando il pi 3 è collegato
al televisore, quindi l'immagine si vedrà
duplicata sempre su entrambi gli output;
e 4) al momento con questa modalità d'uso non
sarà possibile utilizzare l'eventuale touchscreen
del display LCD.
Ad ogni modo, a questo punto potremo iniziare
a configurare la nostra istanza di Retropie.
Sì perché ciò che abbiamo fatto finora
serve per creare quel meccanismo di switch
automatico tra i due output (LCD e HDMI),
perfezionabile ma comunque funzionante.
Retropie, come dicevo prima, è basato su
Raspbian OS e oltre a poterlo installare tramite
immagine fornita direttamente dagli sviluppatori,
è possibile anche installarlo manualmente
sul pi 3 seguendo la guida ben dettagliata
presente sul sito ufficiale (anche questo
link lo trovate nella descrizione del video).
Installare Retropie su Raspbian OS direttamente
dal pi 3 è una procedura abbastanza lenta,
quindi ci vorrà un po' di pazienza.
Una volta terminata, però, avrete la possibilità
di decidere se fare in modo che il raspberry
pi all'avvio parta direttamente su Retropie,
su Raspbian OS oppure rimanga in attesa del
vostro input via riga di comando per decidere
cosa lanciare.
A questo punto avrete la vostra console in
grado di switchare automaticamente tra gli
output presenti (schermo LCD e/o monitor HDMI)
e di farvi continuare a giocare in mobilità
o da casa senza dover necessariamente interrompere
la sessione di gioco.
Certo, per rendere il progetto realmente portatile
avrete chiaramente la necessità di usare
un powerbank con grande capacità e uscita
ad almeno 2.4A, oppure uno di quei chip che
forniscono alimentazione studiati appositamente
per il raspberry pi.
Poi chiaramente è possibile andare oltre
creando addirittura case stampati in 3D per
costruire la vostra console di gioco completamente
customizzata, etc...
Prima di chiudere questo tutorial, ci tenevo
a riportarvi la notizia che è finalmente
possibile eseguire giochi x86 o Windows sul
raspberry pi 3 grazie ad un tool chiamato
ExaGear sul quale qualche mese fa
avevo pubblicato un focus.
Questo tool permette di eseguire applicazioni
x86 su archiettura ARM, ma all'epoca non era
in grado di far funzionare adeguatamente i
programmi che richiedessero librerie grafiche.
Da allora, proprio in questi giorni, è arrivata
una nuova versione (la 2.1) che permette di
sfruttare l'accelerazione HW del pi, il che
rende possibile di fatto lanciare anche vecchi
giochi, come Diablo 2, Counter Strike e tantissimi
altri titoli che appunto necessitano delle
librerie openGL per funzionare.
Non aggiungo altro perché prossimamente farò
un video focus dettagliato al riguardo, quindi
se ancora non lo foste iscrivetevi al canale
ed attivate le notifiche per essere subito
avvisati quando lo pubblicherò.
Nel frattempo, se avete trovato questo video
utile, fatemelo sapere con un bel like e mi
raccomando votate per il prossimo tutorial
e non esitate a scrivermi nei commenti nuove
idee, domande e quant'altro.
Come sempre mi trovate anche sui canali social
e sul blog: tutti i link sono in descrizione.
Ci sentiamo presto!
Ciao =D
