09/07/2012

Robôs imensos quebrando o pau? Calma... não é Transformers e muito menos Power Rangers.

Aí pessoal! Meu blog não morreu, já deixo avisado! Já até lancei o Spawn e só preciso organizar o novo post sobre ele pra poder publicar! Calmaê!!!!!!
Enquanto isso uma análise de um jogo que gosto muito e zerei há séculos atrás sem saber nada do idioma japonês, no nível de dificuldade mais foda apenas para pegar um código e jogar com o vilão no modo Versus! Doido!! WAHwuAHWuaHWUAHWUHAUWhAU!

Bem, agora vamos à análise!


Shin Kidou Senki Gundam W - Endless Duel (J).
Fabricante: Bandai.
Gênero: Luta.
Ano de lançamento: 1996.
Em 1996 foi lançado um jogo de luta no Japão da franquia de animês Mobile Suit Gundam. Seu nome é Gundam Wing: Endless Duel e não foi trazido do oriente para o nosso prestígio... PORÉM!! Sim, eu disse: PORÉM!!! Há uma tradução para o inglês, feita por um grupo de nome Aeon Genesis.
Bem, na primeira olhada, o cartucho é lindo! Tátátátá... é feio de dar dó, mas seu conteúdo esconde um dos melhores jogos de luta já feitos para SNES.
Temos ao todo 10 robôs lutadores, estando entre eles Optimus Prime, Bumble Bee... Ops! Jogo errado!
Na verdade temos Shenlong, Wing, Wing Zero, Sandrock, Heavyarms, Deathscythe, Vayeate, Mercurius, Tallgeese, e... TODO-PODEROSO-APELADOR-DOS-INFERNOS... Epyon!
Lembro quando joguei pela primeira vez em uma locadora. Minhas mãos estavam dormentes depois de 2 horas! É um jogo que realmente vale a pena... e você me pergunta: "- Mas por que, Gambas? É só um jogo de luta!"; e eu respondo! Ele possui duas telas de altura, onde é possível realizar ataques dos mais variados, assim como jogos do tipo Marvel VS Capcom!! Cada personagem possui 2 golpes especiais. Há counter-atack, contagem de hits, combos no melhor estilo Street Fighter Alpha, os personagens correm e recuam rapidamente, defesa aérea, etc... e a incrível CORRIDA COM DEFESA!! Meu preferido é o Deathscythe, com sua foice e agilidade incríveis! Aliá, foi com ele que zerei no Hard!
A história do jogo é a mesma do animê e para quem não conhece, Wikipedia!
Vamos direto para a avaliação do jogo.

Gráficos:
Personagens grandes, cenários animados e coloridos, efeitos caprichados. O estilo de desenho animado japonês ajuda muito bem a economizar capacidade do sistema e aprimorar outros pontos do jogo. A animação dos personagens não é tão fluente, mas é o bastante para que a gente não imagine aqueles bonequinhos de jogos de Atari com 2 frames por segundo.

Som:
Básico e sem vozes. Imagino que se houvesse uma dublagem, mesmo que dos nomes antes das batalhas já seria interessante. O som se resume aos efeitos de tiros, menus sendo selecionados e músicas. Claro que as músicas são versões simples das apresentadas no animê, mas fazer o que?

Jogabilidade:
Ponto forte do jogo. Os golpes especiais são de fácil execução e há apenas 3 botões de ataque: um soco/chute fraco, um soco/chute forte e um que utiliza a arma padrão do personagem. Há um quarto botão que ativa uma metralhadora. Para usar os golpes especiais, o jogador deve pelo menos 30% da barra de especial (essa barra está localizada abaixo da barra de vida). Os lutadores são bem equilibrados e cada um com uma estratégia diferente, então não pense que vai conseguir apelar em modo de 1 jogador!

Conclusão:
O jogo é uma porcaria... MENTIRA!!!!!! Como já disse, é um dos melhores jogos de luta do SNES e é uma pena não ter sido lançado por essas bandas. Totalmente recomendado para quem gosta de jogos de luta, e quem não gosta pode jogar porque vai adorar!

Bônus:
Se você zerou na dificuldade HARD, não vai precisar dessa trapaça, mas caso seja um curioso da vida querendo jogar com o Epyon (último chefe), use os comandos nos modos TRIAL ou VERSUS.
Com o cursor sobre o personagem Tallgeese e aperte L 4 vezes, R 4 vezes, L, R, L, R, L, R, L e R. Em seguida o personagem será escolhido automaticamente e você vai começar a batalha jogando com nosso coleguinha Epyon, O-CHEFÃO-MEGAFODASTICO-HIPER-ULTRA-PUXA-APELÃO!

