Fórum Unificado de Romhacking e Tradução

Romhacking e Tradução de Jogos => Dúvidas e Ajuda => Tópico iniciado por: unneon online Dezembro 03, 2025, 23:15:46 PM

Título: [Switch] Extrair arquivos para fazer tradução
Enviado por: unneon online Dezembro 03, 2025, 23:15:46 PM
Boa noite, desculpa pelo post um pouco preguiçoso, mas gostaria saber se alguém tem o caminho das pedras pra extrair e alterar arquivos de jogos de switch.

No caso, gostaria de lançar uma tradução para Rakuen Deluxe (que inclui Rakuen e Saitou). Eu trabalhei na tradução não-oficial de Rakuen pra PC (https://github.com/JoaoFelipe/rakuen-translation) e na tradução oficial de Saitou. Cheguei a fazer uma ferramenta pra descompactar arquivos da engine mori (o repositório está privado, mas posso dar acesso se pedirem), que acredito ser a usada na versão do switch. Imagino que lançar a tradução pra switch seja mais uma questão de organizar arquivos e fazer uma ou outra alteração, já que são dois jogos em um.

 
O único problema é que não sei como extrair os arquivos do jogo. A última vez que fiz qualquer coisa de romhacking foi na época do DS, em que tinham ferramentas que faziam pack e unpack com um comando hahaha. Resolvi voltar aqui no forum pra perguntar (nem lembro meu login antigo).

Enfim, o que tentei até agora foi usar a ferramenta nstool para extrair o .nsp. Isso gerou vários arquivos .nca, um arquivo .cert e um arquivo .tik. Quando tento extrair os .nca com o nstool, nada é extraído e aparecem os warnings:
[WARNING] NCA Partition 0 not readable. (AES-CTR Key was not determined)
[WARNING] NCA Partition 1 not readable. (AES-CTR Key was not determined)

Vi algo sobre usar o nca base pra isso, mas não sei exatamente qual é o base. E também vi algo sobre usar hactool. Também não tive sucesso.

Alguém conseguiria dar alguma direção?

Título: Res: [Switch] Extrair arquivos para fazer tradução
Enviado por: unneon online Dezembro 04, 2025, 01:56:57 AM
Atualização: consegui extrair mais coisas com --tik --cert e chutando valores de --basenca.

Cheguei em um arquivo main (do tipo nso) que parece ter o texto do jogo contido. O nstool indicou os offsets de cada parte do arquivo e inspecionei com editor hex. Achei vários trechos em plain text, mas os trechos estão "cortados" (possivelmente compactados) e não parecem estar em nenhum dos formatos que as versões de PC usam diretamente ou após conversões (rxdata, rgssad, mori criptografado, mori descriptografado). Alias, talvez estejam em um dos formatos descriptografados (rxdata ou mori.d), mas compactados de alguma forma que não vou conseguir avançar sem um conhecimento maior de switch.

Vou parar a tentativa por aqui já que não vou ter tempo de olhar isso a fundo.
Título: Res: [Switch] Extrair arquivos para fazer tradução
Enviado por: LeandroCiC online Dezembro 05, 2025, 00:01:42 AM
Deixa eu ver se entendi, você está tentando extrair uma rom de switch, que no caso está em .nds, ou está tentando acessar os arquivos de texto do jogo já extraído?
 :hein:
Título: Res: [Switch] Extrair arquivos para fazer tradução
Enviado por: unneon online Dezembro 05, 2025, 06:04:30 AM
Citação de: LeandroCiC online Hoje às 00:01:42 AMDeixa eu ver se entendi, você está tentando extrair uma rom de switch, que no caso está em .nds, ou está tentando acessar os arquivos de texto do jogo já extraído?
 :hein:

Nds? Não...


A rom está em 2 .nsp. Um v0 e uma atualização v65536.

Consegui usar a ferramenta nstool pra transformar cada nsp em um conjunto de .nca (uns 5 cada).

Depois, consegui usar nstool outra vez pra extrair arquivos dos .nca (os mais relevantes são do v65536)

Cada nca tem assets diferentes. Tem nca com arquivos de musica, tem nca com logos, e tem um nca com um arquivo "main" de mais de 80MB, que é onde está o jogo em si.

Esse "main" é do tipo .nso (tem header identificando e tudo) e tem uma seção "data" de acordo com a seguinte estrutura: https://switchbrew.org/wiki/NSO

Tentei extrair o conteúdo de "data" de acordo com a estrutura que linkei (posso ter feito errado!) e percebi que o texto está todo lá, mas está compactado. Não tenho um exemplo concreto agora, mas procurando em hex algo como "warning: electrical malfunction" (um texto aleatório do jogo), encontrei algo como "warning: electr7 unction". E isso pra várias partes do jogo. Não consegui descomprimir nem com lz4 (que o que a referencia do nso indica) nem com gzip.

É nesse ponto que parei e acho que não vou conseguir prosseguir sem um entendimento melhor de switch.

Talvez o que me falte é uma ferramenta própria pra extrair nso, já que a nstool só aponta os offsets.


---


Quanto a já ter os textos extraídos: tenho extraído (e traduzido) das versões de PC. O jogo foi feito originalmente em rpgmaker com conteúdo todo criptografado num arquivo .rgssad. Existem várias ferramentas prontas que descriptografam isso em arquivos .rxdata, que é um arquivo de serialização padrão do ruby.

O jogo também tem uma versão beta na steam que usa a engine minimori, feita em go. Essa engine usa arquivo .mori, também criptografado. Esse .mori pode ser descriptografado. Como não é um formato conhecido, vamos chamar de .dmori. E, a partir do .dmori, é possível extrair textos, mapas e outros assets (tenho ferramenta pra isso).

Eu imagino que a versão de switch esteja usando a engine nova (minimori), mas com o formato já descriptografado, .dmori. Digo isso, pois os valores que comparei em hexa estão parecidos. A única questão mesmo é que está compactado com uma ferramenta que desconheço.

---

Enfim, é isso. Espero que tenha ficado um pouco mais claro. A única coisa que preciso no momento é uma forma de extrair dados do .nso, já descompactando. Se conseguir isso e estiver nos formatos que suspeito (dmori ou rxdata), consigo me virar, acho.