Игры с частотой 60 кадров в секунду на дисплее E Ink? Звучит неправдоподобно… Но именно это делает проект PaperBoy — эмулятор Game Boy от Вентин Чжан, использующий плату разработчика M5Stack PaperS3, объединяющую беспроводной микроконтроллер ESP32-S3 с 4,7-дюймовым дисплеем E Ink разрешением 960 x 540 точек.
Одна из хитростей заключается в том, что нижняя часть сенсорного дисплея ePaper используется для кнопок управления и не требует обновления, а активная часть имеет разрешение всего 160 x 144, увеличенное в три раза для отображения различных оттенков серого.
В отличие от большинства небольших комплектов разработки с E Ink, PaperS3 оснащён экраном с интерфейсом прямого управления строками и столбцами, что позволило управлять дисплеем в обход стандартного метода波形 (волновых таблиц) и обеспечить более высокую частоту обновления — до 60 FPS. Вентин не изобретал велосипед для части эмуляции Game Boy: после тестирования трёх разных эмуляторов он остановился на проекте CrankBoy , который обеспечивает лучшую производительность — от 30 до 60 FPS для большинства игр. Tetris оказался самой требовательной игрой, а Super Mario Land выдаёт наибольшую частоту кадров.
Реализация звука также оказалась непростой задачей, в основном из‑за того, что комплект разработчика PaperS3 оснащён только зуммером, способным воспроизводить один тон за раз. Проблему удалось решить, используя для вывода звука прямоугольные импульсы — тот же метод, что применяется в ПК-зуммере. Ввод данных от пользователя был проще благодаря сенсорному экрану, а в проект также была добавлена поддержка геймпадов через Bluetooth LE.

Более подробные технические детали можно найти в статье на Hackster.io или в видео, встроенном в конце обзора. Исходный код на базе ESP-IDF доступен на GitHub , а готовую прошивку также можно установить из M5Burner.
Один из недостатков в том, что PaperS3 devkit находится в статусе EOL (End-of-Life) , поэтому его трудно найти, хотя его можно найти на eBay вдвое дороже оригинальной цены. Возможно, будет непросто найти замену, так как для достижения тех же результатов требуется ePaper devkit с прямым интерфейсом дисплея. Ближайший вариант — более старая M5Paper на том же дисплее, которая всё ещё продаётся за $85 , но она основана на ESP32 вместо ESP32-S3 и потребует дальнейших доработок.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.


