Descriptografar roms de 3DS

Iniciado por Hareon, Janeiro 21, 2019, 17:50:33 PM

tópico anterior - próximo tópico

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

Hareon

Saudações, caros confrades.

Venho por meio deste tópico solicitar formalmente auxílio dos estimados romhackers presentes neste fórum.

Como sabem, encabeço o projeto Pokémon 3DS que vem fazendo grandes avanços em uma pequena equipe.

Eu já trabalhei com outros projetos lançados deste fórum, mas como Revisor. liderando um projeto devo ser romhacker e acompanhar mais de perto o trabalho dos meus companheiros de equipe.

Gostaria que algum romhacker pudesse me esclarecer algumas dúvidas diante de algumas dificuldades que tive em relação à conversões de arquivos e programas - e se é possível fazer algumas coisas que estou planejando, vamos lá:


1) Descriptografia de arquivo .cia

Através do meu 3DS, dumpei o cartucho do Pokémon X em um arquivo .cia instalável e coloquei aqui no meu PC. O objetivo era extrair os arquivos para que eu pudesse mexer neles.
Eu já extraí um arquivo de Pokémon X, mas foi descriptografado - baixado da internet. E eu gostaria de poder produzir meus próprios arquivos vindos das versões originais que tenho para poder até ajudar outras pessoas caso elas precisem, assim como estou precisando.
Nem a .cia da rom e nem a .cia da atualização eu consegui extrair com o hackingtoolkitD9, então acredito que esses arquivos devam ser descriptografados antes de ser descompressos. O mesmo serve pra atualização. Baixei em formato .cia e não consigo acesso. Não sei se o programa hackingtoolkitD9 pode descomprimir um arquivo de atualização, de apenas 30 megas para edição. O motivo de eu querer isso é o seguinte:

2) Atualização sobrescreve tradução

No meu tópico de lançamento, onde no presente momento ainda não alterei as imagens para versões com qualidade melhor, tenho algumas fotos tiradas do meu 3DS rodando um teste de tradução.
Eu só consegui fazer a tradução aparecer no jogo no meu 3DS depois que desinstalei a atualização do Pokémon X que eu tinha.
Com essa informação em mente, acredito que a atualização tenha embutida novos arquivos de texto que são lidos prioritariamente pelo jogo. Então os arquivo que ficam no jogo base não são trazidos à leitura, fazendo com que a tradução não fique 100% funcional.

Por esse motivo eu tenho a dúvida: Será mesmo necessário eu abrir, explorar e substituir arquivos de texto dentro da tradução? Se for o caso, eu poderia lançar apenas a tradução sendo o patch de atualização modificado.
A atualização é necessária para corrigir certos bugs do jogo, então eu desejo muito que o jogo funcione com a atualização ativa no aparelho.

Isso me leva à outra dúvida:

3) Arquivos de tradução em separado no SD > luma gamepatching

Algumas traduções de 3DS são lançadas em pequeninos arquivos que são colados dentro da pasta luma no cartão SD.
Pode ser possível (como não sei criar esses arquivos, não fiz o teste) que esses arquivos fiquem numa posição ainda acima da atualização.

Se eu estiver correto, poderei despreocupadamente conduzir minha equipe nas traduções do jogo e lançar esses arquivos sem me preocupar que atualizações sobrescrevam os arquivos de texto.


Essas são minhas dúvidas no momento. Caso alguma alma caridosa possa saná-las, serei eternamente grato.
Pago com o lançamento da tradução.
:torico:
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

Solid One

#1
Citação de: Hareon online Janeiro 21, 2019, 17:50:33 PM
1) Descriptografia de arquivo .cia

Através do meu 3DS, dumpei o cartucho do Pokémon X em um arquivo .cia instalável e coloquei aqui no meu PC. O objetivo era extrair os arquivos para que eu pudesse mexer neles.
Eu já extraí um arquivo de Pokémon X, mas foi descriptografado - baixado da internet. E eu gostaria de poder produzir meus próprios arquivos vindos das versões originais que tenho para poder até ajudar outras pessoas caso elas precisem, assim como estou precisando.
Nem a .cia da rom e nem a .cia da atualização eu consegui extrair com o hackingtoolkitD9, então acredito que esses arquivos devam ser descriptografados antes de ser descompressos. O mesmo serve pra atualização. Baixei em formato .cia e não consigo acesso. Não sei se o programa hackingtoolkitD9 pode descomprimir um arquivo de atualização, de apenas 30 megas para edição. O motivo de eu querer isso é o seguinte:

