Dethrace — это попытка узнать, как за кулисами работает игра Carmageddon, посвященная вождению и хаосу 1997 года, и переделать ее для нормальной работы на современных системах.
(Подпишитесь на нас в Discord или Twitter, чтобы получать уведомления об обновлениях!)
Символы отладки Watcom для более ранней внутренней сборки были обнаружены под названием DETHRSC.SYM
на компакт-диске расширения Carmageddon Splat Pack. К сожалению, символы не соответствовали ни одному известному выпущенному исполняемому файлу, а это означало, что они были интересны, но не могли быть немедленно использованы для реверс-инжиниринга игры.
Вот как это выглядело в отладчике Watcom — имена всех методов присутствовали, но место кода, на которое они указывали, было мусорным:
CrayzKirk из сообщества Carmageddon подхватил его и проделал большую кропотливую работу, вручную сопоставляя многие функции и структуры данных в исполняемом файле DOS с символами отладки.
Мы постепенно заменяем исходный ассемблерный код эквивалентным кодом C, функция за функцией.
Нет, ну, я так не думаю, по крайней мере. Исходные файлы согласно дампу символов хранились в c:DETHRACE
, а файл символов называется DETHSRC.SYM
. Может быть, они удалили букву «а», чтобы имена файлов были совместимы с версией 8.3?
Dethrace не поставляется с каким-либо контентом. Вам понадобится доступ к данным оригинальной игры. Если у вас нет оригинального компакт-диска, вы можете купить Carmageddon на GoG.com.
dethrace
также поддерживает различные бесплатные демоверсии:
Dethrace зависит от SDL2. Самый простой способ установить SDL — через ваш любимый менеджер пакетов.
ОС:
brew install SDL2
Линукс:
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 для компакт-дисков. Если в папке Carmageddon есть папка MUSIC
, содержащая файлы Track02.ogg
, Track03.ogg
и т. д., то Dethrace будет использовать эти файлы вместо исходных аудиофункций компакт-диска.
От начала до релиза
Dethrace становится общественным достоянием. Документация и функции, предоставляемые Dethrace, могут использоваться только с активами, предоставленными Carmageddon.
Исходный код в этом репозитории предназначен только для некоммерческого использования. Если вы используете исходный код, вы не имеете права взимать плату с других лиц за доступ к нему или любой его производной работе.
Dethrace и любой из ее сопровождающих никоим образом не связаны и не поддерживаются SCi, Sustainable Software или THQ Nordic.