Site para pegar a ROM? http://emu-russia.net/en/

Sem mais delongas, até mais galera! E aproveite a jogatina, pois esse jogo vai comer boas horas do seu tempo! WHAUWhUAHWuAHWUHAUWAUWH!

17/12/2010

Spawn 2.0 - Tabela de Caracteres! - PARTE 2

Boa tarde!!!

Depois de praticamente 12 meses, cá estou eu novamente com uma postagem!!
Não, ninguém morreu e não estou comemorando nada. Só deu vontade de terminar o que comecei!! Embalado pelo som Speak, da banda Godsmack, acabei resolvendo fuçar no Spawn novamente.
Estive com dificuldades em definir uma tabela e realizar a acentuação. Esta tradução data de 25 de abril de 2003, então não lembro a lógica que usei para acentuar, muito menos as alterações que fiz. Tive que reestudar tudo, desde o começo e foi um trabalho árduo... 7 anos depois, vi que estou enferrujado! HUWHAUWhaUHwuH!! Mas nada como retomar os estudos - sim, tive que reaprender uma boa parte do que já sabia. Enfim, vamos aos resultados!

Nos posts anteriores vimos a confecção da tabela tendo como referência o uso do programa Monkey-Moore e a visualização dos tiles do alfabeto no Tile Layer Pro. Também vimos que o alfabeto do Spawn de SNES é bem peculiar, não seguindo uma lógica de alfabetos em 16bits (usado apenas nos menus e telas iniciais). Os textos in-game estão em 8bits. Um exemplo do 16bits? Simples:



 Pode dizer que é estranho! Não ligo! WHAUHWuAHWuHAUW! Mas é isso mesmo. Uma mesma letra tem 2 hexadecimais como referência e não se repetem como nos alfabetos em 16bits comuns. Geralmente há um hexadecimal fixo que acompanha o indicador da letra, mas no Spawn 'isto non ecziste'.

"Tá, Gambas, entendemos que há um hexadecimal indicando a parte de cima e outro para a parte de baixo da letra, mas e daí? Vamos acentuar esse bagulho!"

Calma, amiguinho(a)... as coisas não são tão simples. Observaram o alfabeto na imagem de referência no post anterior? Se não, dê mais uma olhada:








Não há espaço para acentuação! A maioria dos tiles mostrados nessa imagem serão usados em alguma parte do jogo e outros é difícil definir... e agora?
Primeira coisa é raciocinar. Sabemos que os menus e tela inicial de apresentação do jogo está em 16bits incomum... como? Usando a tabela e caçando dentro da ROM os textos da tela abaixo:



Há alguns caracteres somente usados nessa dela e menus, e possivelmente nos créditos no fim do jogo; resumindo: coisa inútil!

Na tradução 1.2 lançada em 2003, veremos a tela abaixo:



Erros de português e descentralização do texto a parte, há acentos (ver essas coisas antigas dá até um trem ruim... tem tanto erro, tanta coisa que ainda precisa ser aprimorada que até desanima de jogar...)! Porém não descartamos nenhum dos caracteres especiais... mas então, como acentuei?
Eu disse que era complicado, mas é mais simples ainda. Joguei o jogo inteiro, vi que haviam caracteres usados uma vez apenas ou nem usados nessa versão da ROM. Depois disso, o resultado:



Acentos mais usados já colocados na ROM, o negócio é partir para a edição dos textos depois de adicionar esses novos valores na tabela. Como já dito, a tela inicial e menus tem 16bits incomuns, então teremos dois valores para cada letra. Nossa sorte é que o texto in-game está em 8bits. Nossa tabela sem acentos poderá ser confeccionada da seguinte forma:

/12
*FD
29= 
32=[verde]
60=A
61=B
62=C
63=D
64=E
65=F
66=G
67=H
68=I
69=J
6A=K
6B=L
6C=M
6D=N
6E=O
6F=P
70=a
71=b
72=c
73=d
74=e
75=f
76=g
77=h
78=i
79=j
7A=k
7B=l
7C=m
7D=n
7E=o
7F=p
80=Q
81=R
82=S
83=T
84=U
85=V
86=W
87=X
88=Y
89=Z
90=q
91=r
92=s
93=t
94=u
95=v
96=w
97=x
98=y
99=z
A5=.
A7=?
AA='
CF=:


