Closed leomontenegro6 closed 6 years ago
Atualizações de 01/11/2016.
Para tentarmos reaver as legendas, inicialmente isso se provou impossível na versão americana, graças ao fato das legendas estarem embutidas, e de que até o momento não existe nenhum encoder / decoder de vídeos ActImage de jogos de DS.
No entanto, ao analisarmos a rom européia ao invés da americana, descobrimos que as legendas estão externas aos vídeos, situadas nos arquivos mmXX_YY.bin, onde XX = número do vídeo, e YY = idioma. Cada um dos 5 idiomas presentes nessa versão conta com legendas individuais.
Além disso, também descobrimos que as legendas são gráficos comprimidos em LZSS 0x10, e que é possível enxergá-los a partir de programas como CrystalTile ou LaZyNDS. Desse modo, se estivéssemos traduzindo em cima da versão européia, teoricamente seríamos capazes de editar as legendas dos vídeos sem mais problemas. Mas como estamos usando a rom japonesa, nada feito.
Considerando o que foi dito, provavelmente a solução menos trabalhosa seria a seguinte: da mesma forma que foram feitas alterações no arm9.bin para poder comportar os scripts maiores da versão americana na rom japonesa, extrairmos do arm9.bin europeu as rotinas que incluem os arquivos da legenda na rom, bem como as reproduzem na tela junto com os vídeos. E isso certamente requererá alterações em ASM.
Atualizações de 11/11/2016
Após a análise anterior, e muito esforço e suor, DiegoHH conseguiu fazer as alterações no arm9.bin para comportar as legendas. Não apenas isso, como ele escreveu uma tool em python capaz de extrair e reinserir as legendas automaticamente, que não apenas recomprime os gráficos em LZSS 0x10, como também reescreve os tilemaps de cada bloco de legenda.
Graças a estas novas tools, conseguimos chegar a este resultado:
Atualizações de 30/03/2017
Depois de um tempo ocupado, consegui um tempinho para traduzir as legendas dos gráficos do Mega Man ZX, dumpados pela tool do DiegoHH. Segue as imagens editadas no GIMP:
Os arquivos já foram commitados ao repositório e estão na pasta asm/subtitles/out-ptbr.
Atualizações de 28/05/2017
Um tempo depois, DiegoHH pegou os arquivos editados por mim, e baseado neles, gerou um arm9.bin atualizado, com as seguintes mudanças:
Os arquivos já foram commitados ao repositório e estão na pasta asm/subtitles/. Para utilizá-los, siga as instruções:
No entanto, ainda é cedo para dar por certo o pleno funcionamento dessas novidades. É recomendado um teste ingame rigoroso, para averiguar que tudo está funcionando corretamente.
I've been testing the insertion of European subtitles into the Japanese ROM.
I placed the mmXX_usa.bin (renamed mmXX_br.bin) files from the European ROM into the Japanese ROM with arm9.bin modified for this exact purpose.
When testing the ingame videos, here's what I found out:
video with the transformation into Model X works OK and shows the correct subtitles;
video with the transformation into Model ZX works OK and shows the correct subtitles;
intermission video with the attack on Guardian Base works OK (it shouldn't have any subtitles and none is shown, so everything is absolutely correct);
the first video during the final battle plays fine, but shows subtitles for the next video;
the second video during the final battle crashes the game immediately when it starts.
What I did next was swapping the filenames of the last two subtitles files like this: mm05_br.bin -> mm06_br.bin mm06_br.bin -> mm05_br.bin
Doing this fixed the first of the final battle videos. It began showing the correct subtitles. But, although I expected the second (and the last) video to be also fixed by this, it still crashes the game when it starts playing all the same.
Confirmed it's affecting multiple users. I've done some tests and it's crashing on the last video.
Here's some images:
First video during final battle:
Second video during final battle (the one that crashes):
Olá! Parabéns pelo projeto! Eu não sei quase nada de romhacking, mas mesmo assim gostaria de tentar mudar a "skin" do model "A" do megaman ZXA pela do Model "X" do megaman ZX. Isso é possivel? Pois ao extrair a rom encontro vários arquivos .bin e não sei como descompacta-los. Desculpe se estou sendo inconveniente jogando minha duvida em um local que trata de outro assunto, mas não encontrei uma forma de extrair os arquivos.bin. Grato.
@willkof2 Chapa, tua pergunta não tem nada a ver com a discussão dessa issue atual (referente às legendas dos vídeos do jogo). Favor não fazer topic hijacking. Crie outras issue própria para a sua pergunta, para evitar bagunça nas discussões.
After I finally gained access to the subtitle unpacker/repacker tool, I discovered that it repacks subtitles partially incorrectly. While unpack script does its job fine, the repack one puts garbage in some of the files. If you unpack again what you just have repacked using the tool, and check the files with Tile Molester, you will find garbage in some of them (but some will be fine, so it mishandles only some subtitles for some reason):
The garbage shown above looks exactly like the one from previous post by @leomontenegro6. Here's his image for reference:
Therefore, this is not a case of a game displaying graphics incorrectly due to modifications in arm9.bin. This garbage is actually in the resource files, and it is being displayed correctly. It's a bug in the repacker script.
Also, this issue seems to be completely unrelated to the crash on the final video, which happens even when untouched and unedited European subtitle files are inserted in the rom.
So the conclusion is like this:
After the fix in the repacker script, it seems that the issue is finally gone. I tested it in the first two videos in Mega Man ZXA, and the corruption isn't present anymore. Thanks for the fix!
Apenas deixando registrado que haviam 2 bugs na parte da legenda: na tool e no assembly.
Bug na tool: a ferramenta de criação do tilemap não estava otimizada e gerava uma quantidade de tiles maior do que o tilemap podia endereçar. Assim, o endereço do tile era truncado no mapa e acabava apontando para os primeiros tiles, que seriam a primeira parte da legenda.
Bug no assembly: na hora em que montei o assembly, escrevi a tabela de ponteiros para os arquivos mmXX_br.bin da seguinte forma:
Subtitles_PtrTable:
.dw Subtitle_00 , Subtitle_01 , Subtitle_02 , Subtitle_03 , Subtitle_05 , Subtitle_06
Contudo, apesar de não haver legenda para o quarto vídeo, a tabela de ponteiros deve esperar pelo ponteiro do quarto vídeo. Com a correção, a tabela ficou da seguinte forma:
Subtitles_PtrTable:
.dw Subtitle_00 , Subtitle_01 , Subtitle_02 , Subtitle_03 , NULL , Subtitle_05 , Subtitle_06
Com isso, todos os problemas relacionados a legenda foram resolvidos.
Eu e o Geo confirmamos que o último arm9.bin enviado pelo DiegoHH de fato resolve todos os problemas de travamento, tanto na minha tradução como no undub e tradução para russo que Geo está fazendo.
Assim sendo, estou fechando essa issue e dando por resolvida a questão.
A versão japonesa do jogo conta com alguns vídeos com áudios em japonês, porém sem legendas. Já nas versões americana e européia, os vídeos foram legendados durante o processo de localização. Na americana, as legendas estão embutidas no vídeo (hardsub), enquanto que na européia, estão definidas como legendas externas que podem ser trocadas dependendo do idioma selecionado (softsub).
Um dos contras do processo de undub desta tradução, iniciado em 07/01/2016, é o seguinte: como nós movemos a tradução da rom americana para a européia, perdemos as legendas dos vídeos no processo. E isso é algo que eu gostaria de tentar reaver, se possível.
A imagem abaixo ilustra a legenda de um dos vídeos, na versão americana: