Serial Boy transforms a GameBoy into an usefull Tool.

It displays incoming serial data on the screen, sends key presses, allows to play sounds and handle sprites and tiles.

The project is based on the STM32F7 Microcontroller. Its job is to emulate a GameBoy cartridge and to run a serial interface. Content of the emulated cartridge is a GameBoy Game, which handles key presses, and incoming serial data.


Functions

GameBoy ----> Serial port

The GameBoy constantly sends button information via Serial. There are two different kind of states which I call Action and Cyclic. Action related symbols are capital letters, cyclic related symbols are smal letters. Action letters are send if the state changes, Cyclic letters are send every 255ms. 

N,n ----- no button pressed

A,a  ----- A

B,b ----- B

S,s ----- Start

U,u ----- up

D,d ----- down

L,l ----- left

R,r ----- right

Select opens the menue

Serial port ----> GameBoy

If serial data is send towards the SerialBoy Microcontroller, it will be processed by its DMA (direct memory access) unit and put into a ring buffer. The GameBoy program checks constantly for new data in the ring buffer and processes it. 

If readable symbols are received, they will be just displayed. Carryage return and line feed are also implemented. 

Cartridge

The GameBoy runs on a Z80 like Microprocessor. Its memory bus is directly connected to the cartridge pins. After boot up, it executes the code found on the memory bus starting from address 0x100, for a deep dive into the GameBoy I recommend this fantastic video on Youtube. 

I picked one aspect of the cartridge to dig a bit deeper, because otherwise I would end up writing a thesis. 

Applications

Beach Chair

I build a drivable platform using a hoverboard. SerialBoy allows it to be remotely controlled.



TV Remote

To use a GameBoy as remote for my TV i build an Arduino Nano device. It receives Serial Button press information from SerialBoy and sends corresponding infrared data to the TV. 

Future Ideas

Crypto currency price display on GameBoy screen

Develope party games with more GameBoys. Four player Pong and Newtonwars.