[Retrogaming] Gioca i tuoi Arcade preferiti con Raspgaming pi

Vista la mia passione per i videogames che è sempre stata molto forte, ho deciso di unire l’interesse per la prototipazione con la voglia di sperimentare un qualcosa che mi permettesse di praticare Retrogaming senza, per forza di cose, dover installare un emulatore sul computer di casa o buttarmi nel mercato del collezionismo per reperire le console. È stato quasi automatico passare dal brainstorming con carta e matita alla realizzazione pratica del tutto, quando grazie ad un contest effettuato qui su Elettronica Open Source, mi sono aggiudicato una board Raspberry Pi Modello A+.

Che cos’è il Retrogaming?

pad-controller-retrogaming

Il Retrogaming è semplicemente la passione per tutto ció che riguarda console gioco e pc che non sono piú reperibili in commercio, ma solo su aste on line o appassionati che, raramente, decidono di privarsi di vecchie piattaforme per questioni di spazio o semplicemente per ricavare denaro. Quello del Retrogaming è un fenomeno che sta prendendo sempre piú piede presso i videogiocatori, sia perché alcuni videogames ormai sono entrati nella storia e nella cultura di tutti i giorni, sia perché il gaming moderno è sempre piú improntato sui multiplayer on-line, con una modalitá single player sempre piú trascurata e relegata a comprimaria. Console come il NES (Nintendo Entertainment System), il Commodore 64, il Sega Master System o il Sega Mega Drive, arrivando anche alla Play Station One, sono diventate ormai molto ricercate tra gli appassionati di questo genere di videogames. Occorre stare attenti a non confondere, a differenza di quanto fatto da alcuni, “Retrogaming” con “Trashware”: il “Trashware” è la pratica che prevede il recupero di vecchie apparecchiature hardware per renderle nuovamente funzionanti, al fine di colmare il cosiddetto “Digital Divide”, ovvero la differenza di mezzi a disposizione tra chi è informaticamente alfabetizzato e chi non lo é. Un paragone un po’ piú calzante con il Retrogaming, è fattibile con il “Retrocomputing”, ovvero la pratica di collezionare computer di vecchia generazione per scopi collezionistici (Sinclair ZX Spectrum, Amstrad CPC, Standard MSX etc.).

Never Twice the Same Color

Al di la dell’errore grammaticale contenuto nell’acronimo, quando si parla di vecchie piattaforme gioco, si pensa subito alle prese SCART, RGB SCART e alle codifiche PAL/NTSC che hanno fatto letteralmente impazzire generazioni di videogiocatori, compreso il sottoscritto. Ovviamente non esisteva ancora l’HDMI, internet e tutto quello che abbiamo ora, pertanto se si voleva giocare a titoli sviluppati per il mercato asiatico o americano, che non prevedevano l’esportazione nella zona europea, si era costretti a lasciar perdere o a cercare, presso i negozi piú forniti, degli adattatori che permettessero il cambio di codifica da PAL a NTSC. Grazie alle moderne tecnologie, Il mercato del retrogaming, seppur sia ancora di nicchia, ha trovato nella californiana Hyperkin un vero e proprio punto di riferimento del settore. (www.hyperkin.com). Quest’azienda ha realizzato diverse console che permettono di riutilizzare le cartucce gioco dei vecchi titoli. Ad esempio, se avete in casa o volete reperire titoli per il Super Nintendo Entertainment System (SNES), il Super Famicom (equivalente nipponico dello SNES) o altre, potete contare su un catalogo di console progettate appositamente per questo tipo di piattaforme. Le alternative sono davvero tante. Difficile dire se il retrogaming sia “Economico”. Comprare le cassette di gioco dei vecchi titoli potrebbe non essere particolarmente vantaggioso o conveniente, poiché comunque si parla di collezionismo. Decidere di acquistare un cabinato con CPU Zilog Z80 e processore basato su Microcontrollore Intel 8035, con audio a 400KHz e schermo a risoluzione 224 x 256 (256 colori) con kit del primo Donkey Kong, potrebbe essere decisamente dispendioso. Non ve la caverete senz’altro con i 60 euro di media di un titolo per Play Station 4 o X-Box One.

control_it

La tecnica

Immaginiamo di avere all’interno del Raspberry Pi una quindicina di console, progettate da brand differenti, con hardware differente ma soprattutto in periodi differenti. Non è pertanto sufficiente replicare solo la parte inerente al software, poiché senza la parte hardware si andrebbe a perdere tutto il funzionamento della circuiteria elettronica, come ad esempio l’output del monitor, la frequenza di aggiornamento, l’input del joystick e il sistema per la riproduzione dei suoni, elementi fondamentali per un corretto funzionamento dell’applicativo su una piattaforma differente.

