Оживление ретро-игр и классических консолей на FPGA: обзор open source-проектов

Прокомментировать Просмотры: 11

Изображение: macrovector (freepik-free-license)

В последние годы FPGA всё активнее применяется для оживления ретро-игровых систем. Мы в Beeline Cloud познакомились с рядом интереснейших проектов, среди которых аппаратная версия «Игры жизни».

FPGA воплощает «Игру жизни»

В 1940-х годах Станислав Улам и Джон фон Нейман в Лос-Аламосской лаборатории изучали саморазмножающиеся машины и создали первые клеточные автоматы. Однако концепция вышла за рамки академии лишь в 1970-х, когда Джон Конвей предложил знаменитую «Игру жизни» — модель, в которой по простым правилам симулируются рождение, выживание и гибель клеток. Это не только зрелище, но и инструмент для математиков, биологов и даже психологов: американский философ Дэниел Деннет демонстрировал на её примере эволюцию понятий сознания и свободной воли.

В 2020 году американский инженер Питер Хизалев, увлекающийся ретро-системами, реализовал «Жизнь» на плате FPGA Arty A7-100T. Он применил языки Chisel и Verilog вместе с библиотеками Scala, что позволило создавать аппаратные абстракции высокого уровня.

Традиционная софтовая версия обходила ячейки последовательно, тогда как аппаратный подход вычисляет новое состояние одновременно для всех клеток на каждом тактовом импульсе. В конструкции Хизалева каждый модуль анализирует восемь соседей, а сама сетка хранится в двумерном массиве с настраиваемыми размерами.

Сообщество отметило сходство проекта с университетскими лабораторными работами на FPGA, но некоторые посчитали, что Verilog усложняет создание абстракций. В качестве альтернативы предлагали использовать функциональные языки вроде Clash или nMigen для более гибкого метапрограммирования.

Замедленная анимация «Игры жизни»
Съемка последовательных поколений клеток на FPGA
Стресс-тест FPGA
Стресс-тест с обновлением миллионов клеток в секунду

Аппаратный эмулятор Game Bub

Game Bub — FPGA-эмулятор портативных консолей, способный запускать как оригинальные картриджи, так и пользовательские «домашние» игры. Над проектом уже четыре года работает инженер Илай Липсиц, ранее писавший эмуляторы NES на Go и Rust, но на этот раз выбравший аппаратную реализацию ради прямой поддержки периферии и картриджей.

Первая версия Game Bub родилась за четыре месяца: Липсиц использовал плату Pynq-Z2 от AMD и пакет Vivado для разработки схем. Затем он мигрировал на чип XC7A100T, доводя точность эмуляции до оригинала.

В ходе работы возникали сложности с электрическими схемами, и автор даже задумывался об отказе от проекта. Но в 2025 году финальная версия вышла в свет: добавлены HDMI-выход, вибромоторы и аккумулятор вместо сменных батареек. Для интерфейса Липсиц выбрал фреймворк Slint — создал виджеты для навигации и управления.

Архитектурная схема Game Bub
Схема архитектуры Game Bub (CC-BY-SA 4.0)

В августе 2025 стартап на платформе краудфандинга предложил готовые портативные устройства, а в сентябре появился веб-инструмент для обновления официальной и кастомной прошивки. Исходники распространяются под GPLv3, а STL-модели и файлы плат — под лицензией CC-BY-SA 4.0.

486Tang: FPGA-ПК размером с кредитку

486Tang воссоздаёт опыт работы с 486-м компьютером на компактной плате Tang Console. Проект был анонсирован в сентябре 2025: для ядра ao486 MiSTer автор выбрал SDRAM вместо DDR3, приближая систему к реалиям 1990-х.

В блоге разработчика подробно описаны приёмы оптимизации производительности и пошаговые инструкции по запуску, настройке и установке игр из репозитория.

Сам автор — страстный ретро-энтузиаст: ранее он создал NESTang для эмуляции NES с выводом 720p HDMI и меню с загрузкой с MicroSD.

Другие ретроконсоли на современной «начинке»

В 2024-м год программист из Токио Бенджамин Тодд представил портативную консоль Retro-Lite-CM5 на базе модуля RK3588s. Устройство позволяет играть в классические японские платформы, имеет IPS-экран 720p, Wi-Fi 6, Bluetooth 5.2, DisplayPort через USB-C, HDMI 2.1 и USB 3.0 под управлением Armbian и фронтенда ES-DE.

В феврале 2025 анонимный разработчик представил прототип Pi-Deck-5 на базе Raspberry Pi 5 с Ethernet и USB. Хотя устройство пока в «сыром» состоянии, код и список компонентов открыты на GitHub. Для эмуляции можно использовать дистрибутив Lakka.

Шведский инженер Реналдас Зёма создал tiny-atari-2600 — однокристальный компьютер с открытым PDK от Google SkyWater. Проект основан на FPGA-реализации Atari 2600 Лори Гриффитса, расширенной узлом преобразования NTSC в VGA.

Beeline Cloud — безопасные облачные решения для ваших клиентов.

Полезные подборки:

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов