In this project, the following components have been used:

  • Gameboy case
  • Raspberry Pi Zero W (Newer versions would perform better)
  • ili9341 TFT screen

Beforehand, RetroPie has been installed on the Raspberry Pi, providing a collection of emulators for a wide range of gaming consoles.

Next comes the more tedious task: soldering all the wires. It is necessary to solder the connections between the screen and the Raspberry Pi, as well as between the buttons and the board. The connections for the screen are as follows (pins, not GPIOS):

LED pin 12
SCK pin 23
(SDO)MISO pin 21
(SDI)MOSI pin 19
CS pin 24
RESET pin 22
D/C pin 18
VIN pin 17
GND pin 20

On the other hand, the case needs to be modified to add the X and Y buttons and also L and R triggers.

Regarding the software, the screen needs to be set up.

I am attaching a couple of links with useful guides, depending on the type of screen and the RetroPie version used.

For the controls, the idea of using a microcontroller and connecting it to the Raspberry Pi was considered, but it was not implemented due to space constraints. In the end, this library was used:

https://github.com/mholgatem/GPIOnext

This library allows mapping the controls connected directly to the Raspberry Pi board.

Once everything is set up, you will be able to send ROMs via SSH.