Turn a $10 Board into a Multi-System Retro Computer


https://alternativebits.com/esp32/en.html

What if a single $10 development board could become an entire collection of classic computers and game consoles?

This open-source project turns the LILYGO ESP32 VGA (on other ESP32-wroover based boards like Olimex and ROBGO_RG) into a standalone multi-system retro computer capable of running more than 15 different classic systems, all from a single SD card.

The LILYGO ESP32 VGA is an ESP32-based development board with built-in VGA output that can be found on marketplaces such as AliExpress for around US$10.


The idea is simple: Take inexpensive modern hardware and turn it into a complete retrocomputing machine.

The Hardware

The project is based on the ESP32, using the LILYGO ESP32 VGA board as the main hardware platform.

Despite its very low cost, the ESP32 provides enough processing power, memory and peripherals to emulate a surprisingly large range of classic computers and game consoles.

The LILYGO board provides direct VGA output, allowing the system to be connected to a standard VGA monitor without requiring an external video processor.

But the most important part of the project is not the hardware. It is the software architecture.

A Multi-System Bootloader

Instead of flashing a different firmware every time a different computer or console is required, this project uses a custom multi-system bootloader.

The bootloader turns the ESP32 into a small retrocomputing platform.

Multiple emulators can be stored on the same SD card, and the user can select which system to launch directly from the bootloader.

There is no need to connect the board to a computer and reflash the firmware every time.

No USB cable required

Once the bootloader is installed, changing systems does not require:

  • USB flashing
  • Arduino IDE
  • PlatformIO
  • A computer
  • Reprogramming the ESP32

The SD card becomes the software library for the machine.

Power on the board, select a system, and start computing.

More Than 15 Classic Systems

The current project includes support for a growing collection of classic computers and consoles, including:

  • Atari 2600
  • Apple II
  • Atari 5200
  • Atari ST
  • Commodore 64
  • CoCo
  • Amstrad CPC
  • ZX81
  • ZX Spectrum
  • MSX2
  • Oric
  • PC/XT
  • Macintosh Classic
  • TRS-80
  • VIC-20
  • and others

There is also a dedicated BASIC computer environment, with VGA output and a BASIC language based on Tiny BASIC.

The goal is not simply to emulate game consoles, but to recreate the experience of an entire generation of personal computers.

Bare-Metal Emulation

One of the most interesting technical aspects of the project is that the emulators run bare metal. There is no Linux operating system underneath them.

The ESP32 boots directly into the custom bootloader, and the selected emulator runs directly on the microcontroller. This keeps the system lightweight and makes it possible to run multiple classic systems on extremely inexpensive hardware.

A modern microcontroller becomes the hardware platform for an entire collection of historical machines.

Automatic Updates and Downloads

The bootloader is designed to go beyond simply launching emulators. It can update itself and download new software automatically.

This makes it possible to add new emulator versions, system components and other software without requiring the user to manually flash the ESP32.

The concept is somewhat similar to RetroPie, but much simpler and designed specifically for a small bare-metal ESP32 system.

The idea is:

Power on → Bootloader → Select system → Run

The system can check for updates and download new components, allowing the platform to grow over time.

One Board, Many Computers

The same $10 board can become:

Atari → Commodore → Apple → Sinclair → MSX → Amstrad → Macintosh → PC → TRS-80 → BASIC computer

without changing the hardware. The bootloader provides the common infrastructure...

Read more »