Dethrace 試圖了解 1997 年的駕駛/混亂遊戲《Carmageddon》的幕後工作原理,並將其重建為在現代系統上本地運行。
(在 Discord 或 Twitter 上關注我們以獲得更新通知!)
在 Carmageddon Splat Pack 擴充 CD 版本中發現了早期內部版本的 Watcom 除錯符號,名為DETHRSC.SYM
。不幸的是,這些符號與任何已知發布的可執行檔都不匹配,這意味著它們很有趣,但不能立即用於對遊戲進行逆向工程。
這是 Watcom 調試器的樣子 - 所有方法的名稱都存在,但它們指向的程式碼位置是垃圾:
來自 Carmageddon 社群的CrayzKirk拿起了它,並做了很多艱苦的工作,手動將 DOS 可執行檔中的許多函數和資料結構與偵錯符號進行匹配。
我們正在慢慢地用等效的 C 程式碼逐個函數取代原來的彙編程式碼。
不,至少我不這麼認為。根據符號轉儲的原始檔案儲存在c:DETHRACE
中,符號檔案名為DETHSRC.SYM
。也許他們刪除了“a”以與 8.3 檔案名稱相容?
Dethrace 不附帶任何內容。您需要存取原始遊戲的資料。如果您沒有原始 CD,則可以從 GoG.com 購買 Carmageddon。
dethrace
也支援各種免費軟體示範:
Dethrace 依賴 SDL2。安裝 SDL 最簡單的方法是透過您最喜歡的套件管理器。
作業系統:
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 產生建置檔。
產生建置檔案(通常只需要一次):
mkdir build
cd build
cmake ..
cmake 為您的平台產生建置檔案後,執行建置。例如:
make
首先,您需要一份 Carmageddon 遊戲內容的副本。如有必要,請提取 zip 檔案。
Dethrace 希望被放入頂級 Carmageddon 資料夾中。當您看到原始的CARMA.EXE
時,您就知道您擁有正確的資料夾。如果您使用的是 Windows,則也必須將SDL2.dll
放在同一資料夾中。
Dethrace 支援 GOG CD 音訊約定。如果 Carmageddon 資料夾中有一個MUSIC
資料夾,其中包含檔案Track02.ogg
、 Track03.ogg
等,那麼 Dethrace 就會使用這些檔案來取代原始 CD 音訊功能。
從開始到發布
Dethrace 已發佈到公共領域。 Dethrace 提供的文件和功能只能與 Carmageddon 所有權提供的資產一起使用。
此儲存庫中的原始程式碼僅供非商業用途。如果您使用原始程式碼,則不得向他人收取存取原始程式碼或其任何衍生作品的費用。
Dethrace 及其任何維護者與 SCi、Stainless Software 或 THQ Nordic 沒有任何關聯或認可。