Realizzare una piattaforma di emulazione di giochi arcade e console con un Raspberry Pi – [PARTE 2]
[1] – Scrape delle rom
Lo scraping è l’operazione che permetter di aggiungere immagini e metadati (descrizione, produttore, anno, ecc.) alle rom inserite nel sistema. Ci sono diversi modi per farlo, il più semplice è sicuramente quello fatto da Emulationstation…




Il secondo metodo è quello di usare lo scraper esterno ad Emulationstation, per utilizzarlo bisogna uscire dal frontend con il comando ALT+F4 da tastiera. A questo punto si aprirà il terminale, e bisognerà digitare il comando:
sudo ./retropie_setup.sh



Una volta terminato lo scarping, uscite dal setup e tornati nella shell digitate emulationstation per riavviare il frontend. Se dopo lo scrape non compaiono le immagini, verificate che esista la cartella “downloaded_images” in “\\retropie\configs\all\emulationstation”, nel caso non ci fosse createla manualmente e riavviate lo scrape.
[2] – Configurazione manuale del controller
Con il comando da shell jstest /dev/input/js0 andiamo a leggere gli input del nostro controller e trascriverli nel nostro file di configurazione contenuto nella cartella \\RETROPIE\configs\“nome-emularore”\retroarch.cfg . Nell’esempio che segue abbiamo marcato in corsivo le personalizzazioni aggiunte al file retroarch.cfg relativo all’emulatore Megadrive.
# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = /opt/retropie/configs/megadrive/ input_player1_joypad_index = 0 input_player1_b_btn = 2 input_player1_a_btn = 1 input_player1_y_btn = 3 input_player1_x_btn = 0 input_player1_l_btn = 4 input_player1_r_btn = 5 input_player1_start_btn = 9 input_player1_select_btn = 8 input_player2_joypad_index = 1 input_player2_b_btn = 2 input_player2_a_btn = 1 input_player2_y_btn = 3 input_player2_x_btn = 0 input_player2_l_btn = 4 input_player2_r_btn = 5 input_player2_start_btn = 9 input_player2_select_btn = 8 # Axis for RetroArch D-Pad. # Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. input_player1_up_axis = -1 input_player1_down_axis = +1 input_player1_left_axis = -0 input_player1_right_axis = +0 input_player2_up_axis = -1 input_player2_down_axis = +1 input_player2_left_axis = -0 input_player2_right_axis = +0 #Hotkeys- Hotkeys enable you to press a combination of buttons to do such things as exit emulators, save states, # and load states, as well as any other functionality in an emulator. (In the example below 8 is the select key # and 9 is the start key so when I hold down select and press start it will exit the emulator.) input_enable_hotkey_btn = 8 input_exit_emulator_btn = 9 input_save_state_btn = 5 input_load_state_btn = 4 input_menu_toggle_btn = 0 input_state_slot_increase_axis = +0 input_state_slot_decrease_axis = -0 #include "/opt/retropie/configs/all/retroarch.cfg"
js0 indica il joystick connesso alla porta 0, e va indicato nella configurazione alla voce:
input_player1_joypad_index = 0
Alla luce di questo, potrete quindi avere anche 1, 2 e 3 in base a dove è collegato il vostro controller. Una volta lanciato il comando jtest, premendo i pulsanti o azionando il joystick, vedrete nella schermata della shell a quale numero corrisponde, e potrete assegnarlo a piacimento ai comandi predefiniti (es: pulsante 1 a comando A).


Ecco un altro esempio di personalizzazione dei comani per un altro, in questo caso FinalBurn Alpha:
[3] – Risoluzione dei problemi
Di seguito riporteremo problemi più o meno noti che si possono riscontrare in questi primi passi o che ci segnalerete voi.
-
Con adattatore VGA-HDMI il monitor non si accende
Decommentare l’opzione “HDMI safe” in /boot/config.txt
-
Audio non funzionante su HDMI
Decommentare l’opzione “hdmi_drive = 2” in /boot/config.txt
-
Settare lo schermo intero in 16:9 per tutti gli emulatori Retroarch
Aggiungere la stringa: aspect_ratio_index = “1” nel file di configurazione generale in \\RETROPIE\configs\all\retroarch.cfg
-
Installazione controller arcade “Xin-Mo”
Editare da shell il file /boot/cmdline.txt ed aggiungere la riga: usbhid.quirks=0x16c0:0x05e1:0x040 , dove 16c0 e 05e1 sono i numeri di serie che dovreste leggere elencando i device usb connessi con il comando lsusb. Salvate cmdline.txt e riavviate! Per approfondimenti di configurazione sugli emulatori Mame4All e PiFBA trovate informazioni a questo link.


-
Nascondere file .BIN dalla lista giochi PLAYSTATION
Le rom per Playstation sono costituite molto spesso da un file .cue e uno o più file .bin . Per nascondere i file .bin da Emulationstation e lasciare i singoli .cue basterà cancellare le estensioni .bin nella parte relativa all’emulatore psx nel file es_system.cfg presente al seguente percorso:
-
Errore emulatore PSX: “No BIOS found, expect errors“
Il bios dell’emulatore Playstation va installato manualmente, cercate in rete il file SCPH1001.bin, scaricatelo, e salvatelo nella cartella \\RETROPIE\bios -
Errore nel caricamento di una ROM
Escludiamo il caso in cui il file della ROM sia danneggiato o corrotto, un’altra causa del mancato caricamento di una ROM potrebbe essere causato da una incompatibilità tra l’emulatore e la ROM stessa! In questi casi, per prima cosa è bene accertarsi che le rom in uso appartengano alla versione di romset compatibile con l’emulatore, ad esempio, una ROM per l’emulatore MAME4ALL deve appartenere al romset 0.37b5. Tuttavia in alcuni casi la versione della ROM potrebbe essere corretta ed il problema potrebbe risiedere solo nell’emulatore in uso, in questi casi potremmo tentare di avviare la rom con un emulatore alternativo. Retropie mette a disposizioni diverse versioni di uno stesso emulatore ed è possibile scegliere quale utilizzare principalmente e quale utilizzare con singole ROM. Prendiamo un caso pratico: ho un problema con una ROM nell’emulatore FinalBurn Alpha, all’avvio del gioco, premendo ripetutamente un tasto durante la fase di lancio, verrò rimandato al menù di Retropie con le opzioni disponibili per la ROM lanciata ed il suo emulatore.
In questo caso sto utilizzando lr-fba-next come cuore principale dell’emulatore FinalBurn Alpha, di cui ho a disposizione altri due programmi alternativi. In questo caso infatti ho scelto di lanciare la ROM actfancr con un programma diverso, ovvero lr-fba. Potete muovervi nel menù anche con il vostro controller, per dare il comando invio dovrete premere il tasto X.
Per tornare alla prima parte della guida clicca il seguente link: https://informatica37.it/realizzare-piattaforma-giochi-arcade-console-retrogaming-raspberry-pi_parte-1/