Медленное обновление, шлейфы и низкая контрастность — речь о пассивно-матричных ЖК-экранах или о дисплеях на электронных чернилах? Возможно, именно поэтому эмуляторы Game Boy на e-ink стали отдельным жанром: ограничения чёрно-серых экранов на электронных чернилах напоминают серо-зелёные ЖК-дисплеи, которые Nintendo использовала в 1980-х. В этом случае энтузиаст под ником Bo собрал эмулятор на базе платы Waveshare ESP32-S3-ePaper-1.54 и добился от неё 30 кадров в секунду.

Эмулятор Game Boy на дисплее с электронными чернилами, собранный на плате Waveshare ESP32-S3

реклама кормит Уточку 🦆

Казалось бы, e-ink-монитор на 60 кадрах в секунду уже показывали — чем же особенен этот проект? Вопрос справедливый. Дело в том, что Bo работает со случайно выбранной отладочной платой со встроенным контроллером управления электронными чернилами (так называемый wavetable), а не с «голыми» входами, на которых держался проект Wenting Zhang. При этом Bo отдаёт должное Wenting и его e-ink-проекту PaperBoy, прямо вдохновившему и саму идею, и реализацию.

реклама кормит Уточку 🦆

Главное отличие — работа через «чёрный ящик» контроллера, но оказалось, что и сквозь него можно адресовать отдельные пиксели. Каждому пикселю Bo выделил «бюджет» до 8 импульсов в зависимости от того, насколько сильно нужно изменить его состояние, что существенно ускорило вывод. Особенно любопытно, как достигается 4-битная градация серого Game Boy — фактически за счёт намеренного «шлейфа»: пиксели не удерживаются достаточно долго, чтобы полностью переключиться, если меняют оттенок лишь на одну ступень. Это усложнило дело, ведь переход от чёрного к «белому» теперь занимает больше времени, чем переход от «белого» к следующему более тёмному серому, и точный тайминг приходится подбирать для каждого перехода. На калибровку ушло немало времени, а для её автоматизации пригодилась видеосъёмка.

реклама кормит Уточку 🦆

Работа пока продолжается, поэтому ссылки на GitHub ещё нет: Bo обещает открыть исходники, когда всё будет готово. Отдельно интересно и устройство в духе КПК, для которого и создаётся этот драйвер дисплея. Всё это основано на той же технологии, что и недавний 20-кадровый e-ink-хак.