7 ポイント 投稿者 GN⁺ 2026-01-26 | 5件のコメント | WhatsAppで共有
  • 1993年の名作ゲーム DOOMワイヤレスイヤホン PineBuds Pro で動作するよう移植したプロジェクトで、Web経由でリモートプレイが可能
  • イヤホンとWebサーバーを接続する シリアルサーバー (serial server)Webサーバー静的Webページ、そして DOOMポート の4つの構成要素から成る
  • UART接続 により約2.4Mbpsの帯域幅を確保し、MJPEGストリーム で映像を送信して理論上最大27FPSを達成
  • CPUを100MHzから300MHzにオーバークロックし、JPEGエンコード の制約により実効性能は約18FPSを確保
  • RAM・FLASHの制約 を最適化と軽量化された Squashware WADファイル で克服し、オープンソースファームウェアベースのハードウェア実験の可能性を示す

プロジェクト概要

  • 1993年に発売された DOOMPineBuds Pro イヤホンで実行できるように移植
    • PineBuds Proは オープンソースファームウェア をサポートする唯一のワイヤレスイヤホンとして言及されている
    • Webサイトの訪問者はキューに登録してリモートでゲームをプレイできる
  • プロジェクトは4つの部分で構成
    • イヤホン上で動作するDOOMポート
    • イヤホンとWebサーバーを接続し、MJPEGストリームをTwitchに変換する シリアルサーバー
    • アセット提供、キュー管理、キー入力の転送、ストリーム表示を担当する Webサーバー
    • ブラウザ表示とサーバー通信を担当する 静的Webページ

ハードウェアと接続構成

  • イヤホンにはディスプレイがないため、Bluetooth または UART接点パッド でデータを送受信
    • Bluetoothは約1Mbpsと遅く、UART (2.4Mbps) の方が適している
  • DOOMのフレームバッファは320×200解像度、8ビットカラーで約 96KB
    • UART帯域幅基準では約 3FPS の転送が可能
    • これを改善するため MJPEGストリーム 方式を採用
  • JPEGエンコーダー として bitbank2/JPEGENC を使用
    • 平均JPEGフレームサイズは11〜13.5KB
    • 理論上の最大FPSは22〜27FPS水準

CPU性能調整

  • 標準ファームウェアのCPUクロックは100MHzだが、これを 300MHzに引き上げ、低電力モードを無効化
  • Cortex-M4F (300MHz) はDOOMの実行には十分だが、JPEGエンコード でボトルネックが発生
    • 実際のフレームレートは約 18FPS 水準

メモリ (RAM) 最適化

  • 標準で利用可能なRAMは 768KB、補助プロセッサを無効化すると 992KB を確保
  • DOOMは4MB RAMを要求するため、さまざまな最適化を実施
    • ルックアップテーブルの事前生成const変数のフラッシュ保存キャッシュシステムの無効化不要変数の削除 などでメモリを節約

フラッシュ (FLASH) 容量の問題

  • DOOM 1の基本 WADファイル は4.2MBで、イヤホンの4MB保存上限を超過
  • fragglet の軽量版 Squashware WAD (1.7MB) を使うことで問題を解決
    • すべてのアセットをフラッシュ内に収容可能

オープンソースとアクセシビリティ

  • プロジェクトコードは2つのGitHubリポジトリで公開
    • DOOMBuds: イヤホン向けDOOMポート
    • DOOMBUDS-JS: ブラウザとイヤホン間の相互作用をサポート
  • Webサイトはキュー方式で運営されており、5番目の順番から Twitchストリーム低遅延MJPEGストリーム に切り替わる

5件のコメント

 
cybecho 2026-01-27

「DOOMが動く」

 
pjh2568 2026-01-26

DOOMの達人たちは本当に…すごいですね

 
tsboard 2026-01-26

うわ、これはちょっと…やばすぎるwwwww

 
kimjoin2 2026-01-26

