Dethrace est une tentative d'apprendre comment le jeu de conduite et de chaos Carmageddon de 1997 fonctionne dans les coulisses et de le reconstruire pour qu'il fonctionne de manière native sur les systèmes modernes.
(Suivez-nous sur Discord ou Twitter pour être informé des mises à jour !)
Des symboles de débogage Watcom pour une version interne antérieure ont été découverts nommés DETHRSC.SYM
sur la version CD d'extension de Carmageddon Splat Pack. Malheureusement, les symboles ne correspondaient à aucun exécutable connu, ce qui signifie qu'ils étaient intéressants mais pas immédiatement utilisables pour l'ingénierie inverse du jeu.
Voici à quoi cela ressemblait d'après le débogueur Watcom : les noms de toutes les méthodes étaient présents mais l'emplacement du code vers lequel elles pointaient était indésirable :
CrayzKirk de la communauté Carmageddon l'a récupéré et a effectué un travail minutieux pour faire correspondre manuellement de nombreuses fonctions et structures de données de l'exécutable DOS aux symboles de débogage.
Nous remplaçons lentement le code assembleur d'origine par du code C équivalent, fonction par fonction.
Non, du moins je ne le pense pas. Les fichiers originaux selon le vidage de symboles ont été stockés dans c:DETHRACE
et le fichier de symboles s'appelle DETHSRC.SYM
. Peut-être qu'ils ont supprimé le « a » pour être compatible avec les noms de fichiers 8.3 ?
Dethrace n'est livré avec aucun contenu. Vous aurez besoin d'accéder aux données du jeu original. Si vous n'avez pas de CD original, vous pouvez acheter Carmageddon sur GoG.com.
dethrace
prend également en charge les différentes démos de logiciels gratuits :
Dethrace a une dépendance à SDL2. Le moyen le plus simple d'installer SDL consiste à utiliser votre gestionnaire de packages préféré.
OS X :
brew install SDL2
Linux :
apt-get install libsdl2-dev
Pointez Dethrace vers le répertoire d'installation de Carmageddon :
export DETHRACE_ROOT_DIR=/path/to/carmageddon
Dethrace utilise des sous-modules git, nous devons donc les extraire après le clone initial :
git clone https://github.com/dethrace-labs/dethrace
cd dethrace
git submodule update --init --recursive
Dethrace utilise cmake pour générer des fichiers de build.
Pour générer les fichiers de build (généralement requis une seule fois) :
mkdir build
cd build
cmake ..
Une fois que cmake a généré les fichiers de build pour votre plateforme, exécutez le build. Par exemple:
make
Tout d'abord, vous avez besoin d'une copie du contenu du jeu Carmageddon. Extrayez le fichier zip si nécessaire.
Dethrace s'attend à être placé dans le dossier Carmageddon de niveau supérieur. Vous savez que vous avez le bon dossier lorsque vous y voyez le CARMA.EXE
original. Si vous êtes sous Windows, vous devez également placer SDL2.dll
dans le même dossier.
Dethrace prend en charge la convention audio des CD GOG. S'il existe un dossier MUSIC
dans le dossier Carmageddon contenant les fichiers Track02.ogg
, Track03.ogg
etc, alors Dethrace utilisera ces fichiers à la place des fonctions audio du CD d'origine.
Du début jusqu'à la sortie
Dethrace est publié dans le domaine public. La documentation et les fonctions fournies par Dethrace ne peuvent être utilisées qu'avec des actifs fournis par Carmageddon.
Le code source de ce référentiel est destiné à un usage non commercial uniquement. Si vous utilisez le code source, vous ne pouvez pas facturer à d'autres l'accès à celui-ci ou à toute œuvre dérivée de celui-ci.
Dethrace et l'un de ses responsables ne sont en aucun cas associés ou approuvés par SCi, Stainless Software ou THQ Nordic.