What is it?
It is a drop-in replacment for a standard Gameboy Advance (GBA) motherboard, built on the ESP32 microcontroller.

Similar to Play ESP is uses an open-source NES emulator that integrates button controls, TFT display, sound, and internal flash or external SD-card storage in a stock GBA shell.
Features
- ESP32 host with 16Mb flasha nd 8Mb PSRAM
- 320x240px TFT screen (ILI9341 controller)
- Lipo battery management (TP4056)
- GPIO expander for button controls (PCF8574)
- SD-card interface (SPI mode)
- WS2812 RGB LED
- LM4875 audio amp with headphone detection and volume control
Backstory
I started work on the ESP32 Gameboy as a drop-in replacement for the Gameboy case, which is very easy to find on online markets for more than a reasonable price. This project turned out to be not as simple as I expected, spanning across a few board revisions and many issues found and fixed (and a few remain), so at some point, I decided to make a mini version that would use the same code running on the similar but much-simplified hardware, in a shape of DIY kit (I am sure everything gets better when it is a DIY).
The current prototype has a few unsolved issues that I’d love to address as soon as I have enough time to invest
- The audio interface uses an internal ADC, which sounds awful. It required a proper DAC instead
- It makes sense to replace ESP32 with ESP32-S3 and perhaps get rid of the GPIO expander for simplicity
- TFT display in SPI mode is too slow; probably, a parallel interface would be a better fit
- SPI mode for the SD card is not optimal – SDIO require less pins and runs faster
- I struggle to find TFT with a solder-less connector. Soldering long ribbon requires skills and precision that many of us don’t possess.
Project status

Sleved. Until further notice. But if you want to pick it up for development, I’ll hand over all the design files I have and will support you on the way.
Documentation
Schematics and software are on GitHub under GPLv2; feel free to use and contribute.


