Nintendo Game Boy Wi-Fi? Si può fare!

Il Nintendo Game Boy è una delle console portatili più iconiche mai prodotte. Sebbene molti considerino “primitivi” il suo display LCD non retroilluminato e il numero ridotto di pulsanti di base, la semplicità del suo funzionamento e la ridotta richiesta di energia, ha permesso a generazioni di videogiocatori di trascorrere ore e ore di piacevole divertimento. Erano sufficienti 4 batterie AA (stilo), inserire la cartuccia di gioco e vi si apriva un mondo. Lo YouTuber Sebastian Staacks del canale “there oughta be” ha voluto espandere questo principio producendo la propria cartuccia Game Boy modificata che potesse consentire la comunicazione Wi-Fi su questo dispositivo altrimenti offline. Inoltre, le informazioni lette da un server web potrebbero essere inviate alla console e visualizzate sul suo schermo, come ad esempio un articolo di Wikipedia.

Un po’ di tecnica

Il modulo ESP8266 della cartuccia è ciò che consente al Game Boy di effettuare richieste web e ricevere dati indietro. Come bonus, la velocità elevata e il basso profilo dell’ESP8266 sono la scelta perfetta per l’inclusione in una cartuccia di gioco dal fattore di forma ridotto come quello del Game Boy. Un modulo EEPROM AT28C256 da 32 KB integrato è stato aggiunto per ridurre la latenza tra la CPU del Game Boy che esegue un’operazione di caricamento della memoria e recupera i dati. Infine, sono state incluse una serie di porte logiche per controllare gli indirizzi di memoria, insieme ad alcuni componenti passivi che forniscono alimentazione uniforme a tutto il resto del PCB.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

La maggior parte degli appassionati di elettronica probabilmente ha familiarità con il protocollo di comunicazione SPI e il suo utilizzo di due linee asincrone utilizzate per scambiare i dati tra una coppia di dispositivi. Normalmente, questo è il protocollo da preferire, ma poiché il Game Boy doveva recuperare i dati il più velocemente possibile per il caricamento del gioco, si affidava invece a un approccio più tradizionale con bus di memoria. In questo modo, la cartuccia presenta 16 pin di indirizzo, 8 pin di dati, diversi pin di controllo e un pin di clock commutato a 1MHz. Il Game Boy utilizza i 15 bit inferiori del bus indirizzi per smistare fino a 32 KB di ROM. Il pettine della cartuccia Fornisce inoltre alimentazione ai componenti all’interno della cartuccia tramite un pin +5V e un pin GND.

L’idea iniziale di Staacks era semplicemente quella di collegare un microcontrollore veloce e moderno ai pin di indirizzo e dati, attendere una richiesta e quindi impiegare fino a 200 cicli di CPU per elaborare le informazioni prima di restituirle al Game Boy. Tuttavia, ciò rappresenta una sfida poiché l’ESP8266 avrebbe solo 500 nanosecondi dal primo rilevamento della richiesta per avere i dati pronti, un compito impossibile. Invece, Staacks ha optato per un approccio ibrido che utilizzerebbe un chip EEPROM da 32 KB per archiviare i dati del programma che richiedono un accesso immediato mentre ESP8266 a 80 MHz può effettuare una richiesta Web, analizzare la risposta e archiviarla in memoria in background.

 

Game Boy

 

L’adozione di un aspetto ibrido, come spesso accade, risolve un problema ma ne crea automaticamente un altro: il Game Boy, infatti, deve “sapere” con quale dispositivo deve comunicare per ottenere informazioni. Staacks ha implementato il proprio schema di indirizzamento combinando i bit di indirizzo da A1 a A15, con A15 invertito, in una porta AND mentre il bit A0 indica se viene eseguita un’operazione di lettura o scrittura. Inoltre, il segnale di clock proveniente dalla console viene passato a un gate NOR che trasmette tale clock all’ESP8266 solo se è attualmente indirizzato. Pertanto, qualsiasi indirizzo che non sia 0x7ffe o 0x7fff viene automaticamente inviato alla EEPROM che è molto più veloce.

Dopo aver analizzato e capito i circuiti, Staacks è stato in grado di passare alla fase di fabbricazione, dove ha progettato un PCB e vi ha saldato tutti i componenti sopra menzionati. Ha anche incluso alcuni punti di prova nella parte superiore per la programmazione dell’ESP8266 e il debug del circuito nel caso in cui qualcosa andasse storto. Il chip EEPROM che ha scelto è rimovibile, facilitando così la pulizia e il re-flash con nuovo codice in caso di necessità.Il codice per Game Boy è stato scritto utilizzando il Game Boy Development Kit (gbdk) che consente di scrivere programmi personalizzati per una varietà di console portatili. Poiché supporta la libreria “stdio”, tutto ciò che il codice doveva fare era inviare una breve richiesta all’ESP8266, leggere la risposta e utilizzare la funzione di stampa standard per visualizzarla sullo schermo. Potete vedere il codice sia per il Game Boy che per ESP8266 su Github, così come i file di progettazione per il PCB e la cartuccia.

Game Boy

Come si vede nel video di Staacks, la sua cartuccia per Game Boy abilitata al Wi-Fi funziona molto bene, ma nel prossimo futuro desidera estendere ciò che può fare oltre la semplice Wikipedia. Vale a dire, ESP8266 potrebbe fungere da web scraper per tutta una serie di siti Web, permettendogli così di recuperare Tweet o qualche altro tipo di post sui social media e quindi visualizzare il risultato.

Join our groups onTelegram…

… and don’t forget our social channels!

 

###Da sempre appassionato di tecnologia, soffro di insaziabile curiosità scientifica. Adoro sperimentare e approfondire le mie conoscenze sulle ultime novità sul mercato in termini di hardware, alta tecnologia e videogiochi. Attratto e coinvolto nella prototipazione hardware dalla piattaforma Arduino, Raspberry Pi e Nvidia Jetson.### ###Always passionate about technology, I am suffering from insatiable scientific curiosity. I love experimenting and deepening of my knowledge on the latest news on the market in terms of hardware, hi-tech and video games. Got attracted and involved in hardware prototyping by the Arduino platform, Raspberry Pi and Nvidia Jetson.###

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.