Qual versão do HackingToolkit9DS (antigo "HackingToolkit3DS") você está usando? Dependendo da versão, o programa pode se comportar de maneira bastante diferente, podendo inclusive afetar seu caso.

Eu e algumas pessoas temos usado bastante esse programa para extrair jogos de 3DS, para posterior tradução. Porém, ao invés de obter a versão mais recente, tivemos sorte apenas em uma versão antiga do programa, a HackingToolkit3DS (V9).

Foi justamente a versão acima que foi usada em traduções como "Super Mario Maker" e "Dementium Remastered", se não me falha a memória. E nas próprias instruções de como aplicar estar traduções, consta o uso dessa versão em questão. Caso esteja usando uma versão diferente, tente a acima, pois pode ser que ela consiga extrair os arquivos do .cia extraído direto do seu portátil.

Citação de: Hareon online Janeiro 21, 2019, 17:50:33 PM
2) Atualização sobrescreve tradução

No meu tópico de lançamento, onde no presente momento ainda não alterei as imagens para versões com qualidade melhor, tenho algumas fotos tiradas do meu 3DS rodando um teste de tradução.
Eu só consegui fazer a tradução aparecer no jogo no meu 3DS depois que desinstalei a atualização do Pokémon X que eu tinha.
Com essa informação em mente, acredito que a atualização tenha embutida novos arquivos de texto que são lidos prioritariamente pelo jogo. Então os arquivo que ficam no jogo base não são trazidos à leitura, fazendo com que a tradução não fique 100% funcional.

Por esse motivo eu tenho a dúvida: Será mesmo necessário eu abrir, explorar e substituir arquivos de texto dentro da tradução? Se for o caso, eu poderia lançar apenas a tradução sendo o patch de atualização modificado.
A atualização é necessária para corrigir certos bugs do jogo, então eu desejo muito que o jogo funcione com a atualização ativa no aparelho.

Algo parecido com isso ocorreu na tradução recente de "Super Mario Maker" de 3DS, lançada por 'ajkmetiuk'. Segundo ele, a versão inicial do jogo é a 1.0.0, e a atualização mais recente é a 1.0.4. Na atualização mais recente, foram inseridos arquivos que sobrescrevem textos e gráficos previamente traduzidos na 1.0.0.

Justamente por isso, ele criou tanto um patch para o CIA a versão 1.0.0, como outro patch para o CIA da atualização mais recente 1.0.4. Com isso, é possível que o usuário tenha a versão mais recente do jogo, e ao mesmo tempo continue tendo todos os textos traduzidos normalmente. Mas claro, isso se o usuário instalar manualmente ambos os CIA, um seguido do outro. Se for baixar direto dos servidores da nintendo, dados da tradução continuarão sendo sobrescritos.

É uma solução meio porre, pois toda vez que tiver atualização, você possivelmente terá que pegar o seu respectivo CIA, modificá-lo e gerar patches. E caso for dar suporte a outras localizações como americana e européia, o trabalho duplica facilmente.

Bom, isso é o que eu entendo mais ou menos da questão das atualizações. O próprio 'ajkmetiuk' pode dar mais detalhes, explicar melhor a questão, e provavelmente dar uma solução mais prática do que esta.
"Quem não vive para servir, não serve para viver."

Hareon

Muito obrigado pela resposta!

Sim, a versão do HackingToolkit que estou usando é o 3DS, confirmando agora a versão 5.7.0.0

Vou testar outras versões pra ver se funciona.

No caso da atualização, que bom que ele conseguiu traduzir a atualização! Vou ter que fazer isso também. Como Pokémon X/Y não lançam mais atualizações então eu não teria retrabalho com isso. Só me resta saber como acessar a .cia. Bom, tentei com o programa hackintoolkit e não deu certo, mas vou tentar em outra versão pra ver se funciona a extração e o acesso.
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

Hareon

Estou tendo problema com a .cia de atualização do jogo.

Consegui extraí-la com algumas versões do hackingtoolkit (versão 9 e 10), mas tenho problemas para remontar.

Basicamente consigo extrair os arquivos, mas ao remontar, mesmo sem alterações, o arquivo .cia criado tem um tamanho maior.

