Saudações treinadores! Tudo bem com vocês? Espero que sim!
Vim aqui às 2 e meia da manhã pra dizer que tive um GRANDE progresso na implementação da tradução.
Vou explicar o que estava acontecendo, as minhas dificuldades e o que eu consegui fazer para contornar o problema.
A primeira vez que eu alterei e traduzi os arquivos do jogo e testei a rom do jogo no meu 3DS não tinha funcionado.
Tentava de várias formas diferentes extrair e recompilar a .cia do jogo pra instalar e não dar em nada.
Cheguei a desistir porque o processo não era muito rápido e todos sabem como a instalação de jogos grandes são feitas de forma lenta no 3DS.
Como eu não tinha o Citra, não fazia os testes no PC. Sempre tive problemas com o Citra, é um emulador que não é muito fácil de lidar e só nas versões mais recentes ele começou a ficar mais estável.
De qualquer forma eu ainda não usava ele, mas tive uma ideia: Desinstalar a atualização do jogo do Pokémon X no 3DS e rodar o jogo sem atualização mesmo. Quando fiz esse teste, funcionou! E foi aí que tirei as primeiras fotos da tradução de teste rodando no aparelho 3DS!
Com isso, vi que era possível traduzir o jogo Pokémon X/Y, mas daí veio o dilema: Traduzir o jogo base e alertar para quem quiser jogar traduzido de não instalar atualização
ou
Tentar contornar o problema da atualização.
O Pokémon X base tem alguns bugs críticos que as atualizações de jogo corrigiram. Forçar os nossos amigos pokémaníacos a jogar o jogo sem atualizações só pra não prejudicar a tradução não seria muito legal. Ficaria com uma sensação de “incompleta”, sabe? Eu não queria ter o trabalho que tive montando e gerenciando uma equipe, traduzindo textos e testando pra não poder usufruir de todos os recursos que o jogo possui.
Nesse sentido, eu decidi tentar entregar o melhor para aqueles beneficiados pela tradução e resolvi tentar contornar o problema da atualização.
Basicamente quando se instala a atualização, os arquivos contidos nela são lidos prioritariamente pelo 3DS, ou seja, a atualização possui arquivos de texto. Por isso os textos que eu modifiquei na rom base não funcionavam, porque a atualização ficava um nível acima.
Comecei a pesquisar em fóruns, tanto nacional quanto gringos em busca de respostas, lia tutoriais, instalava programas, mexia no SD, 3DS, PC, extrair, compactar, descriptografar…
Foram mais ou menos 6 dias seguidos mexendo somente nisso.
Toda a E4T traduzindo textos e eu passando todos os dias mergulhado em arquivos .bin, .cro e etc, a fim de tentar resolver o problema e lançar a tradução da melhor maneira possível pra vocês.
Eu pensei em duas possibilidades:
1 – Tentar acessar os arquivos da .cia de atualização e tentar substituir os arquivos
2 – Tentar colocar os arquivos de texto externos ao jogo no luma do 3DS para que eles sejam lidos prioritariamente.
Então eu decidi tentar hackear a atualização, assim, se desse certo, a distribuição da tradução seria feita por um arquivo relativamente leve e que seria extremamente fácil de instalar.
Fiquei trabalhando nessa atualização por dias, extraindo arquivos, tentando editá-los diretamente mas nada funcionava.
Eu me deparei com um problema onde eu extraía a .cia da atualização (por volta de 30mb) e, quando eu remontava, ficava 33mb sem alterar nada.
Isso me fez correr atrás de vários versões de programa, .DLLs de System 32, vídeo em Francês (entendo nada mas quando se está desesperado…), tudo pra tentar descobrir o que havia de errado.
Eu sondei tanto esses arquivos que a cada dia que passava eu descobria mais coisas sobre eles. Em resumo, descobri exatamente quais eram os arquivos de texto e em qual diretório interno da rom do jogo eles se encontravam. Quando eu descobri isso, minhas esperanças voltaram e voltei ao meu laboratório de testes.
Passei a fazer testes inserindo a tradução na rom > movendo os arquivos modificados da rom traduzidos pra atualização.
Dessa forma eu imaginei que a atualização iria puxar os arquivos traduzidos que eu tinha injetado nela.
Foram mais dias de problema com a instalação da cia modificada, simplesmente não instalava.
Quebrei a cabeça até descobrir que o arquivo que eu estava criando era menor que o original.
Arquivo original: 30mb
Arquivo modificado: 15mb
Por muito tempo pensei que o problema era o compilador e recorri a várias versões diferentes, inclusive tentando extrair arquivo .cia, .cia descriptografado, .3ds e .3ds descriptografado, sempre dava erro.
Cheguei a descriptografar a .cia da atualização pra tentar extrair e ver se dava certo, mas não deu.
Num dado momento descobri que eu estava substituindo arquivos que eram mais leves, possuiam os mesmos nomes mas eram mais leves, por isso a .cia da atualização ficava mais leve. Imaginei que eram mais leves devido a esses arquivos serem originários da rom, e não da atualização.
Os companheiro do fórum deram dicas para usar uma versão mais recente do compilador na atualização e usar uma mais antiga também, acabei optando por duas versões, uma pra extrair o jogo e outra pra extrair a atualização.
Ontem quando eu consegui descobrir e resolver uns problemas de conflito do compilador com .dlls do Windows, consegui criar um arquivo .cia que instalou no 3DS.
Cheguei a quase conseguir iniciar o jogo. Já instalava mas não iniciava. O jogo ficava numa tela preta congelado, eu mal conseguia desligar o 3DS.
Voltando à prancheta, decidi eu mesmo criar a minha rom de Pokémon X. Peguei o meu cartucho e criei um arquivo .cia original só meu.
Depois de mais uma rodada de testes, extraindo e recompilando arquivos, notei que os arquivos de texto que eu tinha pego do arquivo que eu criei eram do mesmo tamanho da atualização, ou seja, os arquivos de texto que eu tinha, extraídos por alguma versão do programa + o arquivo de jogo .3DS descriptografado que baixei da internet tinham gerado arquivos com tamanhos reduzidos, fazendo eu entender que aqueles arquivos de texto nunca dariam certo.
Refiz o procedimento de inserção de textos nos arquivos da rom que criei, substituí pelos mesmos arquivos da atualização e reconstruí a .cia.
Instalei a .cia e abri o jogo.
Fiquei decepcionado no início porque os caracteres da tela de seleção de idioma de jogo estava bugada, com números aparecendo.
Mas iniciei o jogo e tudo o que eu tinha traduzido estava lá e com a atualização.
Então finalmente tive a maior das minhas ideias: 1 – Eu estava traduzindo os arquivos de texto da rom-base.
2 – Eu pegava os arquivos da rom-base e inseria na atualização
Então decido fazer o seguinte passo:
1 – Pegar os arquivos de texto da atualização e colocar na rom-base pra que eu pudesse acessar e modificar o texto.
2 – Pegar esses mesmos arquivos com o texto e reinserir na atualização
Dessa forma os arquivos ainda eram originários da atualização com os códigos da atualização.
Se eu conseguir, esse terá sido o meu último teste e nós oficialmente lançaremos a atualização em .cia traduzida para que todos possam instalar com poucos cliques e sem dores de cabeça.