Software
The console runs a fork of Retro-Go, the multi-system emulator for ESP32 devices: a launcher with one tab per system, a ROM browser on the SD card, save states, and one framework for display, sound and buttons. The fork adds the ESP32 Emu Turbo target, a display driver for the 8-bit parallel ILI9488, and the apps that upstream does not have.
The pages of this section
| Page | What it has |
|---|---|
| Firmware | the build on the board, the flash layout, building, writing, updating from the SD card, the card's folders |
| Emulators — tests and speed | every system, the game it was checked with, its speed on the board, the buttons, the system files |
| Optimizations | what made SNES, GBA, Mega Drive, arcade and Atari 7800 faster, measured, and what did not pay |
| Simulator & QEMU | testing without the board |
| Boot Splash | the "GAME BRO!" boot animation |
What the other Retro-Go forks add, and what was taken from them, is in Retro-Go forks survey.
What runs
Nearly every system runs at its full speed; the ones that do not yet are the 68000 arcade boards (CPS1 52–60 in a fight, Neo Geo 52–58, System 16 54–58), the GBA's 3D games (NFS Underground 52, Crash Nitro Kart 56, DOOM 40 in play; the other GBA games 59–60) and the Atari 7800 (58–59), as of 2026-10-14. The table is on Emulators.
| App | Systems |
|---|---|
| retro-core | NES, SNES (SuperFX, DSP-1), Game Boy, Game Boy Color, Master System, Game Gear, SG-1000, ColecoVision, PC Engine, Atari Lynx |
| gwenesis | Mega Drive |
| gbsp | Game Boy Advance (with an Xtensa dynarec) |
| retro-extra | Atari 2600, Neo Geo Pocket, Arcade 3D Racing |
| retro-home | Atari 5200, Atari 7800, Commodore 64 |
| fmsx | MSX 1 / 2 |
| mame-go | Arcade (MAME 0.37b5), Neo Geo, Capcom CPS1, Sega System 16 |
| prboom-go, wolf3d-go, opentyrian-go | DOOM, Wolfenstein 3D, OpenTyrian |
| sdapp | OutRun (Cannonball), run from the SD card |
Display
The ILI9488 (3.95", 480×320 landscape) is driven over an 8-bit 8080 parallel bus at 20 MHz (GPIO4–11 data, async DMA), 20 MB/s, about four times what SPI gives. A full frame takes about 15 ms, so roughly 60 frames a second is the most any app can show. Retro-Go's scaler fits every system in 480×320 with less than 1.5× scaling. The backlight is wired to +5 V on the board.
Memory
Sound and buttons
Sound is PDM on one pin (GPIO17) into the PAM8403 amplifier; every app plays at 32 kHz (other rates misbehaved on the PDM output). The 12 buttons are read directly on GPIOs; MENU shares GPIO0 with SELECT.
Where things came from
| Project | Used for |
|---|---|
| ducalex/retro-go | the base of the fork |
| atanisoft/esp_lcd_ili9488 | display driver (the namespace is atanisoft/, not espressif/) |
| pcgamer404/retro-go-pro | Wolfenstein 3D, Quake |
| DynaMight1124/retro-go | OpenTyrian |
| libretro mame2000 | the arcade app |
| libretro gpSP | Game Boy Advance |
| libretro ProSystem | Atari 7800 |
| MCUME | Atari 5200 (Atari800), Commodore 64 (Teensy64) |
| fMSX | MSX |