Esta página também está disponível em inglês.
Sonic Heroes Decomp

Contribuir

Você não precisa de experiência com decompilação, só de paciência e disposição para ler assembly de PowerPC. A maioria começa por uma função pequena e aprende o resto no caminho.

Como o trabalho acontece

1. Diga no que vai mexer

Avise no canal #decomp do Discord antes de começar, para duas pessoas não passarem o fim de semana na mesma função.

2. Abra no objdiff

O seu código compilado de um lado, o original do outro. O trabalho é deixá-los idênticos.

3. Escreva o código na linguagem original

C ou C++ que o compilador CodeWarrior de 2003 transforme exatamente naquelas instruções, não código que só se comporta igual.

4. Abra um pull request

Quando corresponder, abra um pull request. O CI recompila o jogo inteiro e confere todos os hashes.

Compile você mesmo

Você fornece o jogo; as ferramentas e a configuração estão no repositório. É preciso ter Python e ninja no PATH.

# 1. clone
git clone https://github.com/Jovinull/sonicheroes.git
cd sonicheroes

# 2. ative o hook de segurança (recusa commits com dados do jogo)
git config core.hooksPath .githooks

# 3. coloque a SUA cópia do jogo em orig/G9SE8P/ e então
python configure.py
ninja

Guia completo (em inglês): docs/getting_started.md · regras: CONTRIBUTING.md e LEGAL.md · dúvidas de iniciante: #decomp-help no Discord.

objdiff showing a fully matching object
objdiff depois de uma correspondência: cada instrução bate com a original.