O original é 30mb, o extraído e remontado é 33mb.

Daí, se eu altero os arquivos de texto da atualização, magicamente ao remontar fica com 15mb.

Eu fico tipo, wtf...

E mesmo sem alterar, só de ter extraído e remontado não está instalando no 3DS. Fica dando erro de NCCH.

Pesquisando na internet eu vi que falavam que isso é problema no tamanho do arquivo, mais relacionado a problemas de SD/SD pirata, mas não é o caso. Quando coloco o arquivo de atualização original instala normalmente. O problema está sendo alguma coisa da extração/remontagem que está sendo feito errado pelo hackingtoolkit.

Alguém já passou por um problema parecido? Existe algum outro programa ou versão que possam recomendar pra eu testar e ver se consigo resolver o problema?

Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

Solid One

Não sei quais instruções para extrair / remontar CIAs você está seguindo, mas nos testes que fiz com o "Ace Attorney Trilogy" tanto no CIA americano como europeu, os arquivos ficaram praticamente com o mesmo tamanho. Além disso, eu consegui testá-los normalmente pelo emulador Citra, através da opção de "Instalar CIA" que consta nele.

De todo modo, escrevi recentemente essas instruções para extrair e remontar CIAs:

Extração:


  • Tenha em mãos a rom do Pokémon X, seja em formato CIA ou CXI / 3DS;
  • Baixe a ferramenta "HackingToolkit9DS", preferencialmente a versão 9. A mesma pode ser encontrado no site https://github.com/Asia81/HackingToolkit9DS-Deprecated-/releases;
  • Descompacte os arquivos da ferramenta acima para uma pasta de nome, digamos, "PokemonX" (sem espaços nem caracteres especiais, por desencargo de consciência);
  • Copie a rom, do item 1 acima, para a pasta "PokemonX", e depois renomeie-a para um nome simplificado, sem espaços e traços (Ex.: PKMNX.cia, PKMNX.cxi ou PKMNX.3ds);
  • Execute primeiro o "SetupUS.exe" para efetuar configurações iniciais do programa, e em seguida execute o "HackingToolkit9DS.exe";
  • Com o "HackingToolkit9DS" aberto, agora vamos escolher o método de extração de arquivos:
    • Caso sua rom esteja em formato CIA, digite "CE" e tecle Enter;
    • Caso sua rom esteja em formato CXI / 3DS, digite "E" e tecle Enter;
  • Após escolher o método de extração do item 6, digite o nome da rom conforme citado no item 4, porém sem extensão (Ex.: PKMNX);
  • Se ele perguntar para descomprimir o "code.bin", confirme que sim. E para as duas perguntas seguintes, digite 0 e tecle Enter em ambas;
  • Caso os passos acima tenham sido feitos corretamente, os arquivos extraídos da rom estarão na mesma pasta da ferramenta, sendo dividido em várias pastas de nome "ExtractedBanner", "ExtractedExeFS" e "ExtractedRomFS".

Remontagem da rom modificada:

  • Execute novamente a ferramenta "HackingToolkit9DS.exe" citado na extração;
  • Com o "HackingToolkit9DS" aberto, agora vamos escolher o método de remontagem da rom modificada:
    • Caso a rom extraída esteja em formato CIA, digite "CR" e tecle Enter;
    • Caso a rom extraída esteja em formato CXI / 3DS, digite "E" e tecle Enter;
  • Após escolher o método de remontagem do item 2, digite o mesmo nome da rom que você feito no item 7 da extração (Ex.: PKMNX);
  • Para as duas perguntas seguintes, digite 0 e tecle Enter em ambas;
  • Caso os passos acima tenham sido feitos corretamente, a rom remontada estará na mesma pasta da ferramenta, com nome de arquivo "PKMNX_Edited.cia" ou "PKMNX_Edited.cia".

Veja se as suas instruções batem com as acima, e caso positivo, se surte algum efeito no tamanho do arquivo, e/ou funciona normalmente, seja no próprio portátil ou em emuladores.
"Quem não vive para servir, não serve para viver."

Hareon

#5
Obrigado pela resposta Solid.

Sim, a versão 9 também foi testada por mim. Testei tanto a 5.7, quanto a 9 - 12.

A 9 e a 10 tiveram os melhores resultados pois não retornaram erros.