E dentro do Table Manager do Hyllian teremos:


Precisamos completar a tabela. Vamos facilitar e usar a imagem do Tile Layer Pro com a ROM editada para terminar o serviço. Lembre-se que textos in-game usam as maiúsculas.
Se compararmos as diferentes telas usando a mesma tabela, logo vamos perceber como devemos trabalhar o texto. Observe:




Pelo que lembro, em 2003, optei por usar duas tabelas. Uma com os dados para edição dos menus/tela inicial e outra para textos in-game, mas faça como preferir. Como é pouca coisa para editar em 16 bits, optei desta vez em usar apenas uma tabela para simplesmente exemplificar a tradução. Mas o ideal é usar duas tabelas e editar cada parte por vez, já que os textos dos menus e tela inicial estão divididos em parte de cima e parte de baixo das letras - lembre-se que no caso de usar acentos nessas ocasiões, cada letra acentuada terá um valor para parte de cima e de baixo, incluindo o uso do "cê-cedilha".
Observando essas imagens em seqüência, pude ver que na verdade temos 32bits nos menus! HWAUWhuaHWuAHUWA! Coisa de louco! Pensando bem agora, se quiser confeccionar três tabelas, sinta-se a vontade!
Tabela com acentos para edição dos textos in-game:

/12
*FD
29= 
32=[verde]
60=A
61=B
62=C
63=D
64=E
65=F
66=G
67=H
68=I
69=J
6A=K
6B=L
6C=M
6D=N
6E=O
6F=P
70=a
71=b
72=c
73=d
74=e
75=f
76=g
77=h
78=i
79=j
7A=k
7B=l
7C=m
7D=n
7E=o
7F=p
80=Q
81=R
82=S
83=T
84=U
85=V
86=W
87=X
88=Y
89=Z
8A=0
8B=1
8C=2
8D=3
8E=4
8F=5
90=q
91=r
92=s
93=t
94=u
95=v
96=w
97=x
98=y
99=z
A0=6
A1=7
A2=8
A3=9
A4=-
A5=.
A7=?
A8=!
A9="
AA=Õ
AD=Á
AE=Ã
AF=É
B4=_
C0=Ó
C1=Ê
C2=Ç
C3=Ô
C4=Í
CF=:
E2=Ú
Agora podemos meter a cara e editar pelo menos os textos in-game! Aos poucos vamos adicionando as strings que indicam cores, quebra de linha, quebra de página, entre outros. Em uma outra ocasião deixarei as tabelas completas para download.

Abraço!

17/01/2010

[TUTORIAL] SNESSOR - MS-DOS

Já na época do NES alguns, como você e eu provavelmente, sonhavam em ver jogos realistas e cheios de diálogos como se fossem filmes. Hoje em dia, um jogo sem diálogos, com personagens mudos, é difícil de engolir. Até os Final Fantasy se entregaram a essa magia!

Imagino que com a evolução do ROMhack, provavelmente dublaremos os jogos que formos traduzindo. É uma idéia que está em fase de lapidação e polimento.

Então vamos ao que interessa.

SNESSOR - O que é essa bodega?
É o programa que usaremos para exportar/importar os sons de ROMs de SNES, ou Super Nintendo, como queira. Ele extrai tudo quanto é sample existente dentro da ROM e as converte em áudio no formato SND ou WAV. Eu recomendo que sempre escolha WAV, por causa da facilidade em abri-lo em qualquer editor de áudio.
E não pense que o SNESSOR vai exportar/importar as trilhas de música do jogo e salvá-las em WAV porque não vai. O programa apenas vai extrair as notas dos instrumentos sem ordem nenhuma.

Você pode baixar o programa através do link:
SNESSOR no Po.B.R.E.

NOTA SOBRE O FUNCIONAMENTO DO SNESSOR:
Vamos utilizar apenas a versão de MS-DOS do programa, pois é a única que possui a opção de importar arquivos de áudio do formato WAV para dentro da ROM. Há uma versão de Windows 95, mas não serve para os nossos propósitos. Essa versão que vamos utilizar não funciona em nenhum Windows que não tenha o MS-DOS, sendo assim, precisaremos do emulador de DOS chamado DOSBox caso estejamos usando XP, Vista ou Seven. Sobre sua utilização, dê uma olhada na internet. Há muitos tutoriais ensinando a lidar com o DOXBox. Se preferir usar uma VM (Máquina Virtual) com Windows 98 ou 95, fique a vontade!




