Menu

Mostrar postagens

Esta seção permite que você visualize todas as postagens feitas por este membro. Observe que você só pode ver postagens feitas em áreas às quais tem acesso atualmente.

Menu Mostrar postagens

Tópicos - Anime_World

#1
Na aula anterior, aprendemos a splitar imagens e arquivos binários em pastas separadas.
Nesta aula vamos aprender a montar um Ambiente de Tradução para nosso projeto,
bem como organizar sua estrutura de pastas e automatizar os processo básicos.

Faremos uso do editor de textos VSCODE para essa função.

Para começar crie uma pasta para o seu projeto, no meu caso vou utilizar a ROM de SNES
"Rudra No Hihou (English v2.1b).sfc" logo a pasta do meu projeto será chamada de: "snes_rudranohihou"

Com a nossa pasta criada abra o VSCODE e vá na opção "File > Open Folder". Se tudo ocorreu corretamente,
a pasta será aberta no VSCODE e você verá a pasta vazia na aba EXPLORER, da seguinte forma:


Agora podemos começar a criar nossa estrutura de pastas, para criar uma pasta você deve clicar no
seguinte icone do EXPLORER:


Vamos criar então as seguinte estrutura de pastas:


Uma breve explicação da estrutura:
- "code": aqui armazenaremos nosso códigos assembly que serão importados pelo "patch.asm"
- "gfx": aqui vamos armazenar nossos gráficos
- "ips": aqui vamos armazenar os ips gerados de nossa tradução para distribuir
- "sound": aqui vamos armazenas nossos arquivos de audio
- "tbl": aqui vamos armazenar nossas tabelas de caracteres para visualização dos textos
- "text": aqui armazenaremos os scripts que dumparmos da rom
- "tools": aqui armazenaremos as ferramentas que forem usadas no processo de tradução

Com nossas pastas criadas, vamos copiar nossas ferramentas para a pasta "tools" e a rom para a raiz do projeto.
Dentro da pasta "tool" vamos armazenar todas as ferramentas que utilizaremos em nossa tradução: o bass,
o dd para separar arquivos, compressores, decompressores, dumpers, inserters...
E na raiz do projeto vamos colocar nossa ROM "Rudra no Hihou (English v2.1b).sfc":




Assim se precisarmos distribuir nosso projeto, as ferramentas já vão junto e de forma organizada.
Feito isso, já temos uma boa parte de nosso ambiente configurado e sua estrutura de arquivos pronta.
Vamos agora iniciar a automação da nosso projeto. Para isso crie um arquivo "executar.bat" se você
for usuario do Windows, ou, "executar.sh" se você for usuário Linux ou Mac.



Esse arquivo será responsável por guardar todos os comandos que serão automatizados em nossa tradução.
Você deverá inserir um comando por linha, para esse exemplo vou preenche-lo da seguinte forma:
- Primeiro os comandos que separam os arquivos da ROM
- Depois o comando do bass que executa o nosso patch e gera a rom modificada

Lembrando que como as nossas ferramentas estão na pasta tools, devemos preceder o comando com "tools\"
para que o script de automação encontre-as: "tools\bass".
A mesma coisa será para a localização dos gráficos que ficarão na pasta "gfx": "gfx\fonte.sfc"
E seguindo o que foi feito na ultima aula teremos o script de automação assim:

tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte.sfc" skip=4186112 count=1280 bs=1
pause


Veja que terminei o script de automação com o comando pause, isso é pra que seja possivel
que você visualize algum erro sem que o terminal feche. No Linux ou Mac você não precisa dele.

Agora basta executar nosso script de automação e você verá que os arquivos foram extraidos.
Você pode executa-lo dando um duplo clique sobre o mesmo como se fosse um .exe
ou abrir um prompt de comando dentro do VSCODE em "Terminal > New Terminal", digitar o nome
dele no terminal e dar ENTER.




Agora vamos adicionais mais alguns comandos de split à nossa automação para que ela fique mais divertida,
lembrando que é um comando por linha:

tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte.sfc" skip=4186112 count=1280 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte_16x16.sfc" skip=4116480 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte_vwf.sfc" skip=4124672 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\digitos_e_miss.sfc" skip=58823 count=608 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_01.sfc" skip=39808 count=12480 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_02.sfc" skip=656128 count=55168 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_03.sfc" skip=720640 count=123136 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_03.sfc" skip=853568 count=45664 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\tiles_01.sfc" skip=1376288 count=65600 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\intro_01.sfc" skip=3550208 count=30720 bs=1
pause


Feito isso basta salvar o arquivo e executar nossa automação novamente e teremos todos os gráficos
que automatizamos extraidos em arquivos separados:



Agora vamos criar nosso patch e inserir os arquivos novamente na ROM:

arch snes.cpu
endian lsb

output "Rudra No Hihou (BR).sfc",create
insert "Rudra no Hihou (English v2.1b).sfc"

origin $3FE000
insert "gfx\fonte.sfc"

origin $3ED000
insert "gfx\fonte_16x16.sfc"

origin $3EF000
insert "gfx\fonte_vwf.sfc"

origin $00E5C7
insert "gfx\digitos_e_miss.sfc"

origin $009B80
insert "gfx\sprites_01.sfc"

origin $0A0300
insert "gfx\sprites_02.sfc"

origin $0AFF00
insert "gfx\sprites_03.sfc"

origin $0D0640
insert "gfx\sprites_04.sfc"

origin $150020
insert "gfx\tiles_01.sfc"

origin $362C00
insert "gfx\intro_01.sfc"


E adicionar a execução do bass à nossa automação para executar nosso patch

tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte.sfc" skip=4186112 count=1280 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte_16x16.sfc" skip=4116480 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\fonte_vwf.sfc" skip=4124672 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\digitos_e_miss.sfc" skip=58823 count=608 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_01.sfc" skip=39808 count=12480 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_02.sfc" skip=656128 count=55168 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_03.sfc" skip=720640 count=123136 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\sprites_03.sfc" skip=853568 count=45664 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\tiles_01.sfc" skip=1376288 count=65600 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\intro_01.sfc" skip=3550208 count=30720 bs=1
tools\bass patch.asm
pause