Quanto ao procedimento é exatamente esse que estou fazendo.

Agora analisando melhor, o que eu estou extraindo e está tendo essa diferença de arquivos é a update. No caso da rom, ainda não remontei ela, mas acredito que esteja ok montar a tradução com a rom, pois deu certo na primeira vez que testei (eram as imagens antigas que eu tinha testado no 3DS inclusive).

Eu só queria tentar resolver o problema com a update porque eu poderia liberar a tradução inserida na atualização que é gratuita, seria um meio melhor, leve e mais fácil do que fazer o jogador baixar programas extras e ter que aplicar a tradução na rom.

Vou ver se arrumo outro programa pra tentar acessar.

Lembrando que a rom do Pokémon X tem aquele lance que o Citra demorou de emular, o hardware de som. Não sei se ele influencia em alguma coisa pra estar dando esse problema.

EDIT: Talvez a .cia esteja criptografada. Vou ver se tento descriptografar e extrair.

******************************

EDIT 2 1h depois:

Fiz umas coisas e sinto que estou cada vez mais perto de resolver esse caso.

Vamos aos fatos:

1 - Tenho o Update 1.5 em cia.
2 - Tenho a rom extraída do jogo descriptografado em várias pastas para edição
3 - Sei quais são os arquivos da pasta romfs que são de texto
3 - Ao substituir os arquivos da tradução pelos arquivos originais de texto do jogo:
                         Arquivo gerado 50% menor.
4 - Erro ao instalar atualização modificada ou atualização remontada mesmo sem modificar
5 - Curiosidade:
     Arquivo original 30mb
     Arquivo extraído e remontado 32mb
     Arquivo extraído, modificado e remontado 15mb

Essa era a situação que eu estava enfrentando. Qualquer arquivo que eu montasse, não instalava no FBI do 3DS.

Então tive a ideia de descriptografar a .cia original da atualização. No PC é um procedimento complexo. Complexo mesmo. Complexo até demais. Então recorri a uma alternativa usando o GM9.

Descriptografei a .cia e voltei ao PC com o novo arquivo. O arquivo .cia descriptografado possui exatamente o mesmo tamanho do arquivo original.

Então...

Com a versão V10 do Hackingtoolkit extraí, sem sucesso. As pastas estavam saindo como arquivos .bin.
Então com a versão V9 eu consegui extrair, aparentemente com tudo ok.

Para testes: Criei dois arquivos novamente, um sem modificar e um modificado.

O tamanho dos arquivos ficaram semelhantes aos arquivos extraídos anteriormente, com o arquivo modificado tendo 15mb.

**************************

1 - Voltei ao FBI.
2 - Instalei a .cia modificada (15mb) e para a minha surpresa INSTALOU!
3 - Iniciei o jogo através do cartucho
4 - Tela preta. Um travamento que persiste após desligar. Depois de clicar em desligar o 3DS, ainda tem que clicar e segurar o power mais um tempo pra desligar definitivamente.
5 - Desinstalei a atualização modificada e reinstalei a atualização extraída-remontada sem modificar só pra saber se o problema estava mesmo sendo a alteração ou na hora de montar o arquivo.
6 - Instalou com sucesso, assim como o arquivo anterior
7 - O jogo iniciou e rodou normalmente.

Foi então que tive a ideia de recriptografar a .cia da atualização.

Voltei ao GM9 e criptografei o arquivo de 15mb.

Desinstalei a atualização anterior e instalei a de 15mb.

Iniciei o jogo. APARECEU A LOGO DO 3DS e depois travou novamente.



Creio que estou mais perto agora que sei que estou fazendo a compilação correta. Só falta descobrir quais arquivos estão dando problema e que aparentemente não estão sendo compatíveis na recompilação.

Aceito ideias, tô tentando todas as possibilidades aqui.
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

ajkmetiuk

#6
Não sei se pode te ajudar, mas como o Solid One mencionou acima tb tive problemas semelhantes com essa coisa de traduzir o jogo + o update, no mario maker passei pela mesma situação, eu extraia a atualização mas não conseguia fazer o repack, sempre dava errado, dai o usuário Magalicia no chat RHBR me passou um arquivo para usar junto da última versão do PackEnglishV12, o que comigo dava problema era tudo relacionado com o makerom.exe que fazia o repack da .cia, foi só substituir pelo que foi disponibilizado que funcionou normal, extrai, traduzi e compactei de volta normalmente, vou deixar em anexo o arquivo que ele me passou dai vc substitui na pasta onde vc instalou o HackingToolkit9DS.

