DASH OS ULTIMATE v30
hardware init... OK
SD card mounted OK
peanut-gb loaded OK
bluetooth ready OK
system online.
relaxing chiptune     relaxing chiptune    
📸 0 / 5 photos viewed

↑↑↓↓←→←→BA
UNLOCKED

you found it. nice.

🏆
Achievement Unlocked!
You did something cool
ask byte!
hi!! ✨
esp32 · game boy emulator · open source

> DASH OS ULTIMATE EDITION v30

A Game Boy emulator running on a $4 ESP32 microcontroller. Loads ROMs from SD card, wireless Bluetooth controller, and runs at around 60fps. A personal project to learn C++ and embedded systems.

C++ ESP32 peanut-gb Bluepad32 TFT_eSPI Hack Club
View on GitHub See screenshots
scroll
GAME BOY EMULATOR ESP32 · $4 SELF-TAUGHT C++ WIRELESS CONTROLLER 14 COLOR THEMES SAVE FILES OPEN SOURCE HACK CLUB 2026 GAME BOY EMULATOR ESP32 · $4 SELF-TAUGHT C++ WIRELESS CONTROLLER 14 COLOR THEMES SAVE FILES OPEN SOURCE HACK CLUB 2026
0
avg FPS
0
hardware cost
0
color themes
0
easter eggs
sleep lost
hardware

Running on a $4 board

◀ GAME BOY ▶
Game running
SELECT START
ESP32-32E · CYD Board
  • ST7796 480×320 TFT display
  • MicroSD card ROM loading
  • 8BitDo Micro via Bluetooth
  • ~60fps at 1x scale
  • Cardboard housing (handmade)
  • No PC required during play
The whole device costs about $4 in parts. The case is cardboard and hot glue. Runs Tetris, Super Marioland, Pokémon, and most other GB/GBC titles.


features

What it does

~60fps emulation

GB and GBC support via peanut-gb. 1x at ~60fps, 2x at ~27fps. Frame skip 0–15.

📡

Wireless controller

8BitDo Micro over Bluetooth. Axis fallback for Switch mode.

💾

Save file support

SRAM auto-saves every 10 seconds. Per-ROM .sav files. Works with Pokémon, Zelda, etc.

🎨

14 color themes

Red, Velvet, Orange, Amber, Yellow, Gold, Green, Matrix, Blue, Cyan, Purple, Magenta, White, Multi.

📦

Floppy disk ROM menu

Animated cartridge viewer shows per-ROM play time, save status, and favorites.

🕹️

6 DMG palettes

Amber, Classic, Pocket, Light, Neon, Cyan. Swap mid-session from settings.

📊

Stats overlay

Live FPS, heap usage, speedrun timer, and PERF mode. Toggle from settings.

🐍

Hidden Snake game

Watch the credits to unlock a full Snake game hidden inside DASH OS.


↑↑↓↓←→←→BA 😉
secrets

Easter eggs

Five easter eggs in the firmware. One works on this page too.

01

Konami Code

Unlocks a special effect. Works here too.

↑ ↑ ↓ ↓ ← → ← → B A

02

Secret Snake

Watch credits to the end to unlock Snake in settings.

Settings → Credits → watch all

03

Matrix Mode

Green falling code + Matrix color theme.

Hold X + Y + Start for 3s

04

Developer Mode

Shows heap addresses and debug info.

Press Select × 10 in settings

05

Speedrun Timer

Millisecond overlay while playing.

Start + Select + B + A


setup

Hardware & installation

Hardware
BoardESP32-32E (CYD)
DisplayST7796 480×320
StorageMicroSD (FAT32)
Controller8BitDo Micro
Total cost~$4
Software
Emulator corepeanut-gb
Display libTFT_eSPI
Controller libBluepad32
ROM formats.gb / .gbc
LanguageC++
bash
# clone the repo
$ git clone https://github.com/TwinSailsStudios/dash-os
# copy roms to sd card root
$ cp *.gb /media/SD/
# flash with platformio
$ pio run --target upload
# pair controller: hold Start+Y
$

big brother 🎵
creator

About

Pratik Dash

Pratik Dash

@TwinSailsStudios

age 13self-taughtmaker
🐱 Auggie
🐱 Otto

I'm Pratik — I'm 13 and I build things with electronics. DASH OS is named after my last name, which felt fitting since it's the most personal project I've made so far.

I got into hardware with an Arduino kit I got for Christmas in December 2025. Started with the classic blinking LED and kept going from there. Everything I know about coding I picked up on my own — no classes, just documentation and a lot of trial and error.

  • Dec 2025Got an Arduino kit for Christmas. Blinked an LED. Got obsessed.
  • Early 2026Built a working e-reader and a drone from scratch.
  • 2026Taught myself C++. Built DASH OS — a full Game Boy emulator on a $4 board.

I listen to a lot of Kanye West while coding — Big Brother is probably the most played. Two cats, Auggie and Otto, who are genuinely zero help during debugging.


origin

How it got built

An Arduino kit under the tree

Got an Arduino starter kit for Christmas. Blinked an LED the same day. Stayed up that night reading about microcontrollers. That was it — fully obsessed from day one.

The $4 board

Found the CYD (Cheap Yellow Display) — an ESP32 with a built-in 480×320 touchscreen for about $4. Ordered it thinking it'd be good for a simple project. Then found peanut-gb, a single-header Game Boy emulator in C.

// the moment it clicked gb_init(&gb, rom_read, ram_read, ram_write, error, NULL);
The white screen problem

First builds kept showing a white screen on boot. Spent days debugging. Turned out the SD card had to be initialized before anything else — before Serial, before malloc, before the display. Once the SD claimed the SPI bus first, everything worked.

void setup() {"{"} // SD MUST be first — before malloc, before Serial SD.begin(SD_CS, sdspi, 400000); Serial.begin(115200); // ... everything else {"}"}
0.1fps — and fixing it

The emulator ran but at 0.1fps. Every frame was reading the entire ROM from the SD card. Fixed it with a dual bank cache — keep bank 0 in RAM permanently, load other banks on demand. Jumped to ~60fps immediately.

The cardboard case

No 3D printer, so the case is cardboard, hot glue, and whatever craft supplies were around. It actually works fine as a housing and has a certain charm to it. DASH OS v30 runs inside a cardboard box and that's kind of great.


what's next

Roadmap

DONE
Core GB emulation
Full Game Boy & GBC support at ~60fps on a $4 chip.
DONE
Wireless controller
8BitDo Micro over Bluetooth via Bluepad32.
DONE
Save file support
Per-ROM .sav files, auto-save every 10s.
IN PROGRESS
GBC full color
Proper 12-bit GBC palette callback. Currently falls back to DMG palettes.
SOON
3D printed case
A real enclosure. The cardboard is great but a proper shell would be better.
SOON
Built-in speaker
peanut-gb supports audio output. Hardware just needs a DAC and speaker wired up.
MAYBE
Game Boy Advance
GBA has about 10× the compute requirements of GB. Might be possible. Probably not. Worth trying.
MAYBE
Touch controls
The CYD has a touch screen that's currently unused. On-screen buttons as a fallback.

community

Hack Club

HACK CLUB

DASH OS was built as part of Hack Club — a global nonprofit network of student-run coding clubs. Hack Club runs programs like Flavor Town, where you build open source hardware and software projects and log your progress publicly.

This project was tracked on Hackatime (a WakaTime fork built by Hack Club) and submitted to Flavor Town. If you're a student who builds things, Hack Club is worth checking out.