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?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.