Варианты игры Doom для САПР KiCAD и осциллографа

Представлены порты игры Doom, использующие для отрисовки игрового процесса САПР KiCAD и осциллограф. Порт KiDoom формирует игровое поле в редакторе печатных плат, симулируя векторную графику через расстановку дорожек и элементов на печатной плате. Дорожки используются для формирования стен, транзисторы SOT-23 для отображения мелких предметов, микросхемы SOIC-8 для декораций, а микросхемы QFP-64 для игрока и врагов. Всего обеспечено сопоставление более 150 игровых сущностей с соответствующими элементами плат.

Для вывода в редакторе KiCAD модифицированная версия Doom отправляет сформированные векторные данные через Unix-сокет в установленный в KiCad плагин, написанные на языке Python. Плагин расставляет дорожки и элементы в редакторе печатной платы, периодически изменяет их местоположение и вызывает функцию pcbnew.Refresh() для обновления содержимого экрана. Отмечается, что узким местом является вызов pcbnew.Refresh(), но при этом производительности достаточно для отображения 10-25 кадров в секунду.


Порт ScopeDoom генерирует картинку на осциллографе, работающем в режиме X-Y, используя звуковую карту в качестве двухканального цифрового аналогового преобразователя. Режим X-Y реализует векторный дисплей, координаты для которого по оси X передаются через канал осциллографа CH1, а по оси Y – через CH2. Для генерации векторных данных задействован код вышеописанной реализации KiDoom и Python-скрипт для преобразования координат и их передачи в форме звуковых сигналов. Частота обновления кадров при таком подходе упирается в частоту дискретизация звука и составляет 4-8 кадров в секунду.


Release. Ссылка here.