Даже спустя три десятилетия после выхода, Doom продолжает вдохновлять фанатов, которые стремятся запустить культовый шутер на самых неожиданных гаджетах. На этот раз австралийский инженер Арин Саркисян (Arin Sarkisian) представил инициативу DoomBuds, в рамках которой легендарную игру удалось запустить на беспроводных наушниках. Что ещё удивительнее, наушники были подключены к сети, позволив пользователям играть в Doom удалённо.
Источник изображений: techspot.com
В качестве аппаратной основы для DoomBuds были выбраны наушники Pinebuds Pro, поскольку только они поддерживают открытую прошивку. Каждое из этих устройств оснащено чипом Cortex-M4F, способным работать на частоте до 300 МГц, хотя штатное программное обеспечение ограничивает её 100 МГц. Отключив энергосберегающий режим и разогнав процессор до максимальной частоты, наушники превратились в платформу, способную запустить игру эпохи DOS.
Тем не менее, адаптация Doom под столь необычное устройство потребовала значительных усилий. Скорости Bluetooth оказалось недостаточно для передачи видеопотока, поэтому Саркисян использовал доступный на контактных площадках наушников последовательный интерфейс USB-to-UART. Это решение обеспечило необходимую пропускную способность для передачи кадрового буфера игры размером 96 КБ.
Серьёзным вызовом стал и объём оперативной памяти: при отключённом сопроцессоре чип предоставляет всего 992 КБ ОЗУ. Для работы Doom обычно требуется не менее 4 МБ, но благодаря тщательной оптимизации разработчику удалось ужать игру до доступного размера. Кроме того, был использован модифицированный WAD-файл Doom, что сократило общий объём данных с 4,2 МБ до 1,7 МБ.
После множества доработок и оптимизаций пакет Doom был успешно размещён во флеш-памяти наушников. Исходный код проекта DoomBuds построен на базе фреймворка doomgeneric, созданного для упрощения портирования игры на нестандартное оборудование. Дополнительно в репозитории DomBuds-JS на GitHub доступны все необходимые компоненты для управления наушниками через веб-браузер.
Видеопоток передаётся через интерфейс USB-to-UART, который отправляет кадры в сжатом виде MJPEG (где каждый кадр представляет собой отдельное JPEG-изображение). Обработка кодирования JPEG на чипе наушников имеет серьёзные ограничения, однако в этой конфигурации удалось достичь скорости вещания примерно 18 кадров в секунду. Тем не менее, проект DoomBuds можно назвать впечатляющим успехом в рамках давней традиции запуска Doom на самых неожиданных устройствах.