Dethrace ist ein Versuch, herauszufinden, wie das Fahr- und Chaosspiel Carmageddon aus dem Jahr 1997 hinter den Kulissen funktioniert, und es so umzubauen, dass es nativ auf modernen Systemen läuft.
(Folgen Sie uns auf Discord oder Twitter, um über Updates benachrichtigt zu werden!)
Watcom-Debugsymbole für einen früheren internen Build mit dem Namen DETHRSC.SYM
wurden auf der Carmageddon Splat Pack-Erweiterungs-CD-Veröffentlichung entdeckt. Die Symbole stimmten leider mit keiner bekannten veröffentlichten ausführbaren Datei überein, was bedeutete, dass sie interessant, aber nicht sofort für die Rückentwicklung des Spiels verwendbar waren.
So sah es im Watcom-Debugger aus – die Namen aller Methoden waren vorhanden, aber der Codespeicherort, auf den sie zeigten, war Müll:
CrayzKirk aus der Carmageddon-Community hat es aufgegriffen und viel mühsame Arbeit geleistet, um viele Funktionen und Datenstrukturen in der DOS-Ausführungsdatei manuell mit den Debugging-Symbolen abzugleichen.
Wir ersetzen langsam den ursprünglichen Assemblercode Funktion für Funktion durch den entsprechenden C-Code.
Nein, das glaube ich zumindest nicht. Die Originaldateien gemäß dem Symbol-Dump wurden in c:DETHRACE
gespeichert und die Symboldatei heißt DETHSRC.SYM
. Vielleicht haben sie das „a“ entfernt, um mit 8.3-Dateinamen kompatibel zu sein?
Dethrace liefert keine Inhalte aus. Sie benötigen Zugriff auf die Daten des Originalspiels. Wenn Sie keine Original-CD haben, können Sie Carmageddon bei GoG.com kaufen.
dethrace
unterstützt auch die verschiedenen Freeware-Demos:
Dethrace ist von SDL2 abhängig. Der einfachste Weg, SDL zu installieren, ist über Ihren bevorzugten Paketmanager.
OSX:
brew install SDL2
Linux:
apt-get install libsdl2-dev
Zeigen Sie Dethrace auf das Carmageddon-Installationsverzeichnis:
export DETHRACE_ROOT_DIR=/path/to/carmageddon
Dethrace verwendet Git-Submodule, daher müssen wir sie nach dem ersten Klon abrufen:
git clone https://github.com/dethrace-labs/dethrace
cd dethrace
git submodule update --init --recursive
Dethrace verwendet cmake zum Generieren von Build-Dateien.
So generieren Sie die Build-Dateien (im Allgemeinen nur einmal erforderlich):
mkdir build
cd build
cmake ..
Sobald cmake die Build-Dateien für Ihre Plattform generiert hat, führen Sie den Build aus. Zum Beispiel:
make
Zunächst benötigen Sie eine Kopie des Carmageddon-Spielinhalts. Extrahieren Sie ggf. die ZIP-Datei.
Dethrace wird voraussichtlich im Carmageddon-Ordner der obersten Ebene abgelegt. Sie wissen, dass Sie den richtigen Ordner haben, wenn Sie dort die ursprüngliche CARMA.EXE
sehen. Wenn Sie Windows verwenden, müssen Sie auch SDL2.dll
im selben Ordner ablegen.
Dethrace unterstützt die GOG-CD-Audio-Konvention. Wenn sich im Carmageddon-Ordner ein MUSIC
Ordner befindet, der die Dateien Track02.ogg
, Track03.ogg
usw. enthält, verwendet Dethrace diese Dateien anstelle der ursprünglichen CD-Audiofunktionen.
Von Anfang bis zur Veröffentlichung
Dethrace wird als Public Domain freigegeben. Die von Dethrace bereitgestellte Dokumentation und Funktion darf nur mit Vermögenswerten genutzt werden, die im Eigentum von Carmageddon stehen.
Der Quellcode in diesem Repository ist nur für die nichtkommerzielle Nutzung bestimmt. Wenn Sie den Quellcode verwenden, dürfen Sie anderen keine Gebühren für den Zugriff darauf oder abgeleitete Werke davon berechnen.
Dethrace und seine Betreuer stehen in keiner Weise mit SCi, Stainless Software oder THQ Nordic in Verbindung oder werden von diesen unterstützt.