Commodore 64 Ultimateで『Doom』が動く! 64MHz動作と16MB REUを駆使した『Doom C64U』が公開

Commodore 64 Ultimateで『Doom』が動く! 64MHz動作と16MB REUを駆使した『Doom C64U』が公開

Commodore 64のFPGA復刻機『Commodore 64 Ultimate』向けに、初代『Doom』の世界を再構築した『Doom C64U』v1.0.0が、2026年8月15日に公開されました。

本作は、id Softwareが開発したオリジナル版『Doom』のエンジンを移植したものではありません。Commodore 64 Ultimateのハードウェアに合わせて、一から開発された独自の3Dエンジンで『Doom』のE1M1を描画するプロジェクトです。

●Doom C64U公式サイト
https://hondani.com/doom

●GitHub
https://github.com/slesinger/doom

●v1.0.0リリースページ
https://github.com/slesinger/doom/releases/tag/v1.0.0

オリジナルの『Doom』エンジンは使用せずに一から開発

『Doom C64U』を開発したのは、Commodore 64のシーングループ「Hondani」です。本作では、オリジナル版『Doom』のプログラムコードは使用されていません。レンダリング、当たり判定、メモリー管理、サウンド再生といったシステムを、Commodore 64 Ultimate向けに一から作り直しています。

一方で、ステージには『Doom』のWADファイルから取得したE1M1のマップ構造を使用。単にE1M1風のステージを作ったものではなく、オリジナルのBSPツリーや237個のサブセクターを利用して、同じレイアウトを描画しています。

そのため、正確には『Doom』そのものの移植ではなく、実際のマップデータを独自のエンジンで動かす「ハードウェアに合わせた再解釈」と位置付けられています。

64MHz動作の6510互換CPUと16MB REUを活用

Commodore 64 Ultimateは、オリジナルのCommodore 64をFPGAで再現した現代のハードウェアです。

CPUには6510互換コアを採用しており、最大64MHzで動作します。約1MHzで動いていたオリジナルのCommodore 64よりも高速ですが、CPUから直接扱えるメインRAMは64KBのままです。

そこで『Doom C64U』では、Commodore 64 Ultimateに搭載されている16MBのREU(RAM Expansion Unit)を、ステージデータやグラフィックを保存するストレージとして活用しています。

BSPツリー、壁の情報、テクスチャ、スプライト、音楽などはREU側に格納。プレイヤーがステージ内を移動すると、現在必要なサブセクターのデータだけをDMAでメインRAMへ転送します。

メインRAM上に用意されている160×176ドットの中間フレームバッファだけでも約28KBを使用するため、すべてのデータを64KBへ収めることはできません。REUから必要なデータだけを順番に送り込むことで、このメモリー制限を回避しています。

実機上で16.6fpsの安定動作を実現

『Doom C64U』では、浮動小数点演算を使用せず、投影や距離、ライティングの計算を固定小数点演算で処理しています。

三角関数や除算についても、その場で計算するのではなく、あらかじめ用意したテーブルから値を取得。さらに、画面に映らない壁やエリアを描画前に除外することで、処理負荷を抑えています。

描画された中間画像は、ベイヤーディザリングを使用してVIC-IIのマルチカラービットマップ形式へ変換されます。これにより、Commodore 64特有の色数制限の中で、壁の明暗や距離感を表現しています。

現在のバージョンは、実際のCommodore 64 Ultimate上で16.6fpsの固定フレームレートを実現。1フレーム当たり約59.85ミリ秒の処理時間が用意されており、実測では描画処理を約46~48ミリ秒で完了しているとのことです。

初期段階では、テクスチャやスプライトを省いた状態で約25fpsを実現していました。しかし、開発チームは一時的に高いフレームレートを出すよりも、テクスチャ、ドア、スプライトなどを追加したうえで、安定したフレームレートを維持することを優先しています。

現時点ではE1M1を探索できる技術デモ

v1.0.0では、E1M1のステージ内をキーボード、ジョイスティック、またはマウスで移動できます。

テクスチャ付きの壁、開閉するドア、動くセクター、敵やオブジェクトのスプライト、画面手前の武器、HUD、歩行時の揺れ、ジャンプなども実装済みです。ゲーム中には、REUからストリーミングされるSID音楽も再生されます。

ただし、現時点では敵のAIや攻撃、武器によるダメージ、飛び道具などの戦闘システムは実装されていません。HUDには体力、アーマー、弾薬が表示されますが、実際の戦闘状態とはまだ連動していません。

そのため、完成した『Doom』を最初から最後まで遊べるものではなく、現在はE1M1を歩き回れる3Dエンジン兼技術デモという段階です。今後は敵や戦闘システムの追加、E1M1以外のマップへの対応、自由に配布できるコミュニティ製マップの読み込みなどが検討されています。

オリジナルのCommodore 64では動作しないので注意

『Doom C64U』が対象としているのは、2025年以降に登場した公式の『Commodore 64 Ultimate』です。

約1MHzで動作するオリジナルのCommodore 64や、旧来の「1541 Ultimate」カートリッジで動かすことはできません。PC上ではVICEエミュレーターを使用して開発やテストを行うこともできますが、公称の16.6fpsという数値は、実際のCommodore 64 Ultimateで計測されたものです。

GitHubのリリースページでは、実行に必要なファイルをまとめたビルド済みパッケージが公開されています。ソースコードからアセットを生成する場合は、無料で配布されているシェアウェア版、または正規に所有している製品版のDOOM1.WADが必要です。

オリジナルのCommodore 64では実現できなかった64MHz動作と16MB REUを利用しながらも、64KBのメインRAMやVIC-IIの制限と向き合って作られた『Doom C64U』。現代のFPGA復刻機が、単に昔のソフトを再現するだけではなく、当時のアーキテクチャを拡張した新たな開発環境にもなり得ることを示す、興味深いプロジェクトといえそうです。

ABOUT US
アバター画像
retrogamer