Dethrace は、1997 年のドライブ/騒乱ゲーム Carmageddon が舞台裏でどのように動作するかを学び、現代のシステムでネイティブに実行できるように再構築する試みです。
(更新通知を受け取るには、Discord または Twitter でフォローしてください!)
以前の内部ビルドの Watcom デバッグ シンボルは、Carmageddon Splat Pack 拡張 CD リリースでDETHRSC.SYM
という名前で発見されました。残念ながら、シンボルは既知のリリースされた実行可能ファイルと一致しませんでした。つまり、興味深いものではありましたが、ゲームをリバース エンジニアリングするためにすぐには使用できませんでした。
Watcom デバッガからは次のように見えました。すべてのメソッドの名前は存在していましたが、それらが指しているコードの場所はジャンクでした。
Carmageddon コミュニティのCrayzKirk がこれを採用し、DOS 実行可能ファイルの多くの関数とデータ構造をデバッグ シンボルと手動で照合するという骨の折れる作業を行いました。
私たちは、元のアセンブリ コードを関数ごとに同等の C コードに徐々に置き換えています。
いや、少なくとも私はそうは思わない。シンボル ダンプによる元のファイルはc:DETHRACE
に保存されており、シンボル ファイルの名前はDETHSRC.SYM
です。おそらく、8.3 のファイル名と互換性を持たせるために「a」を削除したのでしょうか?
Dethrace にはコンテンツは付属しません。元のゲームのデータにアクセスする必要があります。オリジナル CD をお持ちでない場合は、GoG.com から Carmageddon を購入できます。
dethrace
さまざまなフリーウェア デモもサポートしています。
Dethrace は SDL2 に依存しています。 SDL をインストールする最も簡単な方法は、お気に入りのパッケージ マネージャーを使用することです。
OSX:
brew install SDL2
Linux:
apt-get install libsdl2-dev
Dethrace を Carmageddon のインストール ディレクトリに指定します。
export DETHRACE_ROOT_DIR=/path/to/carmageddon
Dethrace は git サブモジュールを使用するため、初期クローンの後にそれらをプルする必要があります。
git clone https://github.com/dethrace-labs/dethrace
cd dethrace
git submodule update --init --recursive
Dethrace はビルド ファイルの生成に cmake を使用します。
ビルド ファイルを生成するには (通常は 1 回だけ必要です):
mkdir build
cd build
cmake ..
cmake がプラットフォーム用のビルド ファイルを生成したら、ビルドを実行します。例えば:
make
まず、Carmageddon ゲーム コンテンツのコピーが必要です。必要に応じて、zip ファイルを解凍します。
Dethrace は、最上位の Carmageddon フォルダーに配置されることを期待しています。元のCARMA.EXE
そこにあると、正しいフォルダーがあることがわかります。 Windows を使用している場合は、 SDL2.dll
も同じフォルダーに配置する必要があります。
Dethrace は GOG CD オーディオ規則をサポートしています。 Carmageddon フォルダー内にTrack02.ogg
、 Track03.ogg
などのファイルを含むMUSIC
フォルダーがある場合、Dethrace は元の CD オーディオ機能の代わりにそれらのファイルを使用します。
最初から発売まで
Dethrace はパブリック ドメインにリリースされます。 Dethrace によって提供されるドキュメントと機能は、Carmageddon の所有権によって提供される資産でのみ使用できます。
このリポジトリのソース コードは非営利目的でのみ使用できます。ソース コードを使用する場合、そのソース コードへのアクセスまたはその派生作品に対して他人に料金を請求することはできません。
Dethrace およびそのメンテナーは、SCi、Stainless Software、または THQ Nordic とはいかなる関係も承認もしていません。