conference logo
Gulaschprogrammiernacht 21

Playlist "Gulaschprogrammiernacht 21"

Aus neu mach' alt: Mini-Retro-Arcade auf ESP32-Basis

Till Harbaum

Mit Hilfe von Arduino-IDE, Lötkolben, 3D-Drucker und Lasercutter wird aus einer preisgünstigen ESP32-Entwicklungsplatine und einem kleinen TFT-Bildschirm ein voll funktionsfähiger Open-Source-Spielautomat im Miniformat. Mit geringem Stromverbrauch, einer simplen Bedienung und vor allem einer alltagstauglichen Robustheit empfiehlt sich der Galagino-Arcade-Automat als unterhaltsames Schreibtisch-Gadget.

Mini-Arcade-Automaten gibt es viele. Die kommerziellen Automaten sind in der Regel billige Plastikkonstruktionen mit eher halbherzig nachprogrammierten Klassikern. Auch Selbstbauanleitungen auf Raspberry-Pi-Basis gibt es einige, aber Stromverbrauch, längliche Boot-Zeiten und inzwischen auch heftige Preise trüben den Spass deutlich.

Warum also nicht den wesentlich billigeren ESP32 nehmen? Und wie funktioniert überhaupt so eine Emulation und wie aufwändig ist das? Die zwei 240Mhz-Cores des ESP32 sollten doch locker für eine saubere Galaga-Emulation reichen ... oder? Ganz so einfach ist es nicht. Was überhaupt hinter so einer Emulation steckt, wo bei der Umsetzung die Fallstricke lagen und wie man neben Galaga auch Pac-Man und Donkey Kong auf einem 3-Euro-Mikrocontroller zum Leben erweckt wird in diesem Vortrag beschrieben.

Neben der Software und dem typischen Breadboard-Aufbau der Hardware wird es aber auch um ein passendes Mini-Arcade-Gehäuse gehen. Ein passender Mini-Joystick aus dem 3D-Drucker sowie ein lasergeschnittenes Holzgehäuse verpassen dem Emulator eine angemessene Hülle. Ein kurzer RGB-LED-Streifen bildet das "Marquee" und erzeugt zum Spielgeschehen passende Lichteffekte.

Das Sahnehäubchen ist der Akku aus einer ausgeschlachteten Einweg-Vape, der statt wie sonst im Müll zu landen für gut drei Stunden kabellosen Galagino-Spass gut ist ... im Gerät per USB wiederaufladbar natürlich.

Alle Source-Codes, CAD-Vorlagen, Verdrahtungsschema etc. gibt es zum Download unter http://github.com/harbaum/galagino