gitmyhub

esp32-console

C ★ 25 updated 16d ago

Dual-screen ESP32-S3 handheld console with a dual-core OS, OTA launcher, and 15 native games.

A homemade handheld game console built on the ESP32-S3 chip, with a custom dual-core OS, dual screens, and fifteen built-in games.

CC++ESP32-S3FreeRTOSsetup: hardcomplexity 5/5

This project, called E-OS, is a homemade handheld game console built around the ESP32-S3, a small dual core microcontroller chip. The whole operating system and every game engine were written from scratch in C++ for this specific hardware, without relying on any existing game engine or emulator.

The physical device has two screens: a small color TFT screen that handles the main game display and interface, and a smaller black and white OLED screen above it that shows system status and high scores. It also has an analog joystick with hardware filtering to stop unwanted drift, a simple 8-bit buzzer for sound, and a micro SD card slot for storing game data. Sixteen megabytes of flash storage and eight megabytes of extra memory give it enough headroom to run smoothly.

The operating system takes advantage of the chip's two processor cores by dedicating one core entirely to running game logic while the other core is solely responsible for drawing graphics to the screen, which the project says keeps things from stuttering. The main menu is an animated, rotating carousel for choosing between programs, and pressing the joystick button can pause any running game instantly at the hardware level. New games or updates can be installed over the air by reading files from the SD card and writing them to the device's flash memory.

The console ships with fifteen custom built games recreated for this small hardware, including a Doom style raycasting shooter, a Mode 7 style racing game, a top down dungeon crawler with boss fights and a shop, Tetris, Snake, Pac-Man, Space Invaders, Flappy Bird, 2048, a rhythm game, a tower defense game, and more, plus three small apps: a flight tracker that pulls real data from the OpenSky Network, a stopwatch and metronome tool, and an Etch-a-Sketch style drawing app. The project also includes Python scripts that can capture screenshots and animated GIFs of the console's screen live over a USB cable while a game keeps running. This is a from-scratch hardware and firmware project, best suited to someone comfortable building and flashing embedded electronics rather than a typical software-only user.

Where it fits