Энтузиаст создал эмулятор Game Boy для экрана на электронных чернилах
Автор YouTube-канала Wenting Channel инженер Вэнтинг Чжан представил проект по запуску эмулятора портативной консоли Nintendo Game Boy на дисплее с электронными чернилами. Для своего проекта энтузиаст использовал экран PaperS3 от компании M5Stack, изначально предназначенный для управления умным домом, электронных этикеток и образовательных инструментов.
Экран использует микроконтроллер ESP32-S3, основанный на двухъядерном Xtensa LX7 с максимальной частотой 240 МГц.
Чтобы запустить эмулятор Game Boy, Чжан применил технологию, которую он ранее разработал для своего проекта монитора с открытым исходным кодом Modos Flow. Инженер заменил контроллер дисплея E-Ink на мощную FPGA, чтобы рассматривать каждый пиксель как независимую область отображения и обновлять только те части экрана, которые фактически изменяются в каждом кадре.
Дисплей Game Boy имеет разрешение 160х144, а PaperS3 — 960х540. Чжан смог увеличить разрешение в три раза, чтобы получить достаточное пространство для применения дизеринга и воспроизведения четырёх возможных оттенков оригинального экрана портативной консоли Nintendo. Этот процесс занимает почти всё второе ядро ЦП в ESP32, оставляя производительность лишь для обработки звука. Фактическая эмуляция происходит на первом ядре процессора.
В результате получилась убедительная копия дисплея Game Boy на базе электронных чернил. Чжан реализовал некоторые функции, такие как частичная поддержка контроллеров Bluetooth LE и выделенная сенсорная область для кнопок управления, сохранения и загрузки.
Для запуска Game Boy моддер создал форк CrankBoy — эмулятора Game Boy под Playdate. Ни один из протестированных Чжаном эмуляторов не смог запустить все игры Game Boy на полной скорости на PaperS3, но CrankBoy приблизился к
Читать на habr.com