Re: [PROJETO DE TRADUÇÃO] Final Fantasy XIII Lightning Returns
Enviado: 09 Dez 2021, 13:19
O problema que empaca a tradução é um problema que poucos podem resolver. O problema com a tool de texto que não compacta os textos no formato original, apenas codifica e ordena os blocos com textos. Isso funcionou perfeitamente com os outros dois jogos da franquia, mas essa LR não aceitou este formato em apenas um arquivo do jogo, "auto_yus.bin", este arquivo contem os textos dos transeuntes da cidade de Yusnan.
Esse tipo de coisa acontece com jogos da Square. As pegadinhas do malandro que você só descobre depois de cair nela.
O jogo tem criptografia, eu procurei alguém que resolveu. Agradeço ao Echelon que atualizou a tool que descriptografa os saves do jogo para descriptografar os arquivos do jogo.
Depois, encontrei um problema na inserção de arquivos, a lista tinha arquivos repetidos, mas a tool de inserção só alterava uma delas e ignorava as outras. Com isso, em partes do jogo, a tradução não aparecia. Quando se extrai os arquivos, a tool sobrescrevia os arquivos porque eram os mesmos. A inserção, se altera o primeiro arquivo e ignorava as repetições.
São as famosas repetições desnecessárias da Square. FFX é cheio delas.
Tanto que tenho medo de bagunçar e ter de começar a organizar do zero.
Então, ofereci o jogo pra um programador de mod famoso, o Fluffquak. Entreguei a tool que descriptografa, e com isso ele atualizou a tool "ff13" com as correções que eu propus. Até então, essa tool era compatível apenas com às duas primeiras versões do jogo. Assim, criou a opção "-ff133" na tool.
FF13-2 também tem essas repetições, mas foi ajuda divina que as repetições não atrapalharam a tradução, passando despercebidas.
Então apareceu um problema no arquivo "auto_yus.bin".
Este arquivo é um contêiner, a Square se incomodou com os textos na pasta "txtres" e mudou os diálogos para a pasta "db" do arquivo "imga2" e neste contêiner bin, ou "wpd" internamente. Criei, eu mesmo uma tool para extrair o ztr deste contêiner.
O jogo tem um limite de 256kb para este contêiner, mas a tradução deixa este arquivo com 264kb. Isso causa crash no jogo toda vez no loading da cidade de Yusnan.
Perdi meses tentando encontrar este motivo.
Novamente, garimpei a internet e encontrei um cara que conhecia outro cara que me disse que era este arquivo o causador.
E a solução seria comprimir a tradução no formato original do jogo. Lempel–Ziv Compression (LZ77). Um dos componentes principais do formato Zip. Variantes de LZ77 é muito usado em jogos, ps2 para baixo. Comprimindo e deixando o arquivo menor que os 256kb.
Descomprimir é um trabalho. Comprimir da mesma forma é 10x mais trabalhoso.
Após garimpar a internet por meses.
Trabalhando na tool para a tradução do Fatal Frame 5 pc, encontrei um tailandês muito solidário e fera em compressão. Se dispôs a criar a compressão.
Já criou e funciona in-game.
Falta ajustes para corrigir alguns erros na codificação dos textos.
O arquivo ZTR com texto está em formato dicionário. Há uma chave (ex: $a_26_1_ps) e o texto correspondente (ex: During autosave, an icon will appear in the top left corner.). No meio disso há código que só o jogo entende (ex: Cor do texto: {Color BlizzardBlue}, isso representa um conjunto de bytes refente a cor que o texto terá na tela, ou exemplo 2: Increases Strength by {VarF7 64}%. {VarF7 64} representa um conjunto de bytes específico para o jogo preencher com os valores do item).
Os "ajustes na tool" podem ser em dias ou meses. Depende de mapear esses conjuntos e dá nomes. Evitando crash game ou bug na representação na tela. {Color BlizzardBlue} e {VarF7 64} já são conjuntos mapeados e nomeados. Isso não veio prontinho como em outros jogos.
Como estou na tradução ffx, não posso revisar e trabalhar no FF13LR. Mas desde que parei com o LR, eu procuro uma solução para o problema.
Tudo culpa da maldita Square e seus programadores preguiçosos que espalham arquivos, repetem cópias desnecessárias, criptografam e comprimem tudo. Os textos do LR até usam uma variante do utf-8. O FFX usa codificação própria.
Fiquem tranquilos, a tradução sai quando eu corrigir a compressão.
Espero que este esclarecimento, que até demorou, ajude a vocês entenderem que a tradução que fazemos depende de hackear os arquivos e fazer o jogo aceitar as alterações.
O jogo Fatal Frame 5 pc tem arquivos FMSG na pasta Text. Com um Hex editor se consegue vê os textos ali contidos. Este arquivo está codificado, mas não codificou o texto. Alterar os textos pode ser feito como antigamente. Traduzir sem aumentar ou diminuir a frase.
A codificação do arquivo é feito assim: Tamanho da frase (número de caracteres), tamanho do bloco com os textos (número de caracteres do texto com as frases, podendo ser uma ou mais), tamanho do texto em bytes ((tamanho da frase * 2) - 2).
Até aqueles zeros são contados (tamanho do bloco com textos - (8 + tamanho do texto em bytes)).
Essa é a razão de porque aumentar ou diminuir o texto irá corromper o arquivo.
A Square que adora codificar o arquivo, codificar o texto, comprimir o texto, comprimir o contêiner com os arquivos e criptografar tudo no final.
Quem leu tudo dá manda um pra Zexia
Esse tipo de coisa acontece com jogos da Square. As pegadinhas do malandro que você só descobre depois de cair nela.
O jogo tem criptografia, eu procurei alguém que resolveu. Agradeço ao Echelon que atualizou a tool que descriptografa os saves do jogo para descriptografar os arquivos do jogo.
Depois, encontrei um problema na inserção de arquivos, a lista tinha arquivos repetidos, mas a tool de inserção só alterava uma delas e ignorava as outras. Com isso, em partes do jogo, a tradução não aparecia. Quando se extrai os arquivos, a tool sobrescrevia os arquivos porque eram os mesmos. A inserção, se altera o primeiro arquivo e ignorava as repetições.
São as famosas repetições desnecessárias da Square. FFX é cheio delas.
Tanto que tenho medo de bagunçar e ter de começar a organizar do zero.
Então, ofereci o jogo pra um programador de mod famoso, o Fluffquak. Entreguei a tool que descriptografa, e com isso ele atualizou a tool "ff13" com as correções que eu propus. Até então, essa tool era compatível apenas com às duas primeiras versões do jogo. Assim, criou a opção "-ff133" na tool.
FF13-2 também tem essas repetições, mas foi ajuda divina que as repetições não atrapalharam a tradução, passando despercebidas.
Então apareceu um problema no arquivo "auto_yus.bin".
Este arquivo é um contêiner, a Square se incomodou com os textos na pasta "txtres" e mudou os diálogos para a pasta "db" do arquivo "imga2" e neste contêiner bin, ou "wpd" internamente. Criei, eu mesmo uma tool para extrair o ztr deste contêiner.
O jogo tem um limite de 256kb para este contêiner, mas a tradução deixa este arquivo com 264kb. Isso causa crash no jogo toda vez no loading da cidade de Yusnan.
Perdi meses tentando encontrar este motivo.
Novamente, garimpei a internet e encontrei um cara que conhecia outro cara que me disse que era este arquivo o causador.
E a solução seria comprimir a tradução no formato original do jogo. Lempel–Ziv Compression (LZ77). Um dos componentes principais do formato Zip. Variantes de LZ77 é muito usado em jogos, ps2 para baixo. Comprimindo e deixando o arquivo menor que os 256kb.
Descomprimir é um trabalho. Comprimir da mesma forma é 10x mais trabalhoso.
Após garimpar a internet por meses.
Trabalhando na tool para a tradução do Fatal Frame 5 pc, encontrei um tailandês muito solidário e fera em compressão. Se dispôs a criar a compressão.
Já criou e funciona in-game.
Falta ajustes para corrigir alguns erros na codificação dos textos.
O arquivo ZTR com texto está em formato dicionário. Há uma chave (ex: $a_26_1_ps) e o texto correspondente (ex: During autosave, an icon will appear in the top left corner.). No meio disso há código que só o jogo entende (ex: Cor do texto: {Color BlizzardBlue}, isso representa um conjunto de bytes refente a cor que o texto terá na tela, ou exemplo 2: Increases Strength by {VarF7 64}%. {VarF7 64} representa um conjunto de bytes específico para o jogo preencher com os valores do item).
Os "ajustes na tool" podem ser em dias ou meses. Depende de mapear esses conjuntos e dá nomes. Evitando crash game ou bug na representação na tela. {Color BlizzardBlue} e {VarF7 64} já são conjuntos mapeados e nomeados. Isso não veio prontinho como em outros jogos.
Como estou na tradução ffx, não posso revisar e trabalhar no FF13LR. Mas desde que parei com o LR, eu procuro uma solução para o problema.
Tudo culpa da maldita Square e seus programadores preguiçosos que espalham arquivos, repetem cópias desnecessárias, criptografam e comprimem tudo. Os textos do LR até usam uma variante do utf-8. O FFX usa codificação própria.
Fiquem tranquilos, a tradução sai quando eu corrigir a compressão.
Espero que este esclarecimento, que até demorou, ajude a vocês entenderem que a tradução que fazemos depende de hackear os arquivos e fazer o jogo aceitar as alterações.
O jogo Fatal Frame 5 pc tem arquivos FMSG na pasta Text. Com um Hex editor se consegue vê os textos ali contidos. Este arquivo está codificado, mas não codificou o texto. Alterar os textos pode ser feito como antigamente. Traduzir sem aumentar ou diminuir a frase.
A codificação do arquivo é feito assim: Tamanho da frase (número de caracteres), tamanho do bloco com os textos (número de caracteres do texto com as frases, podendo ser uma ou mais), tamanho do texto em bytes ((tamanho da frase * 2) - 2).
Até aqueles zeros são contados (tamanho do bloco com textos - (8 + tamanho do texto em bytes)).
Essa é a razão de porque aumentar ou diminuir o texto irá corromper o arquivo.
A Square que adora codificar o arquivo, codificar o texto, comprimir o texto, comprimir o contêiner com os arquivos e criptografar tudo no final.
Quem leu tudo dá manda um pra Zexia