Ah, outra coisa, se vc instalou a atualização, colocou a tradução no luma, traduziu os arquivos do update, substituiu pelos da versão 1.0 do jogo e não funcionou, só fazendo repack mesmo e instalando diretamente do .cia, no mario maker não ia de jeito nenhum pelo luma os gráficos traduzidos, só texto eu consegui alterar, por isso nem disponibilizei pelo luma para não ficar uma tradução parcial. Espero que funcione no seu caso tb... boa sorte!
supremex!

Hareon

Muito interessante a sua colocação ajkmetiuk.

Eu cheguei a tentar usar o V12 que mencionou. Aparentemente ele extraía normalmente os arquivos, mas quando eu tentava remontar a .cia, dav aum erro solicitando dois arquivos .dll em falta, VCREDIST alguma coisa lá do VisualC do Windows.

Ainda cheguei a instalar a versão 2017 que é a última mas não adiantava. Depois vi que a .dll solicitada era uma .dll de uma versão debug do vcredistx64, tão tenso que nem renomeando a .dll original dava certo. Em resumo acabei ignorando o v12 e o v11 por causa de erros que ambos apresentavam.

Mas vou testar nesse momento esse arquivo que vc passou pra ver. Aproveitando que ainda to com a .cia descriptografada aqui.

E eu ainda não fiz nada de tradução pelo luma, na verdade porque eu ainda não sei que tipos de arquivos devo extrair pra colocar lá.

Na verdade essa era a minha primeira opção, mas como não achei um tutorial pra isso, eu estava tentando aplicar meus próprios métodos na raça mesmo hahah! Gráficos ainda não senti a necessidade de alterar, mas provavelmente eu vá precisar (daí começa outra dor de cabeça).

Pelo menos agora sei que alguém além de mim teve problema com update. Não estou sozinho haha!
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

ajkmetiuk

Citação de: Hareon online Janeiro 24, 2019, 22:19:29 PM

Eu cheguei a tentar usar o V12 que mencionou. Aparentemente ele extraía normalmente os arquivos, mas quando eu tentava remontar a .cia, dav aum erro solicitando dois arquivos .dll em falta, VCREDIST alguma coisa lá do VisualC do Windows.

Ainda cheguei a instalar a versão 2017 que é a última mas não adiantava. Depois vi que a .dll solicitada era uma .dll de uma versão debug do vcredistx64, tão tenso que nem renomeando a .dll original dava certo. Em resumo acabei ignorando o v12 e o v11 por causa de erros que ambos apresentavam.

sim, esse makerom.exe corrige esse problema, provavelmente você vai conseguir extrair/comprimir normal com ele
supremex!

Hareon

#9
Como estou praticamente fazendo uma permutação de possibilidades, vou contar passo a passo do que fui fazendo aqui.

Bom, fui procurar o V12 e vi que tinha uns packs de programas extras. uma das pastas tinha inclusive as .DLLs que estavam faltando e que davam erro antes.
Nesse caso como eu não testei a possibilidade com a .DLL, decidi fazer o teste do makerom depois.
No leia-me do programa V12 é dito que não deve ser usado com rom descriptografada:

"Before report an issue, be sure:
- Your 3DS|CIA|CXI file is clean and not decrypted by Decrypt9 or GodMode9."


Nesse caso, peguei a atualização oficial .cia e coloquei na pasta. Instalei o setup antes de correr o programa e ajustei na pasta com a .cia.

Extraí a .cia e foi.
Daí começaram os testes:

1 - Remontar a .cia sem alterar nada
     Antes o arquivo ficava maior nesse modo, alterava algo que eu não sabia o que era. Dessa vez ficou do mesmo tamanho.
2 - Remontar a .cia substituindo os arquivos de texto brutos (que tirei da pasta de textos do arquivo .3DS extraído e descriptografado)
     Antes o arquivo ficava com 15mb, dessa vez ficou com 13mb.

Então eu fui verificar o que tinha de errado, entrei na pasta e saí comparando cada arquivo , e vi que os arquivos de texto que eu estava dando replace realmente eram menores, enquanto um arquivo dava uns 2mb, o arquivo que eu substituia podia pesar 400k. Então foi aí que eu notei o motivo de estar mais leve: os próprios arquivos que eu tava pegando da rom extraída e traduzida estavam com esse peso.

