Ентузіаст Арін Саркісян із Сіднея зміг запустити легендарну гру Doom на навушниках PineBuds Pro — пристрої з відкритим програмним забезпеченням та порівняно потужним вбудованим процесором. Його проєкт отримав назву Doombuds і докладно описаний на спеціальному сайті, присвяченому порту гри.
Про це розповідає ProIT
Технічні особливості запуску Doom на PineBuds Pro
Для реалізації ідеї Саркісян використав прошивку з відкритим кодом і розігнав чип Cortex-M4F із базових 100 МГц до 300 МГц, вимкнувши режим низького енергоспоживання. Завдяки цьому вдалося підвищити продуктивність та частоту кадрів до 18 FPS. Окрім цього, інженер оптимізував використання оперативної пам’яті: стандартно навушники мають 768 КБ RAM, але після вимкнення співпроцесора цей обсяг зріс до 992 КБ. Оскільки оригінальний DOOM потребує 4 МБ оперативної пам’яті, було проведено низку програмних оптимізацій, щоб зменшити необхідний обсяг у чотири рази. Файл ресурсів DOOM теж був зменшений — з 4,2 МБ до 1,7 МБ, щоб уміститися у 4 МБ доступної пам’яті пристрою.
Підключення, керування та доступність проєкту
Оскільки PineBuds Pro не оснащені дисплеєм, передача даних можлива лише через Bluetooth або UART-контакти. Bluetooth має обмежену пропускну здатність (до 1 Мбіт/с), тож Саркісян рекомендує використовувати апаратне під’єднання через UART, яке забезпечує 2,4 Мбіт/с. Однак навіть із таким з’єднанням без стиснення потоку можна отримати лише 3 кадри на секунду. Для оптимізації відеопотоку застосовано MJPEG — послідовність JPEG-зображень, що дозволяє отримати 18 кадрів за секунду з використанням рекомендованого кодека.
Проєкт складається з чотирьох основних компонентів: порту DOOM для навушників, “послідовного сервера” для зв’язку між навушниками та вебсервером, самого вебсерверу, який керує ресурсами, чергою та натисканням клавіш, і статичної вебсторінки для взаємодії з користувачем. Грати у Doom можна через браузер, а всі необхідні файли та інструкції розміщені на GitHub. На сайті Doombuds реалізовано віртуальну чергу та стрім на Twitch, що дозволяє всім охочим дистанційно підключатися до навушників і запускати гру зі свого браузера.
“Навушники не мають дисплея, тому єдиний спосіб передавати дані до них/з них — через Bluetooth або контакти UART. Bluetooth досить повільний: ‘вам пощастить, якщо ви отримаєте стабільне з’єднання зі швидкістю 1 Мбіт/с’, тож апаратне під’єднання здається кращим. З’єднання UART забезпечує 2,4 Мбіт/с корисної пропускної здатності, але без стиснення потоку це лише 3 кадри на секунду. Для стиснення модер використав невимогливий до ресурсів потік MJPEG — це зображення JPEG, які відтворюються одне за одним. Він рекомендує потрібний кодек, з яким частоту кадрів вдалося підняти до фактичних 18 кадрів в секунду”.
Детальні інструкції доступні для всіх бажаючих, тож ентузіасти можуть повторити цей експеримент на власних PineBuds Pro.