Após abrir o programa, será exibida uma tela para que seja carregada a ROM na qual serão extraídos os sons. Ela deve se parecer com esta:

De acordo com o tutorial que fiz em 08 de fevereiro de2003, as opções acima têm as seguintes funções:

  • [L]oad a file to rip – carrega um arquivo na memória para extrair, inserir ou editar.
  • [A]djust Sensitivity – ajustar a sensibilidade da busca e assim encontrar outros sons que a busca normal não encontraria.
  • [H]elp – exibir uma breve síntese dos comandos usados no programa (qualquer dúvida, olhe primeiro aqui invés de perguntar).
  • [E]xit – sair do programa.
Se abriu o programa, aposto que notou não ser possível passear entre as opções usando os direcionais do teclado, muito menos o mouse. Teremos que usar as teclas correspondentes que estão entre colchetes "[ ]" para acionar cada comando.
É simples! Se quero abrir uma ROM, aperto no teclado a letra correspondente ao [L]oad a file to rip, que é a letra "L". Não tem segredo!

Como é melhor entender o processo com ele em andamento, baixe a ROM do The Lion King. Lembre-se que o programa só trabalha com ROMs de SNES!
Pois bem. Depois de baixar a ROM, vamos carregá-la no SNESSOR.
No tutorial, feito em 2003, é nesse ponto que começam meus pecados! Lá eu não mostro as telas após apertarmos "L" para carregar a ROM.

Então, após o "L", veremos essa tela:

Você está vendo algum arquivo de ROM com extensão .SMC? Eu vejo 2 arquivos... mas eles são da ROM do The Lion King? Sim, são. Eu os renomeei devido ao nome extenso e complicado de agilizar na hora de digitar seus nomes. Minha ROM nesse caso é a A.SMC.
Recomendo que coloque a ROM no mesmo diretório que o SNESSOR; assim evitamos de ficar olhando o caminho completo do arquivo.
Após apertar o "L" no teclado, digito o A.SMC, que é o nome que coloquei no arquivo de ROM para facilitar. Se tudo ocorrer como o esperado, não veremos nenhuma mensagem de erro e provavelmente iremos para a tela abaixo:

Sei que não há muita diferença dessa tela para a primeira que vimos, mas é agora que o trabalho de extração começa a ser feito.
  • [L]oad a file to rip – carregar uma ROM na memória para extrair, inserir ou editar. Se você carregou o arquivo errado ou prefere outro, use esta opção.
  • [I]nteractive ripper – permite editar arquivo por arquivo, mudando a frequência, inserir arquivos, etc. Opção muito útil, pois é por ela que iremos reinserir os sons depois de editá-los.
  • [D]ump all – extrair todos os arquivos para edição (os arquivos ficam separados em uma pasta específica no mesmo local onde se encontra a ROM).
  • [A]djust Sensitivity – ajustar a sensitividade. Só altere essa opção caso não encontre o som que procura.
  • [H]elp – exibir uma breve síntese dos comandos usados no programa.
  • [E]xit – sair do programa.
Dando continuidade, vamos acessar o Ripador Interativo ([I]nteractive ripper) através da letra "i" no teclado. O programa vai detectar as samples e mostrar a seguinte tela:

  • [CUR ->] Next Sample – Avançar para a próxima amostra de som.
  • [CUR UP] Increase Speed – Aumenta a velocidade de execução do som (age diretamente sobre a frequência da amostra. Recomendo não usar, a não ser que saiba exatamente o que está fazendo).
  • [CUR DN] Decrease Speed – Diminui a velocidade de execução do som.
  • [M] Manually Set Speed – Controla a velocidade manualmente definindo um padrão.
  • [P] Play Sample – Executa o som escolhido.
  • [S] Save Sample – Extrai o som para um arquivo SND ou WAV.
  • [R] Replace Sample – Insere um outro arquivo no lugar do que foi escolhido.
  • [E] Exit to Main Menu – Volta ao menu principal.
Se olharmos a imagem acima com mais paciência, você vai perceber que a contagem das samples se inicia pelo "0" e vai até "133", e a velocidade padrão é de 8000Hz. Essa frequência de 8000Hz pode ser alterada na opção [M] Manually Set Speed, mas tome cuidado; ela pode distorcer o som. Recomendo não alterar e deixar para mudar qualquer coisa durante a edição em um programa qualquer de edição de áudio.

