4.xx - A prática que leva à perfeição!
*FAÇA SEMPRE UMA CÓPIA (BACKUP) DO SEU TRABALHO!!!*
4.1)A seção que todos vão chegar em alguns dias...
Maravilha, vamos pegar uma ROM qualquer... Comece com uma de NES/Famicom ou
Game Boy (nem Color, nem Super), que não seja japônes !! Vamos abrí-la num
desses emuladores!! Veja o diálogo e preceba como ele aparece (quantos
caracteres por linha, como acontece os pulos de linha, se usa efeitos
etc), aproveite para tirar umas capturas (geralmente no F12)... Primeiro de
tudo, vamos ver se o jogo usa o ANSI!! Pegue a tabela ANSI, que vem com o
Thingy 32 ou este documento, e abra a ROM num daqueles editores hexadecimais
bacanas... Procure a fala do jogo que você viu e espere (tente sem colocar
acentos, pontuação ou espaço também), se ele não achar, ainda tente rodar a ROM
toda atrás de algum diálogo... Caso não tenha sucesso, vamos abrir o nosso
primeiro destino, o Pesquisador Relativo! Pegue uma fala do jogo, que não
contenha acentos, de preferência... Digite ela no procurador e ENTER! Vai
aparecer uma série de resultados prováveis, onde ele vai informar qual código
hexadecimal é o "A" (A=xx , pena que alguns não salvam em texto)... Anote todos
os resultados prováveis e, vamos ao teste!!! Lembre-se : tente achar a maior
fala possível, durante a busca relativa, para diminuir o número de resultados
e poupar trabalho! Vamos dar um pouco de trabalho ao Table Manager :D... Abra
ele e clique no primeiro valor hexadecimal do "A", acusado pela pesquisa...
Clique com o botão direito e peça para que ele preencha de A-z, esteja certo
que era necessário prestar atenção na pesquisa relativa e os BYTEs que ela dava
pois, o a-z pode vir antes do A-Z e/ou pode sair desordenado (não exatamente
depois do A-Z mas, sim, alguns BYTEs depois)... Se for paranóico, use um editor
de textos (Notepad - Bloco de Notas) para fazer a tabela manualmente!
Pronto, preenchendo corretamente a sua tabelinha (lembre-se que você não pode
digitar caracteres que não tem na tabela :D), vamos abrir o editor hexadecimal!
Agora você vai ter que se virar um pouco, não posso dizer exatamente onde que
acontece em cada programa mas, no ThingyV 2.0, aparece um menu, logo após
selecionar o arquivo, para selecionar a primeira e, depois, uma tabela
alternativa (caso queira)... Você está vendo apenas as letras e o resto é um
bando de caracteres igüais? Então está tudo aplicado corretamente :D...
Agora, é preciso terminar a tabela de caracteres!!! Pesquise um diálogo no
editor, caso você não ache, vamos rodar pela ROM! Traláláláaa... Terminou?
Não achou algo? Que pena :/ , vá tentando outros resultados da busca relativa
até conseguir!! Já tentou todos e não achou? Então, meu caro, seu problema é
cerebral... Não posso lhe ajudar! Quem sabe tenha um profissional dessa área
interessado na sua dislexia >:D!! Agora, se achou, parabéns ^^ !! Falta
completar a tabela com os caracteres restantes! Vá pegando os diálogos do jogo
e procurando por novos caracteres (anote o espaço e a pontuação, antes de tudo,
pra facilitar), capture a imagem e vá procurar colocando as palavras secas do
diálogo! Continue anotando todos os caracteres que for encontrando e, anote,
pelo menos, os códigos dos ponteiros que dividem o diálogo (abrem e fecham).
PIMBA, passamos dessa primeira parte!! Depois vamos revisar umas pedras no
nosso caminho :D!!
4.2)Completei a tabela do jogo... Mas, como faço se a ROM
não tem nossos caracteres :/ ?
Está na hora de você aprender a artistar (e começar a testar sua paciência,
em alguns casos)... Pegue seu Editor de Tiles preferencial. Vamos por em prática
tudo que foi aprendido nas brincadeiras com o Paint Brush. Não vou explicar
como as ferramentas funcionam, vá no Paint Brush e veja você mesmo, é igüal!!
Abra a ROM, se você sempre seguir meus conselhos, vai ver que ele seleciona o
modo dos tiles automaticamente... Maravilha, como ainda não ensinarei um jeito
de achar o endereço exato dos Tiles (ainda não interessa, você pode fazer isso
tranqüilamente numa ROM pequena), se vire >:D! Rodou o jogo todinho e não achou
nem gráficos? Então vamos fazer a primeira alternativa : diminua o modo de
exibição dos Tiles (Exemplo : como estamos mexendo com NES e GB, que são 2BPP
ambos, vamos tentar APENAS com o 1BPP!)... Rodou, virou, girou novamente e não
achou? Então só pode ser compressão... Neste caso, tente outra ROM! Conseguiu
achar a fonte? Então vá em frente e substitua os caracteres inúteis (dê uma
boa olhada no jogo para saber bem qüando eles forem utilizados) por caracteres
acentuados, pequena dica : faça sempre o "á","é","í","ó","ú" primeiro; depois
faça os tils "ã" e "õ"; finalmente, faça os circunflexos "â","ê","ô" e, se o
jogo exigir, faça uns acentuados maiúsculos (não é recomendado mas, se você não
quiser alterar a ordem das frases)! Pronto, terminando a grafitagem, falta
apenas substituir esses caracteres alterados na TABELA (crie outra, preserve a
original, logicamente :D)... Durante essa substituição, vou chamar sua grandiosa
atenção para o detalhe dos caracteres usados entre WIN/DOS : caso você use um
editor que tenha por base o DOS (Thingy e seus hacks), não coloque as letras
acentuadas na TABELA ("á","ã" desse modo)! Invente uma modinha ;D! Eu faço
assim : "a'" para representar "á", "a~" para "ã" e assim em diante... Nos feitos
para windows, pode se usar SIM os acentos junto às letras... Maravilha, feito
tudo direitinho, podemos começar com a parte mais trabalhoso : os textos!!
4.3)Vamos às malícias! Eu quero as malícias dos super
hackers já!
Edição de textos...
Malícia de super hacker é mania de informação, estamos compreendidos ;D ?
Bem, até aqui foi fácil... Fazer sua tabelinha simples e tals, maior moleza!
Editar gráficos, então, é um prazer... Agora, digitar rápido não é para qüalquer
pessoa :D... Você vai precisar, se quiser que o seu RPG saia traduzido em menos
de 2 semanas... Existem dois métodos simples para editar textos (os complicados
você que invente :D), como vamos ver agora...
4.31)O primeiro jeito de traduzir... É o mais fácil...
Precisamos driblar os PONTEIROS :D...
Bem, sabe aquele editor hexadecimal bacana? Nessa hora que ele vai entrar...
Pegue ele, abra sua ROM modificada, coloque as duas tabelas para facilitar
e vamos traduzir... Vá abaixando até achar o primeiro diálogo... Caso queira
evitar a fadiga, sempre salve nos bookmarks os endereços! Atente para o
primeiro detalhe : caso ache algo relacionado ao DEBUG ou ao programa do jogo
(Sound FX, Graphics MODE balbalbal...), não edite! Em alguns casos, a edição
desses trecos pode dar pane no jogo :/... É claro que não estou me referindo
às opções mas, basta ter boa vontade para diferenciar :P... Enfim, ache o
primeiro bloco de diálogo, e comece a edição :D... Lembre-se que, qüando for
colocar os ponteiros na tabela, não enfie 10 caracteres por ponteiro!
Simplifique e, de preferência, faça um outro arquivo de texto explicando pra
quê serve x ponteiro... Bem, continue traduzindo :D... Lálálá.. OPA! Surgiu uma
limitação e, como você não quer traduzir abreviando/sinonimando (utilizando
sinônimos da tradução direta), precisa "aumentar" este espaço!!! Simples, apenas
modifique o lugar dos ponteiros, ao longo do caminho e, caso o ponteiro exija,
na sua respectiva TABELA DE PONTEIROS para arrastar o início/fim dos diálogos!
4.32)Eu quero ser um tradutor de script :D!! É meu sonho!!
Antes de reapontar a ROM, vamos aos scripts :D... A vantagem de traduzir em
Scripts, é o fato de você não ficar paranóico com acentos e/ou DTEs/MTEs
(graças às limitações de exibição dos editores :D)... Bem, precisamos de uma
tabela pronta com a representação de BeginString e/ou EndString (como você já
deve ter visto, depende do caso), segundo pede o extrator... Agora, perca algum
tempo lendo e aprendendo como funciona o seu extrator/insertor! Finalmente,
extraía o Script e POU! Já pode ir traduzindo :D! Lembre-se de estudar como a
ROM limita o texto, se ela tem algum espaço sobrando, se existe alguns dados
importantes no script (dados do jogo) e, principalmente, como ficará o script
na hora de inserí-lo na ROM (veja se o tamanho é maior e, caso seja, se vai
ultrapassar dados importantes! Por isso que essa modalidade é mais utilizado
por programadores : eles fazem um um extrator/insertor de acordo com o jogo
trabalhado :D!!
4.33)Modificando Ponteiros de acordo com nossa vontade mas,
nem sempre :D!
Primeiro, esse é o ÚLTIMO PASSO de uma tradução e uma explicação
simples de como fazer isso rapidamente... Não vou entrar em discussão
semi-inútil aqui sobre como achar tabelas de ponteiros somando, multiplicando,
dividindo ou subtraindo o cabeçalho pois, ele não é de suma relevância para
a ROM (são piratas)... Agora, simplesmente entre num editor hexadecimal normal,
inverta o endereço onde está o ponteiro, pesquise o VALOR DO ENDEREÇO
invertido e faça a modificação desse valor na tabela de ponteiros
(em hexadecimal)... Resumindo e exemplificando... Digamos que o seu ponteiro
tenha o valor hexadecimal EF e o endereço EXATO onde ele está é 0x0FED21, você
só precisa retirar os BYTEs irrelevantes de endereço (para os sistemas que
estamos trabalhando aqui, ou seja, NES e GB) até ficar, apenas, 2 BYTEs :D!
Trocando em miúdos, com este endereço acima, ficaria apenas 0xED21!! Agora nós
invertemos este valor do endereço, vai ficar 0x21ED!! Finalmente, vamos
procurar esse valor, num editor hexadecimal, para achar a TABELA DE PONTEIROS!!
Bem, achando a tabela correta, você verá um bando de valores em uma certa
sequência, sempre somando ou subtraindo alguns BYTEs. Ah e o seu valor lá...
Agora, tudo fica simples : só substituir aquele velho valor (original da ROM)
pelo novo que você vai determinar, digitando o ponteiro em outro lugar!
Exemplificando de novo, usando o valor acima XD... Vamos dizer que o ponteiro
passou uns 5 BYTEs na frente, o antigo endereço era 0x0FED21 e na tabela ficava
0x21ED. Agora, o novo endereço será 0x0FED26 e o valor antigo terá que ser
substituído por 0x26ED !!! Uff, puff, compreendido? E sim, você vai ter que
fazer isso com todos os ponteiros que forem alterados de lugar, caso o jogo
exija :P!! Se o seu jogo não estiver com ponteiros (muito cuidado nessa hora),
tente procurar algo parecendo uma tabela e veja se ela contem os endereços de
abertura/fechamento dos diálogos... Caso não consiga, esta ROM é imprópria para
iniciantes... Só aprendendo coisa mais pesada! É chato dizer isso, agora que
estava tão perto mas, tente outra vez XD... Ah, cuidado com os ponteiros que
podem representar o valor de caixas de diálogos!! Estes, na maioria das vezes,
vem com indicadores de abertura/finalização da caixa e, o valor no meio deles,
representa a variação horizontal e vertical da caixa! Se você não quiser ter o
saco de reapontar a ROM todinha, existem reapontadores mas, só fazem serviço
simples : a tabela de ponteiros precisa estar acima ou abaixo do bloco de
diálogos!
4.4)Concluindo a seção básica.
Conseguiu com todas essas informações? Então você vai rumo ao sucesso 8)!!
Não conseguiu e ainda me xinga por não explicar como se usa as ferramentas?
Não chegue perto de mim, sua ameba >:P! Você é uma peste que deve ser
exterminada! O melhor que você faz é ir pegar mulher na praia e deixar o
computador pra quem quer!! Bem, vamos voltar ao assunto!! Apesar de eu ter
aconselhado ROMs de NES e GB, isso é o que todos os romhackers acham mais fácil
fazer... O problema é que, com ROMs de 16MB+ e ISOs do tamanho do mundo usando
3 tabelas desorganizadas de 16 BITs, não é interessante fazer o método manual!
Ninguém gostaria de pesquisar uma ISO de DVD, que tivesse os dados necessitados
lá no final... Agora, está na hora de partimos para o próximo nível onde, nem
sempre tem todas as ferramentas desejadas (emu bom de PSX com DEBUGGER, nem
pensar :P)!
----------------------------------------------------------------------------------------------------------
