Tutorial de Tradução de ROMs
Artigo IV
Versão 1.1: 08/08/99
Conteúdo:
1 - Edição de gráficos no Nintendo
1.1 - O formato da ROM
1.2 - Alterando os gráficos
4 - Software relacionado
4.1 - NESticle
4.2 - Tile Layer

Você conheceu um pouco do funcionamento do sistema Nintendo no artigo passado. Vamos continuar com mais algumas informações técnicas, agora detalhando o formato da ROM do NES.
As ROMs de Nintendo são amplamente encontradas em um formato de arquivo predominante. É o formato iNES (extensão .NES), criado por Marat Fayzullin, autor de um dos primeiros emuladores de Nintendo, de mesmo nome que o formato. Este formato agrega os dois tipos de informação contidos na ROM do Nintendo e mais um cabeçalho próprio em um único arquivo.
Esse cabeçalho não é parte da ROM original, mas adicionado durante o processo de cópia. Ele ocupa os 16 primeiros bytes do arquivo e fornece informações importantes sobre a ROM para os usuários e para os programas que venham a utilizá-la.
Após o cabeçalho, encontramos o primeiro tipo de dados contido na ROM. É o próprio código do programa, compilado em linguagem de máquina da CPU do NES (processador 6502). Isto significa que aí estão contidos as instruções que serão executadas pelo processador e quaisquer dados que sejam utilizados pelo programa. Para a tradução, é importante observar que os textos do jogo estão também nesse espaço da ROM.
A segunda parte da ROM compreende os únicos recursos que não estão embutidos na parte anterior: os gráficos, mais precisamente os tiles das imagens. Neste espaço encontram-se as pattern tables requeridas pelo jogo. Mais adiante, trataremos exatamente da edição dessa parte da ROM.
A parte do código do jogo é comumente referida como PRG-ROM (Program ROM) e está sempre presente em blocos de 16KB. A parte dos gráficos é a CHR-ROM (Character ROM) ou VROM (Video ROM) e aparece em bancos de 8KB. No cabeçalho da ROM, o quinto e o sexto byte indicam, respectivamente, a quantidade de bancos de PRG-ROM e CHR-ROM. Você pode facilmente obter o tamanho que o arquivo deveria ter pelo cálculo seguinte:
("valor do quinto byte" x 16384) + ("valor do sexto byte" x 8192) + 16
Para editar os gráficos do Nintendo temos duas boas opções, que se adaptam cada uma a um tipo de situação.
O emulador NESticle oferece uma edição simples para os gráficos. Em compensação, eles são alterados em tempo real e você pode imediatamente observar as mudanças durante a emulação. Para fazer esse tipo de edição, exiba as pattern tables na tela e clique no tile que você deseja alterar. Será exibida a janela com o tile ampliado. Você pode escolher uma das quatro cores disponíveis na janela e desenhar como em um editor de ícones comum, pixel por pixel. Para salvar o seu trabalho diretamente na ROM, use o menu "File | Write VROM". Cuidado, portanto, para não cometer erros. Se errar e não conseguir corrigir, não salve, carregue novamente a ROM e continue editando.
Para uma edição mais elaborada e que não necessite visualização imediata da edição no próprio jogo, é mais recomendável o uso de um editor de tiles em separado. Vamos estudar aqui como é o uso do programa Tile Layer (ver seção 4.2).
Rode o programa utilizando como parâmetro na linha de comando o nome do arquivo a ser editado. O Tile Layer apresentará os tiles da ROM no lado esquerdo da tela. Como o início do arquivo contém a PRG-ROM, e não tiles, será exibida uma área apenas com pontos coloridos sem sentido visual. Tenha cuidado para não alterar essa parte durante a edição gráfica. Use as teclas de direção <CIMA> e <BAIXO> para encontrar os tiles verdadeiros, que deverão estar mais ao final da ROM.
Utilize o botão esquerdo do mouse para colocar um tile na área de edição. Edite o tile à vontade, com as quatro cores disponíveis. Depois da edição de um tile, você deve recolocá-lo na posição da ROM que desejar, clicando naquela com o botão direito. Se não fizer isso, seu trabalho será perdido. Após editar o que você desejava, clique no botão apropriado na tela do programa para salvar as alterações na ROM.

A inclusão de acentos utilizando as técnicas aprendidas neste artigo é bem simples, mas depende de alguns fatores relacionados à situação da ROM.
Primeiramente, observe no NESticle qual das pattern tables está sendo utilizada para retirar-se os tiles que contêm os caracteres do texto. Faça isso observando quais os gráficos que se encontram próximos do alfabeto desenhado. Abra então a ROM no Tile Layer e procure por aquela pattern table, ou seja, por aquele conjunto de tiles. A questão agora é você encontrar tiles que estejam livres dentro da mesma pattern table que contém o alfabeto. Certifique-se de que o tile livre que você encontrou não é o mesmo utilizado para os espaços em branco nos textos (o qual você deve realmente deixar em branco).
Selecione, então, uma letra simples para servir de base para desenhar o acento. Acrescente o acento ao desenho e retorne o tile para a posição vazia que você havia encontrado. Depois de todas as alterações, salve o arquivo.
Você deverá agora atualizar a sua tabela de caracteres para conter os novos tiles. Rode o jogo no NESticle e anote o valor dos tiles que ficaram com as letras acentuadas. Acrescente os valores à tabela normalmente.
Uma última observação para os usuários do Hexposure: mesmo atualizando a sua tabela de caracteres corretamente, o Hexposure não exibirá os caracteres acentuados de maneira apropriada, devido à própria fonte que o programa emprega na sua interface.

Aqui está uma dica interessante para a inclusão de acentos. Se você tiver dificuldades em encontrar tiles livres para adicionar os caracteres acentuados, verifique se as letras "K", "W" e "Y" ainda são utilizadas nos textos após a tradução. Estando traduzindo para o português, é possível que essas letras não precisem ser utilizadas e possam ser substituídas por letras acentuadas das quais você precisa. Tenha certeza, porém, de que elas não são mesmo empregadas durante todo o jogo.

Vimos nesse artigo que o NESticle é também um editor gráfico para suas ROMs. O site oficial é: http://www.maelstrom.net/callus/.
Este é um ótimo editor de gráficos que suporta ROMs de vários sistemas diferentes. Oferece ainda área de transferência, rotação de tiles e carregamento de duas ROMs simultâneamente, facilitando a cópia de gráficos. Use a tecla <TAB> para alternar entre duas ROMs que tenham sido carregadas em conjunto (digite o nome de ambas na linha de comando para carregá-las).
Ele está em: http://www.zophar.net/trans/tranutil.html.

| Anterior | Índice | Próximo |
© Skewer by ERTR |