Slow refresh, ghosting and low-contrast — wait, are we talking about passive matrix LCDs, or e-paper displays? That might be why e-paper Game Boy emulators are a thing: the limitations of the black-on-grey e-paper screens remind us of the grey-on-green LCDs Nintendo used in the 80s. In this case [Bo Made It] made it out of a Waveshare ESP32-S3-ePaper-1.54, and got 30 FPS from it.
Now, regular readers might be thinking, “So, we’ve seen the 60 FPS e-paper monitor, how is this special?” It’s a fair question. The answer is that [Bo] is doing this on a randomly chosen dev board with a built in wavetable e-paper controller, rather than the bare inputs that allowed the [Wenting Zhang]’s project to work. On the other hand, [Bo] does credit [Wenting], particularly his e-ink PaperBoy project, with directly inspiring both the project and his implementation.
Again, the big difference is going through the blob of the controller, but it turns out you can still address individual pixels through it. [Bo] gave each pixel a ‘budget’ for up to 8 pulses it depending on how much it needs to change, speeding things up immensely. Our favorite part is how he achieves the Game Boy’s 4-bit greyscale by, in effect, deliberately ghosting the display. Pixels aren’t driven long enough to fully flip them if they’re going only one shade lighter or darker. This complicated matters, since going from black to ‘white’ now takes longer than ‘white’ to the next darker grey, and the exact timing needs to be worked out for each color transition. Getting that timing right took a lot of calibration, and we like how he used video to help automate the process.
That process is still ongoing, so there’s no GitHub link yet. [Bo] will open source everything when it’s ready, and we look forward to it. We also look forward to the PDA-like device he’s going to be using this display driver for. If this all sounds similar to a recent 20 FPS e-paper hack, that’s because it’s the same underlying technology.

Oh wow… I watched the whole video. I love that he details his entire process. I love this kind of iterative optimization.
Who else is getting the impression that e-ink is substantially more capable technology than the products sitting in the shelves showing us dynamic pricing?
Almost like they’re holding back and profiteering off minor incremental improvements.
Those shelf price tags are probably the cheap stuff that has very slow refresh rate. Like 1 or 2 FPS
The one used for this project gets about 2 fps out of the box. It’s not necessarily the display itself that’s the bottleneck.
Memory LCD is pretty cool too, shame it’s not more popular, probably patents holding it back
No, the creator is neglecting to mention that e-ink has a max cycle count. In short, after so many color changes the pixel can die. At this frame rate, you have 10 to 20 hours of play time guaranteed by datasheet. Might be more.
I put that in a comment on the video and he had not checked or tested for that yet. But the datasheet is clear enough.
Almost anything would be better than the original gameboy screen.
I like the original, though. Had used an external light back in the day, though.
Some GB games looked weird/ugly on GBP and GBC, I think.
Playing them on Super GameBoy was the better alternative.
The CRT monitor and the smalll view port of the SGB helped to minimize pixelation.
That device here basically does same by using a stamp sized screen.
The calibration process is quite a piece of work. May have missed it in the video, so I suspect the display also benefits from a heater underneath, or temperature measurement and another dimension along which calibrations are interpolated.
I love projects like this. While I lack the knowledge and tools to duplicate this, I’d definitely want to purchase a kit to assemble if one were made available.
I immediately heard the soundtrack of that Mario game, when I saw the topic top image :D
Nice project :)
Great work. I wonder how this affects the power budget? Do we still get the power savings that E-INK displays are noted for?
the only thing you don’t get is life-time of the display. At that framerate you hit the maximum guaranteed color cycles in record time. There are good reasons these things mostly run slow.