DUMP/INSERT texto usando CARTOGRAPHER + ATLAS (Parte 2)
Guia uso Atlas junto com o Cartographer
Dando continuidade, após extraído todos os scripts com o Cartographer, vamos inserir usando o ATLAS.
Vou usar o jogo DemiKids - Light Version, do GBA, como exemplo. É jogo que estou traduzido no momento.
(Inserindo o texto)
PASSO #1
Baixe o ATLAS e crie na mesma pasta um arquivo .bat com qualquer nome. Aqui vou usar "Altas.bat".
Dentro dele cole os comandos a seguir:
"../Rom/JOGO.gba Comandos.txt"
Aqui estou especificando o caminho da ROM.
"../Scripts/BR/DemiKids_script_000.txt"
Aqui estou especificando o caminho do arquivo de texto para inserir.
Agora, salve e feche o arquivo.
PASSO #2
Abra o arquivo de texto que vai inserir na ROM e coloque os comandos a seguir no cabeçalho.
Explicando.
#VAR(Table, TABLE)
#ADDTBL("..\Tabela\INSERT.tbl", Table)
#ACTIVETBL(Table)
Aqui eu estou especificando a tabela para usar na inserção do texto.
#HDR($F8000000)
Da mesma forma que precisou de um valor base para extrair, também vai precisar para inserir. Muitas vezes o mesmo valor base usado para dumpar não dar certo aqui, então uma dica que dou para saber o valor base de inserir é:
O primeiro ponteiro nunca vai ser alterado, ele sempre vai permanecer igual, mesmo após a modificação. Caso tenha inserido e ele tenha sido alterado, seu valor base está errado. (Isso a menos que mude o local onde vai inserir os textos na ROM)
Dessa forma, salve o valor base do primeiro ponteiro sem modificação. Use como valor base $0, agora execute o arquivo .bat. Veja se ele foi modificado. Agora só precisa saber a diferença de um pro outro, esse vai ser o teu valor base.
#JMP($220050, $222BDA)
Aqui eu estou dizendo onde inserir o texto. Ele vai ser inserido do offset $220050 até o offset $222BDA. Só será inserido o que couber dentro desse intervalo, por isso se atente na tela do CMD, pois lá irá dar várias informações, inclusive se foi possível inserir tudo e quantos bytes não coube.
Meu arquivo para inserir ficou assim:
Pronto, salve e feche o arquivo.
PASSO #3
Execute o arquivo .bat e veja o resultado.
E é isso.
Guia uso Atlas junto com o Cartographer
Dando continuidade, após extraído todos os scripts com o Cartographer, vamos inserir usando o ATLAS.
Vou usar o jogo DemiKids - Light Version, do GBA, como exemplo. É jogo que estou traduzido no momento.
(Inserindo o texto)
PASSO #1
Baixe o ATLAS e crie na mesma pasta um arquivo .bat com qualquer nome. Aqui vou usar "Altas.bat".
Dentro dele cole os comandos a seguir:
Código Selecionar
Atlas ../Rom/JOGO.gba ../Scripts/BR/DemiKids_script_000.txt
pause
"../Rom/JOGO.gba Comandos.txt"
Aqui estou especificando o caminho da ROM.
"../Scripts/BR/DemiKids_script_000.txt"
Aqui estou especificando o caminho do arquivo de texto para inserir.
Agora, salve e feche o arquivo.
PASSO #2
Abra o arquivo de texto que vai inserir na ROM e coloque os comandos a seguir no cabeçalho.
Código Selecionar
#VAR(Table, TABLE)
#ADDTBL("..\Tabela\INSERT.tbl", Table)
#ACTIVETBL(Table)
#HDR($F8000000)
#JMP($220050, $222BDA)
Explicando.
#VAR(Table, TABLE)
#ADDTBL("..\Tabela\INSERT.tbl", Table)
#ACTIVETBL(Table)
Aqui eu estou especificando a tabela para usar na inserção do texto.
#HDR($F8000000)
Da mesma forma que precisou de um valor base para extrair, também vai precisar para inserir. Muitas vezes o mesmo valor base usado para dumpar não dar certo aqui, então uma dica que dou para saber o valor base de inserir é:
O primeiro ponteiro nunca vai ser alterado, ele sempre vai permanecer igual, mesmo após a modificação. Caso tenha inserido e ele tenha sido alterado, seu valor base está errado. (Isso a menos que mude o local onde vai inserir os textos na ROM)
Dessa forma, salve o valor base do primeiro ponteiro sem modificação. Use como valor base $0, agora execute o arquivo .bat. Veja se ele foi modificado. Agora só precisa saber a diferença de um pro outro, esse vai ser o teu valor base.
#JMP($220050, $222BDA)
Aqui eu estou dizendo onde inserir o texto. Ele vai ser inserido do offset $220050 até o offset $222BDA. Só será inserido o que couber dentro desse intervalo, por isso se atente na tela do CMD, pois lá irá dar várias informações, inclusive se foi possível inserir tudo e quantos bytes não coube.
Meu arquivo para inserir ficou assim:
Código Selecionar
//GAME NAME:
//BLOCK #000 NAME: História - 000(POINTER_RELATIVE)
#VAR(Table, TABLE)
#ADDTBL("..\Tabela\INSERT.tbl", Table)
#ACTIVETBL(Table)
#HDR($F8000000)
#JMP($220050, $222BDA)
//POINTER #0 @ $24B674 - STRING #0 @ $220050
#W32($24B674)
Sombras e Luz[TEMPO]*
marcam a passagem do tempo.[TEMPO]@
Um se esconde no outro,[TEMPO]*
formando um círculo...[TEMPO]@
Um círculo da vida.[TEMPO][END-FF]
//POINTER #1 @ $24B678 - STRING #1 @ $220142
#W32($24B678)
Dentro da Torre do Tempo[TEMPO][END-FF]
Pronto, salve e feche o arquivo.
PASSO #3
Execute o arquivo .bat e veja o resultado.
E é isso.