Dethrace es un intento de aprender cómo funciona entre bastidores el juego de conducción y caos Carmageddon de 1997 y reconstruirlo para que se ejecute de forma nativa en sistemas modernos.
(¡Síguenos en Discord o Twitter para recibir notificaciones sobre las actualizaciones!)
Se descubrieron símbolos de depuración de Watcom para una compilación interna anterior denominada DETHRSC.SYM
en la versión del CD de expansión Carmageddon Splat Pack. Desafortunadamente, los símbolos no coincidían con ningún ejecutable conocido, lo que significa que eran interesantes pero no utilizables de inmediato para realizar ingeniería inversa en el juego.
Esto es lo que parecía desde el depurador de Watcom: los nombres de todos los métodos estaban presentes pero la ubicación del código a la que apuntaban era basura:
CrayzKirk de la comunidad Carmageddon lo tomó e hizo un trabajo minucioso haciendo coincidir manualmente muchas funciones y estructuras de datos en el ejecutable de DOS con los símbolos de depuración.
Estamos reemplazando lentamente el código ensamblador original con código C equivalente, función por función.
No, bueno, al menos yo no lo creo. Los archivos originales según el volcado de símbolos se almacenaron en c:DETHRACE
y el archivo de símbolos se llama DETHSRC.SYM
. ¿Quizás eliminaron la "a" para que fuera compatible con los nombres de archivos 8.3?
Dethrace no se envía con ningún contenido. Necesitarás acceso a los datos del juego original. Si no tiene un CD original, puede comprar Carmageddon en GoG.com.
dethrace
también admite varias demostraciones de software gratuito:
Dethrace depende de SDL2. La forma más sencilla de instalar SDL es a través de su administrador de paquetes favorito.
OSX:
brew install SDL2
Linux:
apt-get install libsdl2-dev
Apunte Dethrace al directorio de instalación de Carmageddon:
export DETHRACE_ROOT_DIR=/path/to/carmageddon
Dethrace usa submódulos de git, por lo que debemos extraerlos después del clon inicial:
git clone https://github.com/dethrace-labs/dethrace
cd dethrace
git submodule update --init --recursive
Dethrace usa cmake para generar archivos de compilación.
Para generar los archivos de compilación (generalmente solo se requiere una vez):
mkdir build
cd build
cmake ..
Una vez que cmake haya generado los archivos de compilación para su plataforma, ejecute la compilación. Por ejemplo:
make
En primer lugar, necesitas una copia del contenido del juego Carmageddon. Extraiga el archivo zip si es necesario.
Dethrace espera ser colocado en la carpeta Carmageddon de nivel superior. Sabrás que tienes la carpeta correcta cuando veas el CARMA.EXE
original allí. Si está en Windows, también debe colocar SDL2.dll
en la misma carpeta.
Dethrace es compatible con la convención de audio de CD de GOG. Si hay una carpeta MUSIC
en la carpeta Carmageddon que contiene archivos Track02.ogg
, Track03.ogg
, etc., entonces Dethrace usará esos archivos en lugar de las funciones de audio del CD original.
Desde el principio hasta el lanzamiento.
Dethrace se libera al dominio público. La documentación y la función proporcionadas por Dethrace solo pueden utilizarse con activos proporcionados por la propiedad de Carmageddon.
El código fuente de este repositorio es únicamente para uso no comercial. Si utiliza el código fuente, no podrá cobrar a otros por el acceso a él ni a ningún trabajo derivado del mismo.
Dethrace y cualquiera de sus mantenedores no están asociados ni respaldados de ninguna manera por SCi, Stainless Software o THQ Nordic.