DOOM-a można uruchomić praktycznie na wszystkim. Od kalkulatorów przez testy ciążowe po bankomaty. Najnowszy projekt przesunął jednak granice jeszcze dalej. Arin Sarkisian stworzył DOOMBuds, port działający na słuchawkach TWS PineBuds Pro. Gra wyświetla się na ekranie podłączonym do etui ładującego, a całość działa przy zaledwie 300 MHz CPU i mniej niż 1 MB pamięci RAM. To jedna z najbardziej ekstremalnych implementacji typu „Can it run DOOM?”.
Programista Arin Sarkisian uruchomił klasycznego DOOM-a na słuchawkach PineBuds Pro, wykorzystując zaledwie 300 MHz CPU i mniej niż 1 MB RAM poprzez streaming pojedynczych klatek JPEG przy 18 fps.
Projekt DOOMBuds bazuje na słuchawkach PineBuds Pro firmy Pine64, otwartych na modyfikacje urządzeniach TWS (True Wireless Stereo) z aktywną redukcją szumów. Ich sercem jest chip Bestechnic BES2300-YP, wyposażony w dwurdzeniowy procesor Cortex-M4F taktowany zegarem 300 MHz oraz Bluetooth 5.2. Oryginalnie każda słuchawka dysponuje zaledwie 40 mAh akumulatorem i mikroskopijnym zasobem pamięci, gdyż to hardware stworzony do odtwarzania audio, a nie do gier 3D. Sarkisian wykorzystał jednak otwarty firmware OpenPineBuds, który umożliwia pełną kontrolę nad sprzętem. Najważniejszą rolę odegrał tutaj framework doomgeneric, czyli uniwersalne narzędzie upraszczające proces portowania DOOM-a na nietypowe platformy. Wystarczy zaimplementować kilka podstawowych funkcji (wyświetlanie ramki, obsługa wejścia, timer), a reszta kodu gry działa bez zmian. W przypadku DOOMBuds programista poszedł jednak na kompromis.
Największym wyzwaniem okazały się ograniczenia sprzętowe. DOOM z 1993 roku potrzebuje minimum 4 MB RAM, podczas gdy PineBuds Pro oferują niespełna 1 MB. Sarkisian rozwiązał to przez optymalizacje. Usunął system cache’owania gry, przeniósł tablice lookup do pamięci flash i zastosował zmodyfikowaną wersję shareware DOOM 1 o nazwie Squashware (1,7 MB zamiast 4,2 MB). Prawdziwą barierą okazał się jednak transfer obrazu. Słuchawki nie mają wyświetlacza, dlatego obraz przesyłany jest przez UART do komputera. Połączenie UART daje 2,4 Mbps przepustowości, ale surowy framebuffer DOOM-a (320×200 pikseli, 96 KB na klatkę) pozwalałby jedynie na 3 fps. Rozwiązanie? Real-time encoding każdej klatki do JPEG-a bezpośrednio na chipie BES2300. Dzięki bibliotece JPEGENC dla urządzeń embedded, przeciętna skompresowana klatka waży 11-13,5 KB. Teoretycznie daje to 22-27 fps, ale procesor Cortex-M4F przy 300 MHz ledwo nadąża z kompresją, stąd finalne 18 fps. Gra faktycznie renderuje się lokalnie na słuchawce, a następnie każda klatka leci jako osobny JPEG przez przewód do przeglądarki.
Cała architektura składa się z czterech warstw, czyli z firmware DOOM-a działającego na słuchawkach, „serial server” transkodującego strumień JPEG do MJPEG (i przekazujący go na Twitch dla oszczędności przepustowości), serwer webowy zarządzający kolejką graczy oraz front-end w przeglądarce. Użytkownicy grają zdalnie przez przeglądarkę na doombuds.com. Ruchy wykonywane klawiaturą wędrują przez internet do serwera, który przekazuje je do słuchawki, gdzie gra reaguje i odsyła kolejne klatki. To rozwiązanie rodem z epoki, gdy gracze łączyli się modemami do BBS-ów. DOOMBuds dowodzi, że nawet chip audio za kilka dolarów może obsłużyć legendarnego FPS-a, ale tylko gdy hardware pozostaje otwarty na modyfikacje. W erze zamkniętych ekosystemów urządzeń wearables taki projekt to manifest filozofii DIY i przypomnienie, że ograniczenia techniczne to zaproszenie do kreatywności, a nie wyrok.
Źródło: Doombuds.com, GitHub, Pine64, Tom’s Hardware
![DOOMBuds to port klasycznego FPS-a na słuchawkach PineBuds Pro. Działa przy 300 MHz i mniej niż 1 MB RAM [2]](https://www.europesays.com/pl/wp-content/uploads/2026/01/1769603168_843_28_doombuds_to_port_klasycznego_fps_a_na_sluchawkach_pinebuds_pro_dziala_przy_300_mhz_i_mniej_niz_1_.jpeg)
![DOOMBuds to port klasycznego FPS-a na słuchawkach PineBuds Pro. Działa przy 300 MHz i mniej niż 1 MB RAM [3]](https://www.europesays.com/pl/wp-content/uploads/2026/01/28_doombuds_to_port_klasycznego_fps_a_na_sluchawkach_pinebuds_pro_dziala_przy_300_mhz_i_mniej_niz_1_.png)