Dessa forma sempre que executarmos nosso script de automação ele irá extrair e em seguida
reinserir os arquivos extraidos na ROM. Porém ai mora um problema, como ele extrai inicialmente
antes de inserir, caso modifiquemos um arquivo ele será substituido pelo original.
Para resolver isso conseguirmos inserir nossas modificações vamos mudar nossa estrutura da pasta
gfx para a seguinte:



Aonde a pasta "en" vai armazenar os arquivos originais em inglês e pasta "br", nossos
arquivos modificados. Isso vai ajudar inclusive, caso acontece algum problema em algum gráfico
reparar o original sem muito esforço.

Agora vamos modificar novamente nossa automação para adequar a nova estrutura:

tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\fonte.sfc" skip=4186112 count=1280 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\fonte_16x16.sfc" skip=4116480 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\fonte_vwf.sfc" skip=4124672 count=2336 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\digitos_e_miss.sfc" skip=58823 count=608 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\sprites_01.sfc" skip=39808 count=12480 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\sprites_02.sfc" skip=656128 count=55168 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\sprites_03.sfc" skip=720640 count=123136 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\sprites_03.sfc" skip=853568 count=45664 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\tiles_01.sfc" skip=1376288 count=65600 bs=1
tools\dd if="Rudra no Hihou (English v2.1b).sfc" of="gfx\en\intro_01.sfc" skip=3550208 count=30720 bs=1
tools\bass patch.asm
pause


e nosso asm patch também, porem alterando da pasta "en" para a pasta "br", que é aonde ficarão
os arquivos modificados:

arch snes.cpu
endian lsb

output "Rudra No Hihou (BR).sfc",create
insert "Rudra no Hihou (English v2.1b).sfc"

origin $3FE000
insert "gfx\br\fonte.sfc"

origin $3ED000
insert "gfx\br\fonte_16x16.sfc"

origin $3EF000
insert "gfx\br\fonte_vwf.sfc"

origin $00E5C7
insert "gfx\br\digitos_e_miss.sfc"

origin $009B80
insert "gfx\br\sprites_01.sfc"

origin $0A0300
insert "gfx\br\sprites_02.sfc"

origin $0AFF00
insert "gfx\br\sprites_03.sfc"

origin $0D0640
insert "gfx\br\sprites_04.sfc"

origin $150020
insert "gfx\br\tiles_01.sfc"

origin $362C00
insert "gfx\br\intro_01.sfc"



Agora basta executar nossa automação, e, teremos um erro pois o bass não encontrou
os arquivos dentro da pasta "gfx\br"
Copie todos os arquivos da pasta "gfx\en" para pasta "gfx\br".
Executamos a nossa automação novamente e tudo pronto.

Você pode automatizar outras coisas nesse processo, como
conversão das imagens para png, execução do emulador depois da
execução do bass, execução dos decompressores e compressores.
Enfim, fique a vontade para brincar e não esqueça de fazer backup
dos seus projetos antes que o macaco mijão passe por ai.
#2
Em nossa última aula, vimos como alterar ponteiros usando o BASS.
Nesta aula aprenderemos como extrair os gráficos para binários separados
e reinseri-los no jogo utilizando o BASS.
Esta técnica é muito util para gerenciar e controlar seu projeto de tradução,
assim se você precisar substituir um gráfico ou realizar uma revisão, não
perderá tempo reinserindo-o na rom. Bem como para mover os gráficos traduzidos
para algum espaço não utilizado na ROM ou para uma area expandida.

Para esta aula iremos fazer uso da ROM de Super Nintendo "Rudra no Hihou (English v2.1b).sfc".
Antes de qualquer procedimento, inicialmente precisaremos estudar a ROM para coletar
informações de onde estão os gráficos, com a ajuda do Tile Molester, iniciaremos nossa
busca pelo gráfico mais importante em qualquer tradução: a fonte do jogo.
Iremos encontrar esta em formato 1BPP Planar (1bit por pixel, ou seja cada byte representa 8 pixels)
iniciando no endereço 0x3FE000 em visualização de 16 linhas por 16 colunas e terminando no endereço 0x3FE500
como mostra a imagem a seguir:


Com estas informações em mãos, poderemos iniciar nosso "split" da fonte para outro
arquivo. Para isso vamos utilizar o programa "dd", que você poderá baixar aqui: comando dd caso seja um usuário do Windows.
Caso você seja usuário de uma distribuição Linux ou Mac,
o comando já vem nativamente integrado.
O uso do comando é muito simples:
dd if=rom.sfc of=grafico.sfc skip=offset_do_grafico_em_decimal count=tamanho_do_grafico_em_decimal bs=1

