[GB] Wizards & Warriors Chapter X - The Fortress of Fear

Iniciado por Hawksd, Julho 13, 2026, 09:14:29 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Hawksd


Nome: Wizards & Warriors Chapter X - The Fortress of Fear
Plataforma: GameBoy
Desenvolvedora: Rare
Distribuidora: Acclaim Entertainment
Ano de Lançamento: 1990
Gênero: AÇÃO/PLATAFORMA
Idioma Original: Inglês
Rom utilizada:Wizards & Warriors Chapter X - The Fortress of Fear (USA, Europe)
Status da Tradução:90%
Final do Projeto: 13 de Julho de 2026
Imagens: https://imgur.com/a/E6TZ2QX


Equipe:
W.Souza - Romhacking e tradução

Enredo:
A incrível saga de Wizards and Warriors continua. Na pele de Kuros, você entrará na temível Fortaleza do Medo em sua busca pelo Mago do Mal, Malkil. Centenas de confrontos com inimigos o aguardam. Morcegos mortais e outras criaturas voadoras atacam do alto. Bolas de fogo abrasadoras e flechas disparam em sua direção. E aranhas arrepiantes e esqueletos mortos-vivos surgem da escuridão. Derrote a todos! Apenas aqueles com os corações mais sombrios habitam os 18 níveis de jogabilidade desafiadora. Mas as recompensas são grandiosas: riquezas inimagináveis, chaves para tesouros há muito perdidos, além de feitiços e poções mágicas. E que recompensa melhor você poderia desejar do que um confronto final com o próprio Mago do Mal, Malkil? Cuidado, Kuros. Outros já se aventuraram na Fortaleza do Medo, mas nenhum retornou com vida.

Green Jerry

Pra mim os textos ficam bugados, preciso de alguma versão específica? O CRC32 da minha ROM é 104eb503.


Hawksd


ØX-Carnage

Parabéns pela tradução. Não conheço o jogo mas acho que vale a apena dar uma chance.
Percebi que as traduções que está lançando precisam de revisões.
Na primeira imagem esta como "PRESENTA" não conseguiu achar o ponteiro dela?

Hawksd

Foi mais a questão de limitações de espaço de caracteres do jogo

Green Jerry

Citação de: Hawksd online Julho 14, 2026, 08:22:14 AMA ROM que utilizei CRC32 é 4B139FFE
Não achei essa ROM específica, só acho a com CRC32 104eb503, que é a única versão disponível deste jogo. Você poderia ter informado o nome do arquivo como você fez na tradução do Sunsoft Grand Prix.

ØX-Carnage

Entendi, fiz um teste diretamente na ROM para verificar como esta esse texto.

Vou mostrar resumidamente o que encontrei e como a alteração foi feita.

Na ROM original, a palavra "PRESENTS" estava armazenada como texto comum no endereço:

0x1D2D

Os bytes encontrados foram:
50 52 45 53 45 4E 54 53
P  R  E  S  E  N  T  S

O texto ocupava oito posições, de:
0x1D2D até 0x1D34

Logo depois, em 0x1D35, começava o próximo comando usado para montar a tela.

Como:
PRESENTS  = 8 letras
APRESENTA = 9 letras

Não era possível simplesmente escrever "APRESENTA" por cima. A nona letra apagaria o dado seguinte e poderia corromper a tela.

Portanto, a limitação realmente existia naquele espaço específico, mas isso não significava que a tradução precisava ser abreviada.


A palavra "PRESENTS" fazia parte de um bloco maior, iniciado no endereço:
0x1D13

Esse bloco continha várias informações usadas para montar a tela de apresentação, incluindo o texto e o gráfico do título.

Para localizar os pontos do programa que utilizavam esse bloco, procurei pela referência ao endereço 0x1D13.

No Game Boy, os dois bytes de um endereço aparecem invertidos dentro da ROM:
0x1D13 aparece como 13 1D

Encontrei a sequência abaixo em dois lugares:
21 13 1D CD AF 17

Endereços das duas referências:
0x22DC
0x2AD3

De forma simples, essa sequência dizia ao jogo:
CitarUse o conteúdo que começa em 0x1D13 e envie esse conteúdo para a rotina responsável por desenhar a tela.

Ou seja, havia dois pontos diferentes do programa utilizando o mesmo bloco.


A ROM original tinha 64 KB. Ela foi expandida, criando uma nova área livre a partir de:

0x10000
O bloco da tela foi copiado para:

0x10010

No bloco original, "PRESENTS" estava 0x1A bytes depois do início:
0x1D2D - 0x1D13 = 0x1A

Aplicando a mesma distância na nova posição:
0x10010 + 0x1A = 0x1002A

Portanto, "APRESENTA" foi inserida no endereço:
0x1002A

Agora havia espaço suficiente para as nove letras sem apagar os dados seguintes.


A nova área fica em outro banco da ROM. Por isso, foi criada uma pequena rotina no endereço:

0x3FB3
Essa rotina faz quatro tarefas:

  • guarda qual banco da ROM estava sendo usado;
  • abre temporariamente o banco onde está o novo bloco;
  • manda o jogo desenhar a nova tela;
  • restaura o banco anterior para o jogo continuar normalmente.

As referências encontradas em 0x22DC e 0x2AD3 foram alteradas para chamar essa nova rotina.

Antes:
21 13 1D CD AF 17

Depois:
CD B3 3F 00 00 00

O trecho:
CD B3 3F

significa, de forma simplificada:
CitarVá até a nova rotina localizada em 0x3FB3.

Os três bytes 00 apenas completam o espaço restante da instrução antiga.

Também foi atualizado o tamanho informado no cabeçalho da ROM e recalculadas as verificações internas do arquivo.

O resultado foi "APRESENTA" funcionando normalmente, sem apagar os dados seguintes e sem corromper a tela.


O título "WIZARDS & WARRIORS" funciona com a mesma logica.

O título é composto por tiles de 8×8 pixels.

O mapa que organiza esses tiles na tela estava dividido em duas linhas:

Primeira linha: 0x1D35 até 0x1D58
Segunda linha:  0x1D59 até 0x1D7C

Esses endereços possuem números que indicam quais tiles devem aparecer em cada posição da tela.

Para testar "MAGOS & GUERREIROS", foi necessário:

  • criar novos tiles com as letras da tradução;
  • colocar os novos gráficos na área expandida da ROM;
  • alterar o mapa da tela para usar os novos tiles;
  • aumentar a quantidade de posições da segunda linha para comportar "GUERREIROS".

Portanto, a limitação do gráfico também estava relacionada apenas ao espaço e à quantidade de tiles disponíveis no local original.


A limitação de espaço original realmente existia, tanto para o texto quanto para o gráfico.

Para isso, bastou expandir a ROM, copiar os dados para uma área livre e redirecionar os pontos para esse novo endereço.