normal_mame_logo1080p

 

Per meglio comprendere il funzionamento di un emulatore, cito sempre il progetto MAME (Multiple Arcade Machine Emulator). Si tratta di un software che ha visto la luce nel lontano 1996 grazie a Nicola Salmoria, concepito inizialmente per MS-DOS, in grado di emulare differenti piattaforme arcade di tipologia “Coin-Op”. Considerando l’architettura di MAME, possiamo distinguere tre livelli fondamentali:

Primo livello: è il livello piú “Basso”, ovvero quello che si occupa di emulare l’architettura hardware e le circuiterie interne vere e proprie. È scritto in Linguaggio C, per avere la massima velocitá e portabilitá possibile.

Secondo Livello: è il livello “Glue” tra primo e terzo. Contiene funzioni e metodi ed è anch’esso scritto in Linguaggio C.

Terzo Livello: è il livello piú “Alto”, ovvero quello che di fatto vede l’utente. Permette le operazioni di I/O ma, a differenza dei primi due, non è scritto in linguaggio C. Essendo un livello OSD (Operating System Dependent), contiene il codice di tutte le diverse piattaforme e, ricompilandolo, è possibile adattare MAME ai diversi sistemi operativi.

Quando andate ad aprire un qualsiasi Emulatore, vi ritrovate di fronte ad una GUI e diverse opzioni selezionabili. Uno degli errori piú comuni che ho commesso io stesso le prime volte che li ho usati, è il non controllare la presenza del file BIOS. Questo file è fondamentale per il funzionamento dell’emulatore, perché contiene una serie di routine di base atte alla gestione della circuiteria della macchina che il software emula.  Alcuni emulatori piú moderni li incorporano e quindi è sufficiente installare l’emulatore e siete a posto, mentre qualche tempo fa i file BIOS non venivano inclusi e occorreva fare una ricerca manuale in rete per reperirli.

 

SNAG-0100-1

 

Tutto quello di cui abbiamo parlato fin ora, è solo ed esclusivamente l’emulatore. Una volta installato questo programma, un neofita guarda lo schermo, interagisce con la GUI e trova la fatidica scritta “Load ROM”. Ovviamente, utilizzando un PC, non è possibile utilizzare le cartucce gioco originali, pertanto è necessario procurarsi le ROM dei giochi che intendiamo provare.

MAME32_Plus

Nei giochi arcade di un tempo, i dati inerenti al gioco vero e proprio come il software, gli elementi grafici, l’audio e la configurazione, venivano memorizzati in chip di tipo ROM (Read Only Memory). I dati presenti in queste cartucce gioco, attraverso un processo chiamato “Dumping”, vengono letti e copiati, creando i file ROM che verranno caricati nell’emulatore. Dal punto di vista del risultato finale, non c’è alcuna differenza tra un file ROM generato da un titolo su CD Rom o Floppy Disk. Naturalmente, un titolo originariamente concepito per girare su Nintendo Game Boy avrá dimensione di pochi kilobyte, mentre un titolo concepito per Play Station One, avrá un peso di decine di Megabyte, a causa della grafica piú evoluta, tracce audio piú complesse e quant’altro. Potrá capitarvi, durante le vostre ricerche in materia di ROM, di imbattervi in veri e propri archivi di uno stesso titolo, chiamati “ROM Set”. Un ROM Set non è altro che una collezione di ROM dello stesso gioco, uscito in versioni differenti. A questo proposito, possiamo inserire un’ulteriore differenza tra i ROM Set, ovvero “Original” e “Custom”. Le Original sono le ROM del gioco ufficiale in tutto e per tutto, senza alcuna modifica. Qualche appassionato spesso crea dei veri e propri archivi di tutte le versioni uscite di un determinato titolo, a seconda della lingua, di quanto successo ha avuto e cosí via. Le “Custom” sono ROM “Cucinate” da qualche programmatore, allo scopo di introdurre delle modifiche, qualche nuova modalitá o supporto per joystick usciti successivamente.

Adesso che abbiamo ben chiaro cosa sia un emulatore, come funziona e cosa sono le ROM, possiamo proseguire ed entrare nel merito del sistema vero e proprio basato sul Raspberry pi. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 4172 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

5 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 1 dicembre 2015
    • Fabrizio Bianchini Fabrizio Bianchini 6 gennaio 2016
      • Antonio 29 aprile 2016
  2. Massimiliano.MeinardiMessi 1 dicembre 2015

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!