Fórum Unificado de Romhacking e Tradução

Romhacking e Tradução de Jogos => Dúvidas e Ajuda => Tópico iniciado por: Doctor Mak online Setembro 15, 2017, 18:56:29 PM

Título: Como aplicar dois patches na mesma ROM de NDS?
Enviado por: Doctor Mak online Setembro 15, 2017, 18:56:29 PM
Sabem como fazer essa manha? O problema ta sendo no Zelda Phantom Hourglass.
:raiva2:

No caso eu estou tentando aplicar a tradução (http://www.romhackers.org/modules/PDdownloads/singlefile.php?cid=35&lid=932) e o hack pra se jogar usando os direcionais (https://www.romhacking.net/hacks/2248/), botões A e B + stylus normalmente.

Anexei os prints dos erros. No 1º eu apliquei o hack e em seguida tentei aplicar a tradução na ROM hackeada. No 2º eu fiz o contrário, apliquei a tradução e depois tentei aplicar o hack na ROM traduzida.

Já verifiquei que ambos os patches recomendam a mesma ROM que tenho aqui. Aliás, eu tenho duas ROMs aqui, uma com cada patch funcionando perfeitamente. O problema é quando tento juntar os dois na mesma ROM.
:choro2:
Título: Re:Como aplicar dois patches na mesma ROM de NDS?
Enviado por: patryckpo online Setembro 15, 2017, 20:47:06 PM
Acho que deveria ser editado a mão a ROM traduzida com o que este hack faz. Tenta o seguinte: abra a ROM original em um editor hexadecimal com suporte a visualização de diferenças com outro arquivo e edite a mão o que tem no hack em cima da tradução. Sei que parece confuso mas pelo menos assim é quase certo que funciona. Pensei que tivesse um código de trapaça que fizesse o mesmo efeito do hack em questão...
Título: Re:Como aplicar dois patches na mesma ROM de NDS?
Enviado por: Ondinha online Setembro 16, 2017, 10:17:07 AM
Você precisa entender o erro: Todo arquivo pode ser validado através de algum algoritmo pela sua estrutura de dados, quando você aplica um patch, ele altera inevitavelmente a estrutura dos dados, logo, quando você vai aplicar o outro, essa estrutura já foi modificada e ele está procurando pelo resultado do algoritmo da primeira, assim o delta não permite a aplicação porque ele entende que aquele não é o arquivo para o qual o patch foi feito.

Exemplo:

Aplicação do patch #1
---------------------
Arquivo original: Porcomon.gba; Tamanho: 2MB; Checksum 1234ABCD
Aplicação do patch: Filename OK, Tamanho OK, Checksum OK
Arquivo alterado: Porcomon.gba; Tamanho: 2MB; Checksum 12345ABEF

Aplicação do patch #2
---------------------
Arquivo original: Porcomon.gba; Tamanho: 2MB; Checksum 12345ABEF
Aplicação do patch: Filename OK, Tamanho OK, Checksum ERROR
Arquivo alterado: Não há pois houve um erro ao validar o checksum, estava procurando 1234ABCD, mas recebeu 12345ABEF

Existe alguma forma de aplicar os dois patchs? Sim, você precisa mudar o checksum do segundo patch, para bater com o novo checksum da ROM alterada pelo primeiro patch. Onde está esse checksum? Creio que seja necessário verificar a documentação do delta e isso eu deixo pra você.