No nosso caso o endereço do gráfico é 0x3FE000 que em decimal dá 4186112.
E o tamanho do gráfico é 0x3FE500-0x3FE000 (endereço final - endereço inicial, o resultado será 0x500 que em decimal dá 1280 bytes.
Com base dessas informações nosso comando ficará assim, basta executa-lo em seu prompt de comando:
dd if="Rudra no Hihou (English v2.1b).sfc" of="fonte.sfc" skip=4186112 count=1280 bs=1

Agora temos a fonte extraída da jogo em um arquivo separado para edição:


Com a fonte em um arquivo separado, vamos converte-la em png para edição.
Basta selecionar a opção "Edit > Copy to..." do Tile Molester e salvar o seu arquivo png como "fonte.png".
Agora você pode edita-lo no Adobe Photoshop ou qualquer outro editor de imagem da forma que quiser.
Finalizada a edição. Vamos importa-lo novamente usando a opção "Edit > Apply From" do Tile Molester,
selecione o arquivo "fonte.png" e confirme. Não esqueça que é necessário clicar em uma área acinzentada do editor
para ele colocar o PNG no arquivo, conforme a imagem a seguir:


Com as modificações da fonte salva em nosso arquivo isolado, vamos inseri-lo no jogo usando o BASS.
Para isto faremos uso do comando "insert" do BASS, que tem a seguinte dinâmica:
insert "nomedoarquivo"

Em nosso caso:
insert "fonte.sfc"

E como visto nos tutoriais anteriores, fazemos uso do comando "origin" para especificar em qual endereço,
faremos a modificação. Nesse caso:
origin $3FE000
insert "fonte.sfc"


Ficando nosso script final da seguinte forma:
arch    snes.cpu    //; Especifica que faremos uso da arquitetura do Super Nintendo
endian  lsb         //; Especifica o Endian como Little-Endian

output "Rudra no Hihou (Modificado).sfc",create    //; Nome do arquivo que será criado com a modificação
insert "Rudra no Hihou (English v2.1b).sfc"        //; Nome do arquivo com a ROM original

origin $3FE000
insert "fonte.sfc"


Ao executar o nosso script do bass no seu prompt de comando com:
bass script.asm

Teremos a nossa rom com a modificação criada. E ao abri-la veremos presente a modificação da fonte.
Essa mesma técnica serve para outros recursos presentes na rom também. Inclusive se você quiser
separar os binários dos textos, audios ou arquivos comprimidos. O comando para reinseri-los na ROM
é o mesmo.

Além disso você pode organizar esses recursos em pastas separadas por tipos, segue um exemplo de estrutura das pastas:
- gfx\
    - fonte.sfc
    - tela_de_titulo.sfc
    - personagem.sfc
- data\
    - bloco_de_texto_1.bin
    - bloco_de_texto_2.bin
    - ponteiros_1.bin
    - ponteiros_2.bin
- sound\
    - som_1.bin
    - som_2.bin
bass.exe
dd.exe
Rudra no Hihou (Modificado).sfc
Rudra no Hihou (English v2.1b).sfc
script.asm


O que facilita na gerencia de projetos grandes em que você precisará distribuir arquivos para edição
entre os membros de sua equipe.

Estudem e até a próxima aula.

#3
Geral / Perfis no Romhackers.org
Maio 28, 2021, 01:26:57 AM
Estamos atualizando o romhackers.org para uma nova versão.
Esta nova versão suporta perfis dos usuários (exemplo: https://romhackers.org/autores/MrFox/) e linka todas as traduções dos mesmos, portanto, interessados em manter seu perfil no acervo favor preencher a ficha modelo abaixo:


---
title: "Apelido"
aka: ["Apelido1", "Apelido2"]
group: ["Grupo Seilá", "Grupo Nenhum"]
site: "//fulanociclano.wordpress.com"
email: "fulanociclano@gmail.com"
facebook: "fulanociclano"
twitter: "fulanociclano"
discord: "FulanoCiclano#0000"
github: "fulanociclano"
furt: "0"
category: ["Tradutor", "Revisor", "Editor de Gráficos", "Romhacker"]
languages: ["Inglês", "Português"]
real_name: "Fulano Ciclano"
dob: "01/01/1900"
---
Iniciou em romhacking em 2005 quando lançou sua primeira tradução... etc... etc...


Observações Importantes:

- Caso não tenha nada a preencher em algum campo deixar apenas duas aspas "" após :

- Em "aka" adicionar os apelidos quais tenha traduções lançadas, caso tenha lançado traduções sob outros apelidos.

- Em furt adicionar o ID do usuário FURT que pode ser localizado copiando o link do seu nome de usuário, exemplo:
https://www.romhacking.net.br/index.php?action=profile;u=512

Grato pela contribuição desde já!
#4
Informações sobre o jogo









Nome:Bishoujo Senshi Sailor Moon / Linda Guerreira Sailor Moon
Sistema: Mega Drive
Categoria: Beat n' Up
Jogadores: 1-2
Produtora: Ma-Ba (Bandai)
Distribuidora: SEGA
Lançamento: 1994


Introdução

Você encarna o uma das Sailor Guardiãs na luta contra Metalia que reencarnou junto de seus Shintennou. Mais uma vez as Sailors devem usar o poder de suas estrelas para combater esse mal perverso que ameaça o amor e a justiça.

Sobre a tradução






Romhacking / AsmHacking :Anime_World
Tradução :Gambas
Gráficos:Retromanx
Inserção da Dublagem (PCM/DAC): Anime_World
Projeto Original (Inglês): Supper

Após o lançamento da incrível tradução para o Inglês feita pelo Supper e com adição de VWF, dei inicio ao projeto com base em um fork do projeto dele. Porém com algumas adições além da tradução para o nosso idioma. Tive o auxilio nessa empreitada mais uma vez do companheiro de longa data Gambas na tradução dos scripts e do RetromanX no sensacional trabalho de edição gráfica que deu primazia a esta tradução. Creio ser um dos meus melhores trabalhos dos últimos tempos.

Como sempre e de praxe nos meus trabalhos, o jogo vem com a splash inserida e as travas anti-repro. Sem choradeira...

Progresso da tradução
- Logotipo traduzido
- Menu traduzido com algumas alterações em relação à tradução para inglês e o original japonês, de forma a condizer mais com o jogo além de deixa-lo bem mais bonito.
- Chamadas dos Estágios traduzidas
- Elementos da HUD traduzidos
- Fonte VWF Acentuada
- Inserida a Dublagem Clássica
- Inserida a Splash animada (com as travas anti-repro)
- Diálogos traduzidos e otimizados para aparecer de melhor forma nas caixas
- Cutscenes traduzidas e sincronizadas para os textos exibirem no tempo correto

Imagens


Preview


Patch (v1.0) (atualizado em 25/12/2020)
O Patch deve ser aplicado na ROM: "Bishoujo Senshi Sailor Moon (J) [!]"

CRC32: 5E246938
MD5: B5365025A46A2781C63E254345268BF1
SHA-1: 7565B0B19FB830DED5E90399F552C14C2AACDEB8


#5
Informações sobre o jogo









Nome:Beyond Oasis / The Story of Thor
Sistema: Mega Drive
Categoria: RPG / Hack n' Slash
Jogadores: 1
Produtora: Ancient
Distribuidora: SEGA
Lançamento: 15 de Março de 1995


Introdução

Você é o jovem aventureiro chamado Ali, que gosta de sair por aí caçando tesouros perdidos. Em uma de suas aventuras, ele encontra um artefato mágico chamado Gold Armlet. Ao colocar o artefato em seu braço, um espírito explica a ele que o Gold Armlet possui uma contraparte, o Silver Armlet. Ele diz que outra pessoa já encontrou o Silver Armlet, que possui o poder de levar o caos e a destruição na terra de Oasis. O espírito confia a Ali os poderes do Gold Armlet, que pode controlar quatro espíritos sagrados, e junto com eles deter as ambições de quem está usando o Silver Armlet. Ele conta ainda que há muito tempo atrás os braceletes foram usados numa batalha entre dois magos poderosos, que acabaram destruindo um ao outro, e os braceletes ficaram esquecidos na história..... até hoje. Assim começa sua nova aventura, você deve encontrar os quatro espíritos: Dytto, o espírito da água; Efreet, o espírito do fogo; Shade, o espírito das sombras; Bow, o espírito das plantas. Cada um desses espíritos possuem tipos de magias diferentes, e a medida que você os for encontrando, poderá acessar outros caminhos no mundo de Oasis.

Sobre a tradução







Romhacking / AsmHacking :Anime_World
Tradução :Gambas
Gráficos: Tela de Titulo / Game Over / Elementos da HUD: Kosmus
Gráficos: Fonte da Tela de Titulo / Fonte dos Menus: Solid One
Gráficos: Elementos da HUD: Joapeer

Projeto iniciado devido a existência de duas traduções bastante incompletas. Tendo este o objetivo de adicionar a fonte acentuada com caracteres latinos e edição dos gráficos. E uma revisão completa dos textos para trazer uma experiência mais adequada aos jogadores. O trabalho esta sendo executado sobre a versão Americana do jogo.


Progresso da tradução
- Logotipo Modificado para a versão JP/EU
- Menu Traduzido
- Itens Traduzidos
- Nomes dos Itens expandidos inicialmente de 8 para 16 caracteres.
   Posteriomente, modifiquei para 32 caracteres para exibi-los como descrição.
- Inserida a fonte principal com acentos
- Inserida fonte secudária (itens e status) com acentos
- Introdução traduzida
- Dialogos Traduzidos
- Tilemap e grafícos da Tela de Save Modificados
- Tilemap e gráficos da Tela de Game Over modificados
- Sound Test Traduzido
- Melhores Jogadores Traduzido
- Splash e Créditos inseridos

Imagens


Preview


Patch (v1.0) (atualizado em 13/12/2020)
O Patch deve ser aplicado na ROM: "Beyoand Oasis (U) [!]"

CRC32: c4728225
MD5:   5a79de198ed6b1ece2518574fe78d962
SHA-1: 2944910c07c02eace98c17d78d07bef7859d386a


#6
Informações sobre o jogo









Nome:Ninja Gaiden
Sistema: Mega Drive
Categoria: Beat n Up
Jogadores: 1
Produtora: SEGA
Distribuidora: SEGA
Lançamento: Não Lançado / Incompleto


Introdução

O pergaminho do clã ninja foi roubado pelos seus companheiros Jin e Rika, posteriormente, Ryu descobre que há o envolvimento da Organização Estrela e um grande plano malígno. Você é o ninja responsável por colocar ordem na casa.

Sobre a tradução





Romhacking / Asm Hack / Tradução :Anime_World
Gráficos: Tela de Titulo - Elementos da HUD: Joapeer
Gráficos: Fonte da Tela de Titulo: Solid One
Revisão:Mr.Fox
Consultas Nihongo:Arara, Matatabi (rhnet), Tashi (rhnet)



Este projeto foi iniciado à pedido do usuário Robet Phoenix do Fórum, o jogo é incompleto e nunca foi lançado, por isso tem alguns bugs durante seu gameplay. Foram traduzidos os textos em Japonês (introdução, chamada de estágios...) e os textos em Inglês (diálogos das cutscenes). Foi inserida uma fonte VWF para ambas.


Progresso da tradução
- Adicionada VWF
- Introdução em Japonês traduzida
- Logotipo Modificado
- Menu Traduzido
- Dialogos todos Traduzidos
- Corrigido bug de movimentação do personagem

Imagens
#7
Lançamentos / [SMD] Castlevania Bloodlines
Novembro 25, 2020, 17:51:59 PM
Informações sobre o jogo









Nome:Castlevania Bloodlines
Sistema: Mega Drive
Categoria: Plataforma / Metroidvania
Jogadores: 1
Produtora: KONAMI
Distribuidora: Tokuma Shoten Intermedia
Lançamento: 18 de março de 1994


Introdução

Em 1914, a feiticeira Drolta Tzuentes ressuscita ("acidentalmente", na versão norte americana) Elizabeth Bartley, uma condessa conhecida como "a sobrinha de Drácula", que decide trazer o Conde Dracula de volta à vida. Para isso, ela assassina o príncipe herdeiro da Áustria, iniciando assim a Primeira Guerra Mundial, para que as muitas almas sacrificadas na guerra estivessem disponíveis para seu propósito maligno. Mais tarde, em 1917, Elizabeth parte em uma jornada pela Europa, recolhendo as almas dos mortos para seu plano. No encalço da vampira, John Morris, usando do lendário chicote Vampire Killer, e seu amigo Eric Lecarde, usando sua lança, partem em uma jornada para impedir Bartley e Dracula mais uma vez.

Sobre a tradução







Romhacking:Anime_World
Gráficos: Solid_One
Textos: Solid_One
Tools: Anime_World
Versão: 1.0

Este projeto foi iniciado por mim e pelo Solid_One há alguns anos. Como eu havia me afastado por um tempo do ROMHacking retomamos nesses ultimos meses do segundo semestre de 2020. Várias modificações nas rotinas foram necessárias via assembly.

Imagens

 



Patch (atualizado em 25/11/2020)
O Patch deve ser aplicado na ROM: "Castlevania Bloodlines (U) [!]"

CRC32: FB1EA6DF
MD5:   0F04FC1B5BF8C9A887ABCF14CE96B0CD
SHA-1: 4809CF80CED70E77BC7479BB652A9D9FE22CE7E6

#8
Se você chegou até aqui já deve saber mais que qualquer outro as facilidades de se usar um asm patching para traduzir um jogo. Portanto, com ponteiros não será diferente. É bem mais rápido e simples edita-los por este método, sem necessidade de ficar calculando exaustivamente um por um ou de programar um Dumper/Inserter para isso.

Na aula anterior, produzimos nosso patch para alterar alguns textos no jogo Altered Beast de Mega Drive. Porém nessa aula faremos um patch novo para o jogo Yu Yu Hakusho de GBA. A ideia é variar um pouco de plataforma para mostrar a diversidade de aplicações do método e dar uma noção mais abrangente de como usa-lo em outros sistemas.

Bem vamos iniciar o nosso patch configurando ele, diferente de outras arquiteturas como N64, PSX, Mega, Snes, MSX, Master System... o bass ainda não suporta a arquitetura do GBA, porém, por ser uma ferramenta muito bem feita ele permite que você trabalhe com as ROMs sem problema algum. Sabendo disso vamos configura-lo sem a necessidade do comando arch, a nossa única mudança será o sistema de ordenação dos bytes (comando: endian) de msb que é big-endian, para lsb que é little-endian e o sistema de ordenação usado pelo GBA:


Feito isso vamos localizar os textos do Menu na ROM:



E adicionar as string ao nosso patch:


Porém se observarmos mais atentamente veremos que existe uma ENDSTRING representada por 2 bytes determinando o fim de cada string. Poderíamos simplesmente fazer desta forma para adiciona-la ao nosso patch:


Para obter organização e facilidade visual, recomendo fazer da seguinte forma:


Dessa forma atribuímos o valor a uma constante, que pode ser reutilizada inúmeras vezes e facilmente identificada.

Com todas as strings em nosso patch, podemos já traduzir porém teremos uma limitação de espaço determinada pela estrutura atual da ROM. O que nos forçaria a abreviar ou procurar sinônimos, reduzindo a qualidade de nossa tradução. Por tal motivo, ainda não inseri o comando origin que determina o offset de onde estão localizados os textos, já que abordagem ideal para isso será editar os ponteiros dos menu principal e mover as strings dele para uma área com espaço suficiente para acomodar as strings traduzidas.

Sabemos que os ponteiros de GBA são encontrados invertendo o offset (endereço do texto) e adicionando 08 ao final.

- No caso da string PLAY do menu principal o offset é 0x035894.
- Invertendo a ordem dos bytes temos: 945803.
- Adicionando o 08 ao final temos: 94580308.
- Com uma simples busca hexadecimal pelo valor encontraremos mais de um resultado. Não se assuste, são todos ponteiros para a string PLAY.


Agora que sabemos aonde estão o ponteiros para a string PLAY, vamos colocar suas localizações usando o comando origin em nosso patch:


E em seguida vamos atribuir seus valores, usando o label da string PLAY para isso:


E sem nos esquecer adicionar o 08 que vai ao final do ponteiro


Calculo introduzido, a partir de agora, independente de onde colocarmos a string PLAY, automaticamente o endereço dela será inserido no valor ponteiro. Sem necessidade de ficar recalculando a todo instante.
Todavia, ainda não temos um endereço para alocar as strings do menu principal na ROM. Precisamos encontrar um espaço adequado. Eu encontrei esse no offset 0x761B0 que parece servir bem para o propósito:


Vamos alocar as strings do Menu Principal lá então, mais uma vez usando o comando origin:

Nota:os valor dos ponteiros pode ser escrito em forma de calculo também, somando $08000000 ao label terá o mesmo efeito de adicionar db $08 depois dele, pois o bass fará a inversão do resultado. Coloquei só para que você saibam que também existe essa possibilidade.

Tudo pronto teremos o seguinte patch e em sequencia já podemos roda-lo no bass:

// ********************************************************
// *      [GBA] YuYu Hakusho - Spirit Detective           *
// *               Patch de Tradução v1.0                 *
// ********************************************************
// * Tradutor: Anime_World                                *
// ********************************************************
// * Modificações:                                        *
// *  - Textos dos Menus                                  *
// *  - Textos dos Dialogos                               *
// ********************************************************

// Sistema de Ordenação dos Bytes
endian lsb

// ROM Patcheada
output "Yu Yu Hakusho - Spirit Detective (BR).gba",create

// ROM Original
origin $0000000
insert "Yu Yu Hakusho - Spirit Detective (U).gba"

// Controle
constant ENDSTRING($0000)

// Ponteiros:
origin $00029530
    dl menu_principal_play
    db $08
origin $00029854
    dl menu_principal_play
    db $08
origin $00029ABC
    dl menu_principal_play
    db $08
origin $000358D0
    dl menu_principal_play
    db $08

// Menus
origin $000761B0
menu_principal_play:
    db "PLAY"
    dw ENDSTRING
menu_principal_music:
    db "MUSIC"
    dw ENDSTRING
menu_principal_locked:
    db "LOCKED"
    dw ENDSTRING
menu_principal_extras:
    db "EXTRAS"
    dw ENDSTRING
menu_principal_effects:
    db "EFFECTS"
    dw ENDSTRING


Modificamos o valor da string PLAY para o valor traduzido que desejarmos: "INICIAR JOGO", "NOVO JOGO", "JOGAR", "INICIAR",etc...
E se tudo estiver correto, ao verificarmos o primeiro ponteiro da string PLAY teremos o seguinte valor gravado na ROM:

E ao executarmos o jogo no emulador:



Perfeito! Como é possível verificar, não temos mais limitações para inserir os textos. Ficando livres para traduzir adequadamente os menus.

Existem outras 5 strings do menu principal: MUSIC,LOCKED,EXTRAS e EFFECTS para praticar como exercício. Os dialogos desse jogo também são bem simples e fáceis de encontrar. Sendo excelente para praticar os princípios do ROMHacking.

Na próxima aula, veremos como inserir edições gráficas na ROM usando o asm patching. Até lá.

OBSERVAÇÃO IMPORTANTE: Este não é um tutorial sobre ponteiros e sim sobre como trabalhar os ponteiros usando o asm patching, se você tem dúvidas sobre como encontrar ponteiros, recomendo que leia os tutoriais adequados para isso.
#9
Informações sobre o jogo









Nome:Bahamut Senki
Sistema: Mega Drive
Categoria: RPG Tático
Jogadores: 1
Produtora: SEGA
Distribuidora: SEGA
Lançamento: 09 de março de 1991


Introdução

O mundo de Bahamut foi dividido entre oito poderosas nações. Quatro delas são governadas por humanos ou hominídeos, enquanto, as outras quatro estão sobre controle de forças demoníacas. Cada nação agora vai em direção a guera, com o objetivo de conquistar as demais. Sua tarefa é escolher uma dessas nações e tornar-se o mais poderoso de Bahamut, derrotando todos que se estiverem em seu caminho.

Bahamut Senki é um jogo de estratégia de guerra baseado em turnos. No começo de cada turno você como líder pode tomar ações severas, recrutar soldados, declarar guerra ou estabelecer-se em cada região através de conversas diplomáticas com outros líderes. Durante as batalhes, você pode controlar várias tropas, invocar criaturas ou usar de poderes mágicos para receber a ajuda que precisa para vencer.

Sobre a tradução







Romhacking:Anime_World
Gráficos: MJay
Tools US: SuperTails66
Tools BR: Anime_World
Versão: beta 4

Este projeto foi iniciado sobre o projeto de tradução para o Inglês. O jogo originalmente em japonês faz uso de caracteres do idioma, sendo necessário diversas alterações na estrutura semântica dos textos para exibi-los corretamente. Já que em diversas partes, o jogo constrói as frases a partir de determinadas estruturas pré-definidas de texto. Foram adicionadas duas VWF pré renderizadas além dos acentos da fonte normal. A logo foi modificada também, adaptada ao português, além de adicionar uma nota de rodapé com os créditos.


Progresso da tradução
- Finais do Dean, Vastral, Shelpha,Ell Wynn, Gailum e Velfraim traduzidos, restando dos outros personagens e os final verdadeiro do Dean.
- Traduzido o menu de Heróis que estava sem tradução.
- Corrigidos vários erros apontados por Magal, Altieres Lima e ajkmetiuk. Entre eles erros de exibição e erros ortográficos.
- Corrigido bug original do jogo que só permitia defender de uma invasão com o controle 2.
- Alguns acentos nos nomes dos monstros precisam de ajustes via assembly.
- Alguns textos da tela de testes precisam de ajustes no tamanho da caixa de cor.
- Possíveis bugs ainda podem existir.
- Adicionada nova splash com efeito de chamas

Imagens


Patch BETA (atualizado em 8/11/2020)
O Patch Beta deve ser aplicado na ROM: "Bahamut Senki (J)"

CRC32: e47771c3
MD5:   a375ab11b94fcc088c21cc3b54dc8bea
SHA-1: 0aa233cc59f50b1df040cc95ba1a5cab8af4bfab

#10
Tutoriais e Documentos / [ASM PATCHING] Aula Básica - 02
Setembro 03, 2020, 22:05:36 PM
Continuando nossa aula básica de introdução a tradução via asm patching.
Se você leu a primeira aula e colocou em prática, muito bom. Se não leu clique aqui para receber a introdução adequada: http://www.romhacking.net.br/index.php?topic=1578.0

Na aula passada vimos como inserir um texto em determinado endereço da ROM usando o comando origin e o comando db, aprendemos também como criamos um label. Para esta aula, vou demonstrar como criamos uma tabela para os textos que vamos inserir. Já que é bem comum para muitos jogos não usar a tabela padrão ASCII, principalmente os em japonês que usam SJIS.

Nosso patch para o jogo Altered Beast estava desta forma:


O que executando o comando:
bass patch.asm no linux
bass.exe patch.asm no windows

produz o seguinte resultado:



se a tela ficar toda azul, ative a opção de autofix checksum do emulador.

Agora temos na introdução a palavra "PRESS START" traduzida, consequentemente, precisamos editar os outros textos do jogo. Apertando START, caímos no primeiro texto relevante a ser traduzido, a celebre frase "I COMMAND YOU TO RISE FROM YOUR GRAVE AND RESCUE MY DAUGHTER!":



para traduzir essa frase, vamos repetir da mesma forma como foi feito na aula anterior:


porem este texto usa outra tabela que não é a padrão ascii, essa tabela consiste nos seguintes valores:

00=A
01=B
02=C
03=D
04=E
05=F
06=G
07=H
08=I
09=J
0A=K
0B=L
0C=M
0D=N
0E=O
0F=P
10=Q
11=R
12=S
13=T
14=U
15=V
16=W
17=X
18=Y
19=Z
1A=[
1B=\
1C=]
1D=^
1E=_
1F=`
20=a
21=b
22=c
23=d
24=e
25=f
26=g
27=h
28=i
29=j
2A=k
2B=l
2C=m
2D=n
2E=o
2F=p
30=q
31=r
32=s
33=t
34=u
35=v
36=w
37=x
38=y
39=z
3A={
3B=|
3C=}
3D=~
DF=
E0=!
E1="
E2=#
E3=$
E4=%
E5=&
E6='
E7=(
E8=)
E9=*
EA=+
EB=,
EC=-
ED=.
EE=/
EF=0
F0=1
F1=2
F2=3
F3=4
F4=5
F5=6
F6=7
F7=8
F8=9
F9=:
FA=;
FB=<
FC==
FD=>
FE=?
FF=@


para adicionar ela ao nosso patch, faremos da seguinte forma, usando o comando map:


Assim teremos o seguinte código:

//-- ARQUITETURA DO SISTEMA: megadrive
arch md.cpu

//-- TIPO DA ROM: big-endian
endian msb

//-- ROM Patcheada: patcheada.gen
output "patcheada.bin",create

//-- ROM Original
origin $00000000
insert "rom.bin"

//-- Texto do PRESS START
origin $0000BC92
aperte_start:
    db "  APERTE  START  "


//-- Tabela de caracteres para os outros textos
map 'A', $00, 26 // Mapeia os 26 caracteres maiusculos de A-Z com valores de $00 à $19
map 'a', $20, 26 // Mapeia os 26 caracteres minusculos de a-z com valores de $20 à $39
map ' ', $FD     // Mapeia o espaço como sendo $FD
map '/', $FE     // Mapeia / como quebra de linha e valor $FE

//-- Texto do RISE FROM YOUR GRAVE
origin $00053162
rise_from_your_grave:
    db "EU ZEUS/ORDENO QUE LEVANTE/DE SEU TUMULO E/RESGATE MINHA FILHA"


que produzirá o seguinte resultado no jogo Altered Beast:



Na próxima aula, mostrarei como trabalhar com os ponteiros usando o asm patching.
#11
Esta é uma aula introdutória de como fazer um asm patching básico
usando o BASS do byuu que praticamente serve pra varias as plataformas:
Game Boy, NES, SNES, Master System, Mega Drive, Neo Geo, MSX
O que está sendo ensinado aqui são apenas os comandos básicos do "Assembler" e não nenhuma linguaguem "Assembly" específica, que fique claro.

--- Material necessário ----
- BASS Assembler do Byuu
- ROM Altered Beast (UE) (REV02) [!].gen

O assembler BASS pode ser encontrado para compilar em https://github.com/ARM9/bass
mas também é possível encontrar ele já compilado nos anexos abaixo.

---- Iniciando o Projeto ----
Primeiramente vamos criar uma pasta para o projeto e copiar para ela a ROM na qual vamos trabalhar separei pra essa primeira lição o jogo Altered Beast do Mega Drive, assim que copiarmos a rom para a pasta do nosso projeto vamos renomeá-la para rom.bin de modo a facilitar nosso trabalho.

Após isso vamos iniciar nosso patch, para isso vamos criar um arquivo de texto e salva-lo como patch.asm nossa pasta de projeto vai conter dois arquivos:

desta forma podemos abrir o patch.asm no editor de textos de nossa preferência.

---- Configurando o Projeto ----

--> Definindo a Arquitetura <--
A primeira linha que vamos escrever no nosso arquivo será pra definir a arquitetura do sistema na qual vamos trabalhar, no nosso caso vamos trabalhar com o Mega Drive na parte da CPU
portanto ficará dessa forma:
arch md.cpu

Caso estivessemos patcheando uma rom de NES ficaria:
arch nes.cpu

--> Definindo o tipo da ROM <--
Agora que a arquitetura na qual vamos trabalhar foi definida, devemos definir o tipo de rom na qual estamos trabalhando, ou seja, se ela usa sistema little endian ou big endian, no caso do Altered Beast trata-se de uma ROM big-endian:
endian msb
Porém no caso de uma ROM little-endian como acontece com SNES:
endian lsb

--> Definindo o arquivo da ROM patcheada <--
O próximo passo será definir o arquivo da rom patcheada, faremos isso usando output, desta forma:
output "patcheada.bin",create
O argumento ,create permite q o arquivo da rom patcheada seja criado automaticamente ao fim do patch. Nosso arquivo ficará assim até o momento:


--> Inserindo a ROM original <--
Assim teremos quase tudo configurado. Fata apenas inserir a rom original nele, para isso usaremos o origin e insert
origin define o offset aonde iremos inserir um comando
e insert é o comando que especifica a inserção de um binário

No caso da nossa rom original, o código ficará desta forma:
origin $00000000
insert "rom.bin"




Notem que as linhas iniciadas por // são apenas comentários que usei pra facilitar a leitura do código, elas não tem influência alguma sobre o código, são apenas para referência.

---- Criando o Patch ----
Tudo configurado adequadamente, poderemos iniciar nosso patching.

--> Definindo um LABEL para a alteração <--
O primeiro texto que iremos editar em nosso jogo é a frase PUSH START BUTTON
que se encontra no offset 0xBC92 da ROM, para patchear essa frase vamos começar definindo um label para ela, labels são rótulos para identificar pedaços do seu código. No caso vamos chamar o nosso de aperte_start:
aperte_start:

--> Definindo o offset (endereço) da alteração <--
após isso precisamos definir o offset da frase a ser patcheada na rom
vamos usar o origin novamente, antes do label
origin $0000BC92
aperte_start:


--> Inserindo a alteração <--
e para finalizar inserimos a frase traduzida depois do label, usando db:
origin $0000BC92
aperte_start:
  db "  APERTE  START  "


Nota: sempre que formos escrever um texto no asm patch colocaremos o mesmo entre aspas "



--> Executando e aplicando o Patch <--
Patch finalizado, vamos aplica-lo rodando o bass
bass patch.asm

Nota: se você for usuário de windows, copie o bass.exe para a mesma pasta e execute:
bass.exe patch.asm

se tudo ocorreu perfeitamente ao abrir a rom patcheada.bin no offset 0xBC92 teremos


essa rom usa uma tabela diferente da ASCII para exibir os caracteres
na próxima aula ensino como criar uma tabela alternativa no patch

Nota: para quem for traduzir GBA usando o BASS é só remover a linha
arch md.cpu
trocar o tipo da rom e fazer o restante normalmente.

---- Informações Adicionais ----
As outras arquiteturas suportadas pelo BASS seguem na tabela abaixo

gb.cpuGame Boy
gg.cpuGame Gear
md.cpuMega Drive
msx.cpuMSX
n64.cpuNintendo 64
nes.cpuNES
ng.cpuNeo Geo
pce.cpuPC-Engine
sms.cpuMaster System
snes.cpuSuper Nintendo
#12
O que leio para aprender o tal do ROMHacking?
- O fascinante mundo do ROMHacking - http://romhackers.org/modules/PDdownloads1/singlefile.php?cid=49&lid=17

Quais ferramentas básicas uso para traduzir um jogo?
- Editor Hexadecimal (recomendo o Windhex)
- Editor de Tiles (recomendo o TileMolester)

só isso? Só.

O que é hexadecimal?
É uma base de representação numérica.
Por exemplo, a base comumente usada por nós para representações numéricas é chamada de decimal e contém numeros de 0 a 9.
A base de representação numérica usada por computadores é a binária e contém números de 0 a 1.
A base de representação hexadecimal contém números de 0 a F:

0 1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
...FF


O que é essas coisas no editor Hexadecimal?
Para explicar melhor, separei uma imagem.

Adicionei as cores para exemplificar melhor cada item.

Em verde, estão os bytes do arquivo, aqui representados por valores hexadecimais. (Se você leu ou viu alguém chamando isso de Hexa está errado... isso se chama BYTE).
Em azul, está a representação em caractere de cada byte (que pode mudar conforme sua tabela)
Em rosa, está o endereço (posição do arquivo) que seu cursor está, comumente chamado de offset
Em vermelho, está uma barra de navegação representando os offsets de 10 em 10, nunca usa-la como referência para calcular um ponteiro. (erro muito comum de iniciantes)
Em amarelo, está a representação do byte em outras bases (Decimal, Octal, Binária)

O que é essa tal tabela usada no editor hexadecimal?
Uma tabela serve para converter os bytes do arquivo binário que você esteja editando (ROM, ISO) em caracteres reconheciveis.

O que é uma tabela 8-bits
Uma tabela 8-Bits é uma tabela em que 1 byte será convertido para 1 caractere
Exemplo:

41=A
42=B
43=C


O que é uma tabela 16-bits
Uma tabela 16-Bits é uma tabela em que 2 bytes serão convertidos para 1 caractere
Exemplo:

0041=A
0042=B
0043=C


O que é um ponteiro?
Um ponteiro é um apontamento para algum endereço da ROM ou ISO, isso quer dizer, que, o jogo quando ler aquela sequência entenderá que deve ir para outro lugar, como um atalho.


Como calculo um ponteiro?
Bem, depende de qual plataforma pertence o jogo que você está mexendo e de como isso foi programado nele.
Mas no geral ponteiros são calculados usando o endereço (offset) de onde começa um texto.

Irei alimentando este tópico conforme forem aparecendo dúvidas que eu for respondendo e achar pertinente.
#13
Título em Inglês: Wonder Boy in Monster World
Título em Português: Turma da Mônica na Terra dos Monstros

Sistema: SEGA Genesis / SEGA Mega Drive
Gênero: RPG/AVENTURA
Desenvolvedora: Tectoy
Distribuidora: Tectoy
Ano: ????

Idioma Original: Japonês/Inglês
Idioma da Tradução: Português do Brasil

Correções e Melhorias: Anime_World

Porcentagem: 100%

Este é um jogo pelo qual tenho muito carinho e marcou bastante minha infância, um dos meus primeiros RPGS! Como homenagem a Tectoy e ao Mauricio de Souza, decidi acentuar os dialogos do Jogo, Melhorar o nome dos itens nos menus removendo as abreviações, e expandir o restante dos menus abreviados. Modifiquei tambem as palavra da tela inicial para INICIAR E CONTINUAR, e TECLE START foi substituido por APERTE START. Já que são botões e não teclas. Todo o trabalho envolveu asm hacking para modificar as rotinas e descomprimir os gráficos. Para evitar a reprodução, os famosos cartuchos "REPRO" eu adicionei uma INTRO. Ou seja se você quiser jogar em cartucho, compre o original da tectoy em: www.tectoy.com.br E NÃO INCENTIVE os "REPROS" COM JOGOS TRADUZIDOS GRATUITAMENTE.

Início: Maio de 2018
Término: Maio de 2018
Versão 1.0: Maio de 2018

Descrição:
Turma da Mônica na Terra dos Monstros é um jogo criado para o console Mega Drive. O game é uma modificação de Wonder Boy in Monster World, e conta com Mônica, da Turma da Mônica, como a heroína do jogo. Foi relançado pela Tec Toy em Agosto de 2017 no Brasil, com nova embalagem, rótulo e manual.

Observações:
O Patch IPS deve ser aplicado na ROM Turma da Monica na Terra Dos Monstros (W) [!].bin de MD5 Checksum fc0671e09a03e6ca6481f34eb5e2114e


Imagens:







#14
Lançamentos / [SMD] Thunder Force 2
Maio 01, 2018, 14:56:09 PM
Thunder Force 2

Título em Inglês: Thunder Force 2
Título em Português: Thunder Force 2

Sistema: SEGA Genesis / SEGA Mega Drive
Gênero: Nave/Tiro (SHMUP)
Desenvolvedora: Technosoft
Distribuidora: Technosoft
Ano: 1989

Idioma Original: Japonês/Inglês
Idioma da Tradução: Português do Brasil

Tradutor: Anime_World
Gráficos: Solid_One
Romhacking: Anime_World
Revisores: -

Porcentagem: 100%

- Textos: 100%
- Gráficos: 99% (Restando letras nos power-ups)
- Acentos: 100%
- Ponteiros: 100%


A ROM foi expandida, uma splash do FURT foi inserida para alertar que a tradução é gratuíta portanto proíbida sua venda em cartuchos "REPRO". A ROM também não funciona nesses cartuchos!

Rotinas internas foram modificadas(ASM), novas rotinas foram inseridas (ASM) tudo para acomodar de melhor forma a tradução, com expansão, remapeamento das fontes e realocação de ponteiros.


Início: Abril de 2018
Término: Maio de 2018

  • Versão 1.0: 01 de Maio de 2018


◊ Versão 1.0 -
  Tradução Concluída


Descrição:

Jogo de ação e tiro no estilo Navinha com Side Scrolling e Vista Superior (SHMUP)

Observações:
O Patch dever aplicado na ROM Americana: Thunder Force 2 (U) [!] de MD5 Checksum 2cd56a01eef20b74ab7ea532f9b25a94

Imagens:








Download em Anexo :charuto:
#15
Lançamentos / [SMD] Rolling Thunder 2
Abril 18, 2018, 13:26:35 PM
Rolling Thunder 2

Título em Inglês: Rolling Thunder 2
Título em Português: Rolling Thunder 2 (por enquanto)

Sistema: SEGA Genesis / SEGA Mega Drive
Gênero: Ação/Tiro
Desenvolvedora: NAMCO
Distribuidora: NAMCO
Ano: 1991

Idioma Original: Japonês/Inglês
Idioma da Tradução: Português do Brasil

Tradutor: Tedenfe
Gráficos: Anime_World & Tedenfe
Romhacking: Anime_World
Revisores: Tedenfe

Porcentagem: 100%

- Textos: 100%
- Gráficos: 99% (Restando placas in-game)
- Acentos: 100%
- Ponteiros: 100%


A ROM foi expandida, uma splash do FURT foi inserida para alertar que a tradução é gratuíta portanto proíbida sua venda em cartuchos "REPRO". A ROM também não funciona nesses cartuchos!
Rotinas internas foram modificadas(ASM), novas rotinas foram inseridas (ASM) tudo para acomodar de melhor forma a tradução, com expansão e remapeamento das fontes, recompressão dos gráficos e realocação de ponteiros.

A fonte original da tela de título foi modificada pelo Tedenfe para garantir uma melhor visualização dos acentos e dar um estilo mais atual ao jogo.

Jogador 1 e Jogador 2 foram substituidos na barra de SCORE por um icone do joystick de MEGA DRIVE para melhor entendimento ao invés de J1 e J2

Foi criada uma ferramenta pra descomprimir e comprimir os gráficos, em breve posto aqui junto com o disasm.


Início: Março de 2018
Término: Abril de 2018

  • Versão 1.0: 18 Abril de 2018


◊ Versão 1.0 -
  Tradução Concluída


Descrição:

Jogo de ação e tiro no estilo plataforma.

Observações:
O Patch dever aplicado na ROM Européia: Rolling Thunder 2 (E) [c][!] de MD5 Checksum 11f8e5c12b25110e59b73ec82ab8b7b0

Imagens: