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 没有任何关联或认可。