Achei um arquivo que tinha tamanho compatível com o que estava na update e substituí apenas ele, criando uma terceira .cia:

3 - Remontar .cia com apenas um arquivo de mesmo tamanho do original.
     
Vamos chamá-los de:
     - xumpupdatesemmexer.cia 30.27mb
     - xupmexido.cia 13.34mb
     - mexidinhaso.cia 30.27mb

Instalei o xupmexido que tinha todos os arquivos alterados.
     * Instalou corretamente
     * Em cima do ícone do jogo no Home Menu, apareceu mensagem que tinha update disponível, ou seja, aparentemente não identificou.
     * Entrei no jogo, apareceu a LOGO do 3DS e travou como na última vez.


Reiniciei o 3DS e fui pra segunda opção. Desinstalei a anterior e fui pegar a mexidinhaso.cia
     * instalou corretamente
     * Em cima do ícone do jogo no Home Menu, apareceu mensagem que tinha update disponível, ou seja, aparentemente não identificou.
     * Entrei no jogo, apareceu a LOGO do 3DS, iniciou normalmente e dentro do jogo aparece como 1.5. Como o único arquivo que eu substituí - que é o mesmo tamanho do original - como nem sei exatamente onde está esse arquivo (imaginei que seria o menu de seleção de idiomas, mas estava em inglês), então acho que nada mudou teoricamente, não tem tradução mas continua funcionando. O único detalhe é que no menu Home ainda diz que tem atualização pro software, mas não pede pra atualizar.


Instalei o xupdatesemmexer.cia
     * Instalou normalmente
     * Em cima do ícone do jogo no Home Menu, apareceu mensagem que tinha update disponível, ou seja, aparentemente não identificou.
     * Entrei no jogo e rodou, identificando a versão mas com o mesmo detalhe do home menu anterior.

Feitos os testes concluí que:
     - Descomprimir e remontar a .cia é ok para o programa.
     - Fui descomprimir os arquivos do jogo a fim de comparar o arquivo original de textos, se era mesmo mais leve ou ficou depois que eu mexi neles.

Para a minha surpresa, na descompressão não apareceu as pastas exefs e romfs... Mas somente a .bin dessas pastas.
Tentei usar as opções de "Write FS1/2 for extract a ncch partition" ou "extract a file partition" que dentro das opções ainda tinha referenciando pra digitar com extensão os arquivos a extrair... Mas nada. Nenhuma das duas opções consegui extrair nada da RomFS.bin.

Nesse momento pensei o seguinte:

     - O arquivo de rom que eu extraí, era um .3DS descriptografado. Então se eu pegar a rom dumpada.cia que eu peguei do cartucho original e descriptografar no 3DS com o GM9, talvez eu consiga extrair os arquivos internos.
     - Eu não pensei em descomprimir o .3DS antes por causa daquele aviso lá em cima do criador do programa que falava pra não extrair as descriptografadas.
     - Pensei em descriptografar a .cia ao invés de usar o arquivo .3DS. Talvez descriptografando a .cia do jogo original eu conseguisse acessar as pastas na extração.

Para a minha surpresa o GM9 já disse que a .cia era descriptografada, me restando extrair do .3DS.

Extraí o jogo .3DS e não saiu as pastas exefs ou romfs de novo. Apenas a .BIN delas...
Acho que era a versão do programa...

Abri o hackingtool pra ver se pelo menos do jogo dava pra extrair essas pastas, já que da .cia eu falhei.

     1 - FS2 - extract a file partition
     2 - 2 = extract contents from DecryptedRomFS.bin
Write your choice : 2
     3 - Extraction done!

Nada apareceu. O mesmo serve na NCCH partition, a extração dura 1s e não extrai nada.

********************************************************************************************E

Eu já estava quase desistindo da versão desse programa quando me lembrei do makeroom.

Mas depois vi que ele é pra fazer a recompilação e o problema foi a extração.

Bom, vou voltar a mexer na versão V9 pra mexer na rom e a V12 pra montar a atualização.

Amanhã eu apareço com novidades pq vou dormir, já são 5 da manhã e eu virando a madrugada mexendo nisso kkkk

Na verdade hoje. Digo amanhã pq enquanto eu não acordar, é amanhã!!!

