Run 15+ Retro Consoles on a $10 ESP32
Turn a $10 ESP32 board into a multi-system retro console using Fernando Garcia's custom bootloader.
It is easy enough to turn a Raspberry Pi or an old PC into a retro gaming machine that can emulate a dozen or more vintage consoles. But Fernando Garcia's latest project manages to do something similar using just a $10 ESP32 development board. With a custom bootloader and a single microSD card, the tiny board can transform itself into more than 15 classic computers and game consoles.
Garcia built the project around the LILYGO TTGO VGA, an ESP32-based development board with built-in VGA output. It can connect directly to a compatible monitor without a separate video adapter, and an SD card provides storage for emulators and other software. If you don't have a TTGO VGA, other ESP32-WROVER-based development boards are also supported.
The trick to making this system work is the custom bootloader. Normally, running a different emulator on an ESP32 would mean connecting the board to a computer and flashing new firmware. Garcia's bootloader instead lets the ESP32 load firmware stored on an SD card.
Using this approach, each emulator can live in its own directory alongside a firmware binary file and a metadata file. When the ESP32 starts, the bootloader presents a menu of the available systems. Selecting one causes its firmware to be written to the ESP32's flash memory. On later boots, that firmware starts automatically unless another system is selected.
The current lineup includes emulators for the Atari 2600 and 5200, Apple II, Atari ST, Commodore 64, VIC-20, Amstrad CPC, ZX81, ZX Spectrum, MSX2, Oric, TRS-80, PC/XT, Macintosh Classic, and CoCo, among others. There is even a standalone Tiny BASIC-based computer environment if you want to get your 10 PRINT on.
The emulators run on bare metal, keeping the software stack lightweight enough for the relatively modest resources available to the ESP32. As you might expect, compatibility and performance vary between systems, and some of the emulators are still considered alpha or experimental software.
After the initial bootloader is flashed over USB, a FAT32-formatted microSD card can be used for everything else. Adding a Wi-Fi configuration file lets the ESP32 connect to a 2.4 GHz network and download available emulators and updates. Users can then add their own ROMs or other software to the appropriate directories.
For all the details you need to run your own retro arcade on hardware that costs about as much as a sandwich, be sure to read the full project write-up.
Please log in or sign up to comment.