Dethrace é uma tentativa de aprender como o jogo de direção/caos Carmageddon de 1997 funciona nos bastidores e reconstruí-lo para rodar nativamente em sistemas modernos.
(Siga-nos no Discord ou Twitter para ser notificado sobre atualizações!)
Os símbolos de depuração Watcom para uma compilação interna anterior foram descobertos com o nome DETHRSC.SYM
no lançamento do CD de expansão do Carmageddon Splat Pack. Infelizmente, os símbolos não correspondiam a nenhum executável lançado conhecido, o que significa que eram interessantes, mas não podiam ser usados imediatamente para fazer engenharia reversa do jogo.
Isto é o que parecia no depurador Watcom - os nomes de todos os métodos estavam presentes, mas a localização do código para a qual eles apontavam era lixo:
CrayzKirk da comunidade Carmageddon o pegou e fez um trabalho meticuloso combinando manualmente muitas funções e estruturas de dados no executável DOS com os símbolos de depuração.
Estamos substituindo lentamente o código assembly original por código C equivalente, função por função.
Não, bem, pelo menos acho que não. Os arquivos originais de acordo com o despejo de símbolos foram armazenados em c:DETHRACE
, e o arquivo de símbolos é denominado DETHSRC.SYM
. Talvez eles tenham removido o "a" para ser compatível com nomes de arquivos 8.3?
Dethrace não envia nenhum conteúdo. Você precisará de acesso aos dados do jogo original. Se você não tiver um CD original, poderá comprar Carmageddon em GoG.com.
dethrace
também oferece suporte a várias demos de freeware:
Dethrace depende do SDL2. A maneira mais fácil de instalar o SDL é através do seu gerenciador de pacotes favorito.
OSX:
brew install SDL2
Linux:
apt-get install libsdl2-dev
Aponte Dethrace no diretório de instalação do Carmageddon:
export DETHRACE_ROOT_DIR=/path/to/carmageddon
Dethrace usa submódulos git, então devemos extraí-los após o clone inicial:
git clone https://github.com/dethrace-labs/dethrace
cd dethrace
git submodule update --init --recursive
Dethrace usa cmake para gerar arquivos de construção.
Para gerar os arquivos de compilação (geralmente necessários apenas uma vez):
mkdir build
cd build
cmake ..
Depois que o cmake gerar os arquivos de compilação para sua plataforma, execute o build. Por exemplo:
make
Em primeiro lugar, você precisa de uma cópia do conteúdo do jogo Carmageddon. Extraia o arquivo zip, se necessário.
Dethrace espera ser colocado na pasta Carmageddon de nível superior. Você sabe que tem a pasta certa quando vê o CARMA.EXE
original lá. Se você estiver no Windows, também deverá colocar SDL2.dll
na mesma pasta.
Dethrace suporta a convenção de áudio de CD GOG. Se houver uma pasta MUSIC
na pasta Carmageddon contendo arquivos Track02.ogg
, Track03.ogg
etc, então o Dethrace usará esses arquivos no lugar das funções originais de áudio do CD.
Do início até o lançamento
Dethrace é liberado para domínio público. A documentação e função fornecidas pela Dethrace só podem ser utilizadas com ativos fornecidos pela propriedade do Carmageddon.
O código-fonte neste repositório é apenas para uso não comercial. Se você usar o código-fonte, não poderá cobrar de terceiros pelo acesso a ele ou a qualquer trabalho derivado dele.
Dethrace e qualquer um de seus mantenedores não são de forma alguma associados ou endossados por SCi, Stainless Software ou THQ Nordic.