- Duke Nukem: Zero Hour のNintendo 64 ROMを完全にディコンパイルしたオープンソースプロジェクトを紹介します
- このリポジトリは、元ゲームソフトウェアのすべてのソースコードを復元する作業を100%達成しました
- 利用者はゲームのROMを自分で所有する必要があり、米国版またはフランス版のオリジナルROMを使ってフルビルドとテストを行うことができます
- 既存のデコンパイルプロジェクトと比較すると、完全な機能互換性とデバッグツールのサポートで技術的な優位性を持ちます
- このプロジェクトはゲームエンジン研究、改変、移植、エンジン分析にとって非常に価値の高い資料です
プロジェクトの意義と競争力
- Duke Nukem: Zero Hour はNintendo 64プラットフォームで独占発売された有名アクションゲームです
- このオープンソースプロジェクトは、該当ゲームのROM全体をC、Pythonなどで完全にディコンパイルし、ソースコードレベルで再構成しています
- 他のN64デコンパイルプロジェクトと異なり、完全な互換性を確保し、通常のROMビルドと実行、ソースコードベースのデバッグ、マルチバージョンサポートまで提供します
- ゲームエンジン構造と1990年代のコンソールゲーム開発ノウハウを研究する上で、優れた資料的価値があります
- 複数の自動解析・デコンパイルツール(asm-differ、mips2c、splat、decomp-permuterなど)がプロジェクトに統合され、開発者の効率が最大化されます
主な機能と構成
全体構成
- プロジェクトはマルチ言語で構成され、C(95%以上)、Python、Roff、C++、Makefile、Shellなどで各パートが分かれています
- 主要ディレクトリ:
- .github/workflows: CIおよび自動化の設定
- include、libs、src: ゲームソースとライブラリ、ヘッダー管理
- tools: 解析、抽出、変換ツール
- versions: US/FRなど、複数のゲーム版を同時にサポートする構成
- 約370件近くコミットされ、活発にメンテナンスされています
ビルドと使用方法の概要
- Ubuntu 20.04ベースの環境およびDockerサポート
- ROM抽出、ビット単位比較、非一致(NON_MATCHING)モードのサポート
- フランス語版と米国版ROMの両方をサポートし、ユーザーの要件に応じてオプションを指定できます
- Docker環境およびMutagen Extensionを活用し、さまざまなOS(WIN/Mac/Linux)での互換性を提供
デバッグと開発ツール
- gdbとmupen64plusベースのソースコードレベルデバッグをサポート(現在はWindows優先)
- Visual Studio CodeおよびNative Debug Extensionとの連携をサポート
- 主要な自動化・分析ツール:
- asm-differ: アセンブリレベルのソース/ターゲット比較
- decomp-permuter: コード再調整および自動スコアリング
- mips2c: MIPSアセンブリからCへのコード変換
- splat: ROM構造解析ツール
活用方法
- ゲームリバースエンジニアリング、移植、エンジン分析、クラシックゲーム改修プロジェクトへのソース活用
- 歴史的保存および教育研究目的にも非常に適しています
- 複数のプラットフォームとバージョンの保守・アップデートが活発に進められています
結論
- このオープンソースプロジェクトは1990年代のクラシックコンソールゲームソフトウェアの完全なソース公開を実現した、珍しい事例です
- ゲームおよびコンソールのリバースエンジニアリング研究者、若手開発者、ゲーム移植およびファンゲーム制作の制作者すべてにとって貴重な資源です
1件のコメント
Hacker Newsのコメント