Em frente.
Agora podemos salvar nosso arquivo WAV de áudio para quem sabe trocá-lo por uma fala em português!
Vá até a amostra de número 25. Ela contém a frase do Timon: "It's start!" e deve estar com uma voz grave, bem diferente da original ouvida no jogo. Isso acontece por causa da frequência estar em 8000Hz e no jogo deve ser reproduzida em 11000Hz aproximadamente.
Vamos exportar a amostra nº25 apertando a tecla "S", correspondente a opção [S] Save Sample.

O programa vai perguntar o formato. WAV ou SND? Aperte "W" para escolher o formato WAV. Após a escolha do formato, outra vez o programa o questionará a fim de escolher um nome para o arquivo WAV que será exportado. Use nomes de fácil entendimento e localização. Eu usei o nome "s25.wav".
Digite o nome escolhido (não se esqueça da extensão ".wav" no final do nome) e confirme com "ENTER".
Uma mensagem aparecerá, dizendo que o arquivo foi salvo com sucesso.

Já aprendemos a exportar o arquivo WAV para edição e tal, mas e agora? E se eu quiser colocar minha voz no lugar da amostra 25? Simples!

Obviamente vamos precisar de um microfone, do gravador de áudio do Windows ou qualquer outro que grave voz em formato WAV, e paciência!

OBS: O gravador de som do Vista salva apenas em WMA, então se você estiver usando esse sistema operacional, prefira usar um programa como o Goldwave, ou Sound Forge ou Nero WaveEditor.

Supondo que já tenha gravado sua voz dizendo "COMEÇOU!" em um arquivo de formato WAV qualquer (salve-o com o nome sample25.wav para facilitar), vamos voltar até a tela (não se esqueça de colocar o arquivo gravado na mesma pasta do SNESSOR):

Sabe aquela opção ali, a "[R] Replace Sample"? Ela vai ser a responsável por colocar sua voz no lugar da amostra nº25!!
Vamos lá!
Vá novamente até a amostra nº25. Aperte "P" para confirmar se é o Timon dizendo "It's start". Feito isso, use o "R".
O SNESSOR novamente vai pedir para que seja digitado um nome de arquivo. Você sabe o que fazer, não? Isso mesmo! Digite o nome do arquivo que contém sua voz, e se seguiu minha recomendação o nome dele deve ser sample25.wav. Digite o nome e confirme com ENTER.
Deve aparecer uma mensagem confirmando que o se "sample25.wav" foi carregado.

Depois desse processo todo de tira daqui, coloca de lá, saia do programa usando a tecla "E". O SNESSOR vai perguntar se você deseja salvar o arquivo modificado; responda que sim pressionando "Y", e novamente ele exige um nome. Coloque "AMOD.SMC" (sem aspas, por favor) para que fique claro que aquela ROM é modificada. Agora podermos fechar o SNESSOR e usar um emulador para testar a ROM modificada.

Caso não tenha entendido o tutorial por inteiro, dê uma olhada nas video-aulas:

E se mesmo assim ainda tem dúvida, pode perguntar!

Até a próxima!

09/01/2010

Spawn 2.0 - Tabela de Caracteres!

Vejamos... alguns avisos.
Vou induzir, quem acompanhar esse tutorial, ao erro e reflexão, então não fique frustrado se acaso não der certo os passos que vou indicar. Há certas coisas que precisamos errar para poder entender o por que de fazer certo.

Primeira coisa que precisamos fazer é dar uma olhada no jogo e verificar algum texto que seja possível se fazer uma busca relativa por ele. Precisamos de uma tabela de caracteres para ser usada como referência, senão não veremos texto algum no editor HEX.

