Unique

InkBoy

A Game Boy emulator that plays at about 30 fps on a 1.54-inch e-paper screen

A small white InkBoy case with a square e-paper screen showing the Link's Awakening title screen, next to a white and black NES-style controller.

InkBoy showing Link’s Awakening beside its custom controller. Image: frame from the project’s demo video, kuslota.

E-paper takes hundreds of milliseconds to refresh. InkBoy plays Game Boy games on it at about 30 frames per second anyway.

A standard partial update on this panel takes about 360 ms, which gets you two or three frames a second. InkBoy, by kuslota, skips that. It keeps a counter for every pixel, drives only the pixels whose target changed, and replaces the factory waveform with a one-frame one. The author’s write-up says a single scan takes roughly 20 ms in black-and-white mode.

The idea comes from PaperBoy, Wenting Zhang’s earlier e-paper project, which the README credits as inspiration. No PaperBoy code is included: PaperBoy drives the raw panel signals, and the project’s docs explain that this board’s controller does not expose them.

The hardware is a Waveshare ESP32-S3 board with a 200 by 200 screen, a speaker and a microSD slot. ROMs sit on a FAT32 card, with a browser menu, audio and automatic resume. Two display modes are on offer: fast dithered black and white, or four-shade grayscale. A separate ESP32-C3 gamepad, shaped like an NES pad, connects over Bluetooth or a USB-C cable.

The 30 fps is a display rate. The emulator runs at the Game Boy’s 59.7 internally, and the screen takes the latest finished image every 33 milliseconds.

The limits are stated plainly:

  • It is a build project. You buy the board and the controller parts, then flash the firmware yourself with ESP-IDF.
  • Only the custom InkBoy controller works. Generic gamepads are not supported; Bluetooth gamepad support is on the planned list.
  • It plays original Game Boy games, up to 2 MiB. Color-only cartridges and ones with a real-time clock do not run.
  • Busy scenes can drop below 30 fps, and grayscale mode leaves faint trails.
  • The display drive is experimental. The README opens its warning with “Use at your own risk”: the drive may cause permanent image retention or panel damage, and long-term panel life has not been validated.

The code is MIT-licensed. The repository also bundles a GPL-licensed puzzle game, Big2Small.

github.com ↗

← back