:tonto:
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

Hareon

Saudações"

Tudo bem com vocês? Espero que sim!

Vim aqui às 3 da manhã pra dizer que tive um GRANDE processo 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, possuíam 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 companheiros 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.
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

w0nd3rb0yfx

Sugestão, já que tem um 3ds, use o formato do luma para editar e aplicar as traduções. E quando estiver satisfeito, pode distribuir em formato cia e do luma para atingir o maior número de usuários.

https://github.com/AuroraWright/Luma3DS/wiki/Optional-features
Em "LayeredFS"

:parabens:

Hareon

#12
Obrigado pela sugestão, amigo. Vou dar uma olhada nesse link hoje mesmo.

Aproveitando a situação, vim compartilhar com vocês uma importante conquista!

Estive em meu laboratório fazendo meus experimentos e minhas pesquisas (nenhum animal foi ferido no processo) e consegui fazer a .cia da atualização funcionar definitivamente!

Explicando resumidamente:

Antes eu pegava arquivos da ROM (traduzidos) e inseria nos arquivos da atualização.
Dessa forma bugava alguns gráficos e textos.

Dessa vez fiz o contrário:

Peguei os arquivos da atualização
Inseri esses arquivos na rom (substituindo os da rom)
Importei os textos traduzidos para esses arquivos
Coloquei esses arquivos de novo na atualização

Recompilei tudo, instalei no 3DS e... SUCESSO!

Sem bugs e funcionando perfeitamente!

Só há um detalhe que eu não consegui resolver, que no menu Home fica aparecendo que ainda tem atualização disponível para baixar. Ele não chega a querer baixar, mas a mensagem aparece. Tirando esse detalhe, por enquanto está tudo perfeito no 3DS.



Mas em contrapartida no Citra parece não funcionar da mesma forma.

Instalando a atualização ela aparece como Região Inválida, some o ícone do Pokémon X e quando eu abro o jogo vejo que ela não é aplicada, continuando tudo em inglês.

Quando vou remontar a ROM, o hackingtoolkit só pergunta duas numerações da versão, a segunda e a terceira.
A versão da atualização é 5.7.0 mas fica como 0.7.0 porque o "5" que é o primeiro número não é perguntado pra eu preencher.

Talvez esse problema da região seja a causa pra que aparece "atualização disponível" no home menu, mas aqui no Citra pelo menos parece que meu trabalho não terminou.


Será o caso do Citra de eu ter que extrair os textos e criar algum patch tipo xdelta pra aplicar em rom? Se for assim os jogadores de citra vão acabar jogando sem atualização mesmo...



*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-


EDIT: Coloquei os arquivos na pasta luma e funcionou.
Só funciona com a versão de atualização. Nesse caso distribuir fica ainda melhor porque não precisa de baixar 35mb pra atualização, ficou até melhor assim.

Só sigo mesmo no problema pra criar uma versão pra Citra.
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/

ajkmetiuk

Citação de: Hareon online Janeiro 26, 2019, 17:22:39 PM
Só há um detalhe que eu não consegui resolver, que no menu Home fica aparecendo que ainda tem atualização disponível para baixar. Ele não chega a querer baixar, mas a mensagem aparece. Tirando esse detalhe, por enquanto está tudo perfeito no 3DS.

eu tb não consegui resolver isso mas tb não interfere em nada e o citra acho q não suporta instalação de update, no emulador acredito eu que só funcione a 1.0 mesmo... Que bom que vc conseguiu resolver o problema dos arquivos!
supremex!

Hareon

Sim! Me sinto muito mais aliviado agora que já resolvi 50% do problema.

Jogadores de 3DS estão ok, só falta os de PC. parece que tem um programa xdelta que faz isso, de patchear uma rom. Os de PC arranjam a rom e colocam a tradução.

Se for o caso vou ter que fazer uma versão só pra PC. Como eles não vão usar a atualização, vou ter que usar os arquivos de texto da rom base pra montar o patch.

Agora o problema só vai ser como montar o patch. Vou caçar uns tutoriais aqui pra ver se consigo resolver o problema, afinal, nunca mexi no xdelta.
Projeto Pokémon Brasil - Elite dos Quatro Traduções
Projeto Zelda Brasil - Heroes of Time
Fórum da E4T: https://e4t.com.br/forum/