Genel Bakış
E Ink ekranlarda oyun oynamak genellikle imkânsız kabul edilir — yavaş yenileme hızı, hayalet görüntüler ve tepki gecikmesi bu teknolojinin temel kısıtlamaları olarak bilinir. Wenting Zhang bu kısıtlamayı umursamadı. M5Stack PaperS3 geliştirme kitini kullanarak ESP32-S3 mikrodenetleyici üzerinde çalışan, E Ink ekranda 60 FPS’e ulaşan bir Game Boy emülatörü inşa etti.
Nasıl Mümkün Oldu?
Standart E Ink ekranlar pikselleri güncellemek için yüzlerce milisaniye süren voltaj dizileri (waveform) kullanır. PaperS3’ün ekranı ise ham satır/sütun sürücü arabirimine sahip — bu sayede Zhang, standart waveform yöntemini tamamen atlayarak piksellere doğrudan pipeline modunda müdahale edebildi. Sonuç: 60–70 FPS yenileme hızı.
Teknik Detaylar
- Donanım: M5Stack PaperS3 — ESP32-S3 çift çekirdekli mikrodenetleyici + 4,7 inç E Ink dokunmatik ekran (960×540)
- Emülatör: CrankBoy (Peanut GB’nin optimize fork’u) — PeanutGB ve WanaCGB ile karşılaştırıldı, en iyi performansı CrankBoy verdi
- CPU Dağılımı: Birinci çekirdek tamamen Game Boy emülasyonuna ayrıldı; ikinci çekirdek ekran güncellemelerini yönetiyor (gri ton dithering bu çekirdeğin neredeyse tamamını kullanıyor)
- Çözünürlük: Game Boy’un 160×144 pikseli, 960×540 ekranda 3× büyütülerek gösterildi — 4 gri ton dithering ile
- Ses: PaperS3’te yalnızca tek ton çalabilen bir piezo buzzer var. Zhang, Game Boy’un 4 ses kanalını eski PC buzzer yöntemiyle (pseudo-polyphony) simüle etti — sonuç mükemmel değil ama tanıdık
- Kontrol: Dokunmatik ekran joypad + deneysel Bluetooth LE gamepad desteği
- Kayıt: SD karta kayıt ve hızlı kayıt/yükleme desteği
Çalışan Oyunlar
Pokémon Blue, Super Mario Land, The Legend of Zelda: Link’s Awakening, Tetris, Touhou. Game Boy Color desteği henüz yok — GBC işlemcisi iki kat hızlı çalışıyor ve ESP32-S3 bunu kaldıramıyor.
Sınırlamalar
PaperS3 geliştirme kiti üretimden kaldırıldı (EOL). Temin etmek güç; ikinci el piyasasında orijinal fiyatının iki katına satılıyor. Benzer sonuçlar için ham satır/sütun sürücü arabirimine sahip bir E Ink kit gerekiyor — bu da alternatif bulmayı zorlaştırıyor.
Firmware ve Kaynak Kod
Firmware, M5Stack’ın M5Burner aracıyla doğrudan yüklenebilir. Kaynak kod GitLab’da açık kaynak olarak paylaşıldı.
Overview
Gaming on E Ink displays is generally considered impossible — slow refresh rates, ghosting, and input lag make them fundamentally unsuitable for fast-moving content. Wenting Zhang ignored that. Using the discontinued M5Stack PaperS3 dev kit, he built a Game Boy emulator running on an ESP32-S3 microcontroller that achieves up to 60 FPS on an E Ink display.
How Is This Possible?
Standard E Ink panels update pixels through voltage sequences (waveforms) that take hundreds of milliseconds per frame. The PaperS3’s display has a raw row/column driver interface — this allowed Zhang to bypass the standard waveform method entirely and drive pixels directly in pipeline fashion, achieving 60–70 FPS refresh rates.
Technical Details
- Hardware: M5Stack PaperS3 — ESP32-S3 dual-core MCU + 4.7-inch E Ink touchscreen (960×540)
- Emulator: CrankBoy (optimized fork of Peanut GB) — tested against PeanutGB and WanaCGB; CrankBoy delivered the best performance
- CPU Split: Core 1 dedicated entirely to Game Boy emulation; Core 2 handles display updates with greyscale dithering (consuming nearly all of Core 2’s capacity)
- Resolution: Game Boy’s native 160×144 upscaled 3× on the 960×540 panel — 4-shade greyscale via dithering
- Audio: PaperS3 has only a single-tone piezo buzzer. Zhang simulated Game Boy’s 4 audio channels using pseudo-polyphony (the same technique used on old PC buzzers) — not perfect, but recognizable
- Controls: Touchscreen joypad + experimental Bluetooth LE gamepad support
- Save System: SD card saves + quick-save/load via touchscreen
Games Tested
Pokémon Blue, Super Mario Land, The Legend of Zelda: Link’s Awakening, Tetris, Touhou. Game Boy Color not supported — GBC runs at twice the CPU speed and the ESP32-S3 can’t keep up.
Limitations
The PaperS3 dev kit is EOL — hard to source, selling for roughly double its original price on eBay. Replicating the project requires an E Ink dev kit with a raw display interface, which significantly limits alternatives.
Firmware & Source Code
Firmware can be flashed directly via M5Stack’s M5Burner tool. Source code is open source on GitLab.
Full article: PaperBoy Game Boy Emulator works at 60 FPS on ESP32-S3 E Ink devkit - CNX Software
Hackster.io write-up: https://www.hackster.io/wenting-zhang/60fps-eink-gameboy-emulator-on-m5papers3-57e4e5
GitLab: Wenting Zhang / paperboy · GitLab