なんてこった

 
GN⁺ 2026-01-26
Hacker Newsの意見
  • どんな単純な機器でも DOOM が動くのを見るたびに、これがソフトウェアの勝利なのか、それともより安価な 専用ハードウェア を作れなかった経済的失敗なのか考えてしまう

    • PineBuds はそもそも オープンファームウェアプラットフォーム として設計されており、実験向けに強力な MCU を搭載している
      ANC Bluetooth イヤホンは単純な製品ではなく、ノイズキャンセリング は非常に複雑な演算を継続的に実行する必要がある
      高速な MCU は単なる無駄ではなく、低遅延 と効率的な電力管理という利点がある
      完璧な ASIC を作るより、汎用 MCU でアップデート可能な構造を持たせる方がはるかに現実的だ
      結局のところ、実績のある MCU を大量購入する方が、カスタムチップを作るよりずっと経済的だ
    • 別の見方をすれば、これは 規模の経済 によって高性能ハードウェアがむしろ最も安い選択肢になった 経済的成功 の事例でもある
    • 私はこれを 半導体製造の勝利 だと見ている
      カスタムチップを設計・生産するための人件費、テスト、教育、少量生産のコストの方がむしろ高い
      材料費よりも ビジネスプロセスのコスト がはるかに大きな割合を占めている
    • 市場経済の 大きな成功 を経済的失敗として解釈しようとする試みに驚く
      イヤホンで DOOM が動く世界なのに、これを否定的に見る理由はない
    • CPU がデュアルコア 300MHz ARM Cortex-M4F だなんて、DOOM 発売以降の ハードウェアのスケーリング は本当にすごいと思う
      過剰なスペックではあるが、そのすべてが耳の中に収まるというのが驚きだ
  • 私が DOOM を PineBuds Pro に移植した
    インターネット経由で接続すれば、自分のイヤホン上で DOOM をプレイできる
    詳細と GitHub リンクは自分のサイトにある

    • JPEG エンコーディングの 圧縮率 がどの程度なのか気になる
  • 毎回 DOOM ばかり移植されるのは少し残念だ
    昔は単純だけど 中毒性のあるゲーム が多かったのに、今のゲームは大きすぎて複雑すぎ、小さなプラットフォームに移すのが難しい
    業界はインディーを除けば方向を見失ったように思える
    昔の Master of Orion 1 のようなゲームは単純でも繰り返し楽しめた
    今のゲームは映像のように 相互作用が少なく、XP稼ぎ 中心なので興味が薄れる

    • DOOM がよく選ばれる理由は、オープンソース であり、要求リソースが適度で、エンジンが面白く、そして開発者が尊敬されているからだ
      すでに伝統のように続いている
    • 昔のゲームが小さかったのは技術的制約のためだった
      今ではほとんどのユーザーが容量や性能をあまり気にしない
      消費者が「ちゃんと動けばそれでいい」という態度を取るようになり、最適化の価値 が下がっている
      それでもインディーシーンには短くて スタイリッシュなゲーム が今でもたくさんある
      ただ、映画のように短いゲームは大きな印象を残しにくいため、あまり知られていないだけだ
    • 私も同感で、イヤホンで Freespace 2 を動かしてみたい
  • DOOM の移植一覧は Wikipedia のページ で見られる

  • PineBuds Pro にとって 素晴らしい宣伝効果 だと思う
    Fairbuds でもこういうことができるのだろうか
    それにしても、こんなに多くの機器で DOOM が動くのに、なぜまだ 386 では滑らかに動作 しないのだろう

  • John Carmack が DOOM 3 以降のインタビューで、エンジンが複雑になるにつれて すべてのコードを一人で書けなくなった と語っていたのを思い出す
    今の AI 時代 に彼がどう考えているのか気になる

    • 彼は現在 AGI の実現 に集中している
      個人的には、AI に対して前向きだと思う
      それと “Masters of Doom” は本当に良い本なのでおすすめだ
    • DOOM 開発当時にも、Carmack は 近似補間(Approximate Interpolation) のような形で AI 的アプローチを活用していた
  • PineBuds Pro を使ったことがある人がいるか気になる
    Pine64 IRC には関連チャンネルがなく、聞きづらかった

    • 正直に言うと、本来の用途では使ったことがない
      装着感や音質は分からないが、Pine64 の Discord チャンネル には Pinebuds 専用ルームがある
    • 発売以来ずっと使っているが、バッテリー持続時間 は短い — ANC をオンにすると最大 2 時間ほどだ
    • 昔は Pine64 が好きだったが、e-ink タブレットとスマホの問題 以降は信頼が薄れた
    • 私は満足して使っている
      わざと ANC なしのファームウェアを入れているが、Bluetooth イヤホン としては十分に役目を果たしている
  • 数年後には、イヤホンの RAM がもう少し増えれば ローカル Kubernetes クラスター も動かせそうだ

  • DOOM を使い捨て電子タバコのチップに移植した」という投稿を待っている 😄

    • ほとんどの電子タバコに入っている Puya PY32 MCU は 3KB RAM、24KB ROM なので、DOOM を動かすにはまったく足りない
      ムーアの法則が続くなら、約 10年後 には可能かもしれない
    • 関連動画は YouTube リンク で見られる
  • イヤホンに直接接続された 独立ビューアー もモバイルで動作する
    デモ動画 参照
    タッチ操作はなく、イントロのループだけが再生される