世界を動かす技術を、日本語で。

「Doom」がイヤフォンに移植されました

2026年1月25日原文(doombuds.com)

概要

  • Pinebuds ProでDOOMを動作させた技術デモ
  • インターネット経由でリモートプレイが可能な仕組み
  • ハードウェア制約を工夫で突破した解説
  • ソースコード・技術情報も公開
  • プレイ体験やシステム構成の詳細説明

インターネット接続イヤホンでDOOMをプレイ!

  • Pinebuds Pro で1993年の名作 DOOM を動作させたプロジェクト
  • WASD で移動、 矢印キー で視点操作、 スペース で射撃、 Shift でダッシュ
  • Eキー でドアやオブジェクトとインタラクト、 数字キー で武器切り替え
  • Escape/Enter でメニュー、 Tab でマップ表示
  • 死亡時は Eキー でリスポーン
  • プレイヤーは キュー制、自分の順番・待機人数・待ち時間が表示

そもそもこれは何なのか?

  • 1993年の DOOMイヤホン で動かし、さらに インターネット経由で遠隔操作 できるデモ
  • Pinebuds Pro 専用、 オープンソースファームウェア 搭載イヤホンのみ対応
  • 他のイヤホンでは動作不可

ソースコードの公開と自分での実行

  • DOOMBuds リポジトリ:DOOMをイヤホン上で動かす移植版
  • DOOMBUDS-JS リポジトリ:ブラウザからイヤホンとやりとりするための仕組み
  • 誰でもコード参照・自分のPinebudsで実行可能

Twitch配信について

  • Twitch配信帯域コスト削減のための最適化
  • キューで 5番目 になると 低遅延MJPEGストリーム に自動切り替え

システム構成の概要

  • プロジェクトは 4つのパート で構成
    • DOOM移植版 (イヤホン上で動作)
    • シリアルサーバ (イヤホンとWebサーバの橋渡し、MJPEG→Twitch変換も担当)
    • Webサーバ (アセット配信、キュー管理、キープレス転送、MJPEG表示)
    • 静的Webページ (ブラウザ表示/サーバ通信制御)

ハードウェア制約への対処

  • ディスプレイ非搭載 のため、データ転送は Bluetooth または UART接点 経由
  • Bluetooth は最大1Mbpsと遅く、 UART (2.4Mbps)が最適
  • DOOMのフレームバッファ は96KB(320×200×8bit)
  • UART帯域 では3FPS程度しか出せず、 MJPEGストリーム で圧縮送信
  • JPEGフレーム は高品質で約13.5KB、平均11KB程度
  • 理論最大FPS
    • 楽観値:27.3FPS
    • 保守値:22.2FPS

CPUとRAMの工夫

  • CPUクロック を100MHz→300MHzへ上昇、低電力モード無効化
  • Cortex-M4F (300MHz)はDOOM動作に十分、JPEGエンコードがボトルネック
  • 最大18FPS程度が限界
  • RAM は標準768KB、コプロセッサ無効化で992KB
  • DOOMは4MB必要 だが、各種最適化で削減
    • ルックアップテーブル事前生成、不変変数のconst化、フラッシュから読み込み、キャッシュ無効化、不要変数削除

フラッシュメモリの工夫

  • DOOM 1シェアウェアWAD は4.2MB、イヤホンの容量は4MB
  • fragglet 氏作成の Squashware WAD (1.7MB)を利用
  • これにより全データがフラッシュに収まる

まとめ

  • Pinebuds Pro を使った超小型デバイスでの DOOM移植リモートプレイ
  • ハードウェア制約を 圧縮・最適化・OSS活用 で突破
  • ソースコード・技術情報 も公開され、DIYも可能
  • 技術詳細や今後の解説記事・動画も予定

Hackerたちの意見

こんにちは、DOOMをPinebuds Proイヤフォンに移植しました!インターネット経由でアクセスできるので、キューに参加してPCから私のイヤフォンでDOOMをプレイできますよ!詳しい情報やGitHubリポジトリへのリンクはサイトにあります。

PineBuds Proってどうなの?持ってる人いる?Pine64のIRCネットワークにはPineBudsの話をするチャンネルがないから、聞く機会がなかったんだよね。

正直、ちゃんとした目的で使ったことはないんだ。快適さや音質がどんな感じか全然わからない。Pine64のDiscordにはPinebudsのチャンネルがあるから、そこで質問してみてね :)

今朝も使ってたよ。発売されてからずっと使ってる。素晴らしいデバイスだけど、バッテリーはかなり限られてて、ANCオンだと最大で約2時間かな。

私も気になる!以前はPine64の大ファンだったけど、e-inkタブレットや電話のトラブルでちょっと気持ちが冷めちゃった。

Doomの移植リスト: https://en.wikipedia.org/wiki/List_of_Doom_ports

使い捨てVapeチップに移植されたDOOMの投稿を待ってるよ :-D

https://www.youtube.com/watch?v=rVsvtEj9iqE

大体の電子タバコに使われてるPuya PY32シリーズのMCUは、RAMが3KB、ROMが24KBなんだけど、Doomを動かすには最低でも4MBのRAMが必要なんだよね。モーアの法則が使い捨て電子タバコの計算能力にも当てはまるとしたら、10年後にはその投稿が見られるかもね :)

なんか、Doomを動かせるくらいの一般的なハードウェアを搭載した、いわゆる「雑用デバイス」を見るたびに、これはソフトウェアの勝利なのか、それともラジオで音声を送るための安価な専用ハードウェアを作れなかった経済的失敗なのか、考えちゃうよね。

それとも、第三の選択肢として、スケールメリットのおかげで、過剰な性能だけど多くのアプリケーションにとって最も安価な選択肢になってるってことかな。

でも、もうすでに作るのはすごく安いよね。少ないお金で、超小型の形状に大量の処理能力を詰め込むことができるし(消費者のマージンとかは無視して)。ANCを搭載したイヤフォンで、いろんなオーディオ規格に対応して、低バッテリー待機もできて、干渉にもある程度強い。数メートルの距離で送受信できるのは、価格を考えたらすごいことだよね。33年前のゲームを動かせるだけの処理能力があるっていうのも、技術の進歩を感じるよね。今のスマホ一台の計算能力は、1980年の全世界の計算能力を合わせたよりも多いんだから。

Hacker Newsで議論の続きを見る