Antes de começar, programas que usarei nessa primeira parte:
  • Monkey-Moore 0.5; (do Darklord'0)
  • Table Manager 1.0e; (do Hyllian)
  • WindHex; (do Bongo)
  • Tile Layer Pro 1.1 (de Kent Hansen)
Você consegue esses programas acessando: http://www.romhackers.org/modules/PDdownloads2/viewcat.php?cid=1


Vamos ao início de tudo:

Era uma vez, Spawn...personagem de quadrinhos criado por Todd McFarlane em 1992. Spawn era o agente da CIA, Al Simmons, que após ser morto numa armadilha armada por seu chefe vai para o inferno. Lá, ganha poderes, após negociar com o demônio Malebolgia para se tornar um "filho do inferno". Spawn acaba revolta-se contra os demônios e passa a enfrentar as criaturas sobrenaturais e a Máfia. Além da série de HQ que tem o mesmo nome do personagem, Spawn estrela um filme, uma série de desenho animado e vários jogos de video-game. No Super Nintendo, Spawn sai à procura de Cyan, filha de sua ex-esposa, que está entre 13 crianças desaparecidas em Nova York, e  durante sua jornada cruza com vários de seus inimigos, como o Violador, entre outros. E como todo final clichê, quem conhece a série pode imaginar quem está por trás de tudo! DuH!

Olha! Que coincidência! Eu traduzi esse jogo! WHWUAHWuAHWuhAUWh!!

Após uma breve introdução ao jogo, vamos direto para a primeira parte da tradução deste excelente jogo.

1ª Parte - Busca Relativa e Confecção da Tabela.

OBS: para detalhes sobre tabelas, visite http://www.romhacking.trd.br/wiki/Tabelas

Imaginemos: "Nossa! Deve ser muito fácil fazer busca relativa nessa ROM, afinal, o Gambas traduziu! Se ele consegue, eu também consigo!"... Tátátátá, é fácil sim, mas até captarem a mensagem de que uma busca relativa comum não irá encontrar nada, já perderam boas horas fuçando sem resultado!

Como todo passo-a-passo, olhem para a imagem abaixo.

Texto bonito, não? DuH! Se você possuir as habilidades básicas de um ROMhacker, faça uma busca pelo texto mostrado na imagem.

Não tem conhecimentos de ROMhacker? Não faz mal. Como diria um serial killer, vamos por partes.
Abra o Monkey-Moore para darmos uma olhada na interface do programa e assimilar algumas informações.

Coloquei cores de modo à facilitar o entendimento de cada campo.




  • Cor VERMELHA: É o campo que usaremos para abrir nosso arquivo de ROM;
  • Cor VERDE: Aqui marcamos nossa opção "Busca relativa", que tem por objetivo fazer uma busca para os valores em HEX de "A" e "a". Já vem por padrão marcado como na imagem;
  • Cor AZUL: Campo onde digitaremos o texto (aqueles do jogo) que usaremos para achar os valores de "A" e "a";
  • Cor PRETA: Marque esta caixa para que seja possível separar as palavras durante a busca e outros;
  • Cor AMARELA: Marque a caixa "Definir charset" para colocar o formato possível de alfabeto no campo correspondente (caso não saiba, deixe a caixa desmarcada);
  • Cor ROXA: Esse botão realiza a pesquisa;
  • Cor LARANJA: Campo onde irão aparecer os resultados (se houver algum para ser mostrado!WHAUwhuAHWuHAW!).
Imagino eu que não precisaremos saber mais do que isso para usar o programa e traduzir essa ROM.

Próximo passo: realizar a pesquisa!
Abra a ROM usando o botãozinho na frente do campo VERMELHO. Se observar, o local onde a ROM está aparece DENTRO do campo vermelho. Faremos a busca usando apenas letras maiúsculas, pois é assim que elas se encontram na ROM.
Usaremos aquele texto da imagem acima, o TRAIL*ENDS*HERE. Digite a frase em caixa alta mesmo no Monkey-Moore, naquele campo AZUL, tomando o cuidado de colocar um asterísco (*) entre as palavras. Marque a caixa "Usar curingas", representada pela Cor PRETA.
 Clique no botão circulado em ROXO e observe os resultados.




NENHUM!!!!!!!!!!! hwuahWUAHWUHauwHauhwUahwuH! Sem fechar o Monkey-Moore, siga em frente com a leitura. Voltaremos neste ponto mais tarde.
Sem problemas! Eu explico! Melhor dar uma olhada nessa imagem:


Até aí tudo bem. Um alfabeto normal de uma ROM normal, aberta no Tile Layer Pro.
Para localizar esse alfabeto através do Tile Layer Pro, abra a ROM nele, aperte ctrl+g; vai aparecer uma caixa como esta:


Viu o Offset dentro da caixinha? Sim! Aquele "000B6600"! Digite aquele offset e clique em "Go!".
A tela mostrada acima irá fechar e o Tile Layer Pro vai mostrar o lugar na ROM onde está esse offset.
Deve aparecer algo como:

Não vemos as letras por causa do formato em que a visualização se encontra. Vamos até o menu "View/Format/Game Boy". Não tem erro! Se fizer como está sendo descrito, você verá a imagem do alfabeto.
Vamos voltar até a imagem do alfabeto.

Observem. As letras são formadas por 2 tiles, então teremos um alfabeto em 16 bits? 2 bytes? Vamos fazer alguns testes.
Então como faremos nossa busca para saber os valores de "A" e "a"? Simples!

Antes, para um melhor entendimento, leia a parte "tabelas em 16 bits" em http://www.romhacking.trd.br/wiki/Tabelas#Tabelas_de_16_bits

Para fazer uma busca em 16 bits no Monkey-Moore, usaremos caracteres-curingas, ou melhor, um caractere-curinga. Usemos o asterisco (*) mesmo.
De volta ao ponto em que paramos no Monkey-Moore, faremos uma busca relativa novamente utilizando o conhecimento que temos agora:
Aparentemente o alfabeto está em 16 bits e teremos que usar curingas para representar o byte que se repete em cada letra:
Geralmente alfabetos em 16bits são representados assim:
0220=A \__Exemplo 1
0221=B /
ou...
2002=A \__Exemplo 2
2102=B /

Se o alfabeto é de 16 bits, provavelmente teremos um byte se repetindo em cada letra, e é exatamente aí que entra o CURINGA (não... não é o do Batman... o do Batman é CORINGA!!!) pois não sabemos que byte é esse.
Novamente configuramos o Monkey-Moore como se fôssemos fazer uma pesquisa comum, da mesma forma quando procuramos por TRAIL*ENDS*HERE, só que dessa vez mudaremos o texto a ser pesquisado.
Vamos tentar localizar os valores de "A" e "a" pesquisando pela palavra TRAIL escrita com curingas representando o byte que se repete. Ela deve ficar da seguinte forma:
*T*R*A*I*L --Esta forma para o Exemplo 1
T*R*A*I*L* --Esta forma para Exemplo 2

Supondo que seguiu meu conselho de deixar o Monkey-Moore aberto, copie e cole os modos de escrita da palavra TRAIL no campo de Cor AZUL e em seguida clique no botãozinho com uma LUPA, circulado pela Cor ROXA. Observem no Monkey os resultados com cada exemplo.

Agora paramos para pensar: "Caraca... que merda de ROM é essa...? Já usei meu conhecimento de merda para procurar as referências para montar a tabela... e NADA... ROM do capeta... DESISTO...!"

NÃO! AINDA NÃO DESISTA!! Mostrei os mesmos erros que eu cometi quando iniciei a tradução desse jogo em 2002. Naquela época não havia tutoriais; todo material era escasso e o que havia era da "elite", sem falar que ou aprendia sozinho ou dependia de pessoas de boa vontade (coisa rara antigamente...).

Agora revelarei o segredinho do alfabeto de... SPAWN...  a ROM dos infernos! WHAUwhuaHwuAH!!

Vamos voltar naquela imagem em que mostro o alfabeto pelo Tile Layer Pro.

O que estamos vendo? As letras são formadas por 2 tiles, então teremos um alfabeto em 16 bits? 2 bytes?
A resposta correta é "NANANINANÃO"!
Aí você me pergunta: "Mas Gambas... que merda é essa? Eu pesquisei TRAIL*ENDS*HERE e se estivesse em 8bits, eu tinha encontrado a porcaria do texto... então, qual é a dessa ROM?"

Devo admitir que as palavras são mostrada no jogo usando pares de bytes, ou seja, 16 bits, mas esse jogo em especial, usa um modo diferente de trabalhar o texto.

Sempre pensamos  (nós, ocidentais) que por textos serem escritos da esquerda para a direita, sempre na horizontal, a tabela terá referências do mesmo modo. Já no caso dessa ROM, consideremos os bytes das letras (2bytes) como se estivessem em colunas.
O que acontece na ROM do Spawn é que a parte superior do alfabeto é totalmente independente da parte inferior.
Cada frase no jogo tem sua duplicata com hexadecimais diferentes. Para exemplificar observe abaixo:

"I'VE TRACKED THE CHILDREN THIS FAR AND THE TRAILS ENDS HERE   "

"i ve tracked the children this far and the trails ends here..."

As frases tem o mesmo tamanho, mas podemos observar os acentos e pontuações.
Para entender melhor, vou montar o alfabeto da imagem acima de acordo com a forma que o jogo estoca as frases.
ABCDEFGHIJKLMNOP
abcdefghijklmnop
QRSTUVWXYZ012345
qrstuvwxyz

E novamente você pensa: "Gambas, seu filho da p..., me enrolou pra dizer isso?". Calma! Ainda não acabou!
Por isso que não achamos TRAIL*ENDS*HERE e muito menos somente a palavra TRAIL. O alfabeto não está em uma sequência lógica, então o que temos que tentar é achar uma palavra que use somente as letras que estão na mesma linha. Um exemplo: MALEBOLGIA. Malebolgia é um dos vilões do jogo e seu nome aparece sempre. Faça a busca usando essa palavra.

Poiseh! 14 resultados! Temos os valores exatos para "A" (60) e para "a" (80). O valor 80 para "a" está incorreto, pois ele está logo abaixo do "A", então podemos presumir que
Talvez, se ainda não entendeu, deve estar perguntando: "Mas Gambas... por que MALEBOLGIA o Monkey-Moore foi capaz de encontrar e TRAIL não?".
Observe onde estão as letras de cada palavra:
MALEBOLGIA:
ABCDEFGHIJKLMNOP
abcdefghijklmnop
QRSTUVWXYZ
qrstuvwxyz


TRAIL:





ABCDEFGHIJKLMNOP
abcdefghijklmnop
QRSTUVWXYZ
qrstuvwxyz


Para achar os valores correto, o certo é usar palavras que tenham letras na mesma linha. MALEBOLGIA usa apenas letras da 1ª linha enquanto TRAIL usa letras da 1ª e da 2ª linha. O único modo de encontrar a palavra TRAIL seria utilizar referências próprias, como vou descrever adiante.

Ainda há outra forma de encontrar as referências para "A" e "a" (até mais exatas) usando um recurso interessante do Monkey -Moore, o CHARSET! E o que ele faz? Ele define a possível ordem em que as letras estão organizadas.
Com base no que possivelmente já sabemos olhando a imagem do alfabeto no Tile Layer Pro e fazendo a busca pela palavra MALEBOLGIA, podemos montar o charset da ROM Spawn.


Retiramos as quebras de linha no final de cada sequência de letra e teremos:
ABCDEFGHIJKLMNOPabcdefghijklmnopQRSTUVWXYZqrstuvwxyz


Se a gente não mostrar ao programa como procurar, ele vai sempre considerar o charset padrão (ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz), e teremos que fazer aquele lance lá da palavra pesquisada somente conter as letras "ABCDEFGHIJKLMNOP"

"E onde eu enfio esse tal charset do Spawn? HEHE!!!" WAHUWhuaHw!!! A resposta é mais simples do que você pensou e dará menos trabalho!

Imagino que tenha percebido na descrição de alguns recursos do Monkey-Moore uma caixa de marcação circulada na Cor Amarela. Se não percebeu, dê uma olhadinha:

Em amarelo temos "Definir charset". Vamos novamente procurar por TRAIL*ENDS*HERE. Marque a caixa e coloque dentro do campo correspondente o charset que encontramos para a ROM Spawn. Não podemos esquecer de usar curingas!!! Faça a pesquisa. Sua tela deve estar desta forma:

HA! Achamos os valores corretos! Finalmente vemos a frase "TRAIL*ENDS*HERE" e algo mais, e por isso temos certeza de que estamos com a tabela QUASE terminada.
Para salvar a tabela, selecione um dos resultados e clique em "Criar tabela". Irá aparecer uma tela mostrando os caracteres e seus respectivos bytes, um lugar para colocar o nome da tabela e o formato. Atribua um nome de fácil identificação e clique no ícone de um disquete para salvar sua tabela. Pode fechar o Monkey-Moore, pois já terminamos com ele.

Agora vem a parte mais simples: corrigir a tabela!

Abra o Table Manager.


Abra a tabela que salvamos no Table Manager e se prepare para a decepção.


Não sei se é um bug no Monkey-Moore, mas ele desconsiderou as maiúsculas que haviam após o "p". A tabela deveria estar como no exemplo:

ABCDEFGHIJKLMNOP
abcdefghijklmnop
QRSTUVWXYZ
qrstuvwxyz


E não foi o que aconteceu. Teremos que corrigir, pois o Monkey-Moore localiza corretamente o valor dos caracteres QRSTUVWXYZ, mas não os salva corretamente, então só nos resta colocar na sequência correta.


Após a correção, ela deverá aparecer dessa forma.

Muito bem, povo! Acho que vou encerrando o post por aqui. Já escrevi demais! HWUAHWuhuwhaUwhuaHw!

No próximo post sobre Spawn 2.0, vou explicar como completar a tabela e vamos passar para a edição do texto dentro da ROM através do WindHex.

Valeu, gente. Até a próxima!
Abraço!