Calculo não bate !!! Falta de experiêcia ...

Iniciado por Vtspp, Dezembro 15, 2016, 15:13:36 PM

tópico anterior - próximo tópico

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

Vtspp

Olá amigos !!!

Mais uma vez venho dar trabalho a vcs. Desculpe por isso. Como tinha dito anteriormente em outra postagem, estou empenhado em traduzir a iso de Naruto 5 Ps2. Já tive grande êxito com muitos dos textos, tais como informação de rolagem dos menus (com suas respectivas cores), informações de áreas de mapas e legenda no vídeo de abertura. Mas tem uma coisa que não consigo entender de forma nenhuma ... Como a rom aponta para o offset que estipula o tamanho de bits de cada bloco no texto. Eu comecei descobrindo onde estão os ponteiros que determina cada frase no bloco(vide anexo marcado com vermelho). Usei como exemplo a frase que já traduzi "Muda as configurações do jogo" offset de inicio da frase 68A450 . Essa iso tem os ponteiros abaixo do texto como podem ver na imagem. Minha duvida é, segundo o que vi até agora, para que eu possa confirmar o offset que inicia o bloco de texto, devo calcular o offset de inicio da frase - o ponteiro, Só que não bate o valor do offset do inicio do bloco de jeito nenhum ! Isso mesmo eu sabendo que aquelo bloco começa no offset  0x0068A470 . Minha certeza na afirmação se baseia com testes direto na iso, osu seja alterando a ordem dos offset de outra frase no bloco. Como não encontro muito sobre Romhacking no ps2 ( Talvez o nome seja isohacking ), não bate aqueles calculo usado com valor de header ou coisas do tipo. Tenho lido alguns textos indicados, e aprendi algumas coisas que posso usar, outras foi observando, mas sempre fica uma ponta ou outra ... Preciso muito da ajuda de Vcs.

Obs: Versão da Iso, SLES_556.05

Agradeço desde já.


:curvar2:
Vtspp

denim

Isto ocorre porque os ponteiros não possuem relação alguma com os offsets da ISO. Eles podem representar um offset de um arquivo talvez, mas quase sempre eles indicam um offset na WRAM do console. Uma solução básica consiste em utilizar estes ponteiros que mostrou somando um valor constante, que no caso mostrado é 0x26B500. E com o resultado, procure o ponteiro. Não digo que é garantido, pois depende de como este trecho será carregado na WRAM.

Então por exemplo, para o offset que citou, $68a450 + $26B500 = $8f5950, que é o ponteiro que deverá procurar.

Para o texto "<white>Use o dinheiro na ...", está em $68a3a0, logo, ponteiro é $68a3a0 + $26B500 = $8f58a0, que está alguns bytes antes do ponteiro que destacou na imagem.

Luke

#2
Citação de: Vtspp online Dezembro 15, 2016, 15:13:36 PM
Olá amigos !!!

Mais uma vez venho dar trabalho a vcs. Desculpe por isso. Como tinha dito anteriormente em outra postagem, estou empenhado em traduzir a iso de Naruto 5 Ps2. Já tive grande êxito com muitos dos textos, tais como informação de rolagem dos menus (com suas respectivas cores), informações de áreas de mapas e legenda no vídeo de abertura. Mas tem uma coisa que não consigo entender de forma nenhuma ... Como a rom aponta para o offset que estipula o tamanho de bits de cada bloco no texto. Eu comecei descobrindo onde estão os ponteiros que determina cada frase no bloco(vide anexo marcado com vermelho). Usei como exemplo a frase que já traduzi "Muda as configurações do jogo" offset de inicio da frase 68A450 . Essa iso tem os ponteiros abaixo do texto como podem ver na imagem. Minha duvida é, segundo o que vi até agora, para que eu possa confirmar o offset que inicia o bloco de texto, devo calcular o offset de inicio da frase - o ponteiro, Só que não bate o valor do offset do inicio do bloco de jeito nenhum ! Isso mesmo eu sabendo que aquelo bloco começa no offset  0x0068A470 . Minha certeza na afirmação se baseia com testes direto na iso, osu seja alterando a ordem dos offset de outra frase no bloco. Como não encontro muito sobre Romhacking no ps2 ( Talvez o nome seja isohacking ), não bate aqueles calculo usado com valor de header ou coisas do tipo. Tenho lido alguns textos indicados, e aprendi algumas coisas que posso usar, outras foi observando, mas sempre fica uma ponta ou outra ... Preciso muito da ajuda de Vcs.

Obs: Versão da Iso, SLES_556.05

Agradeço desde já.


:curvar2:

Se, o calculo que o denim te passou pra somar, funcionar em todas as offsets do texto.
Basta adiciona-los a offset do começo de cada texto.

;)

Vtspp

#3
Obrigado Denim e Luke, vou fazer o teste agora mesmo. Vou deixar outra duvida, talvez seria melhor eu calcular esse aquivo separadamente ? Digo isso pq talvez a tese do Denim tenha sentido, visto que ele pode ser isolado dos demais arquivos. Como ele mencionou que os ponteiros não tem relação com os offset da ISO e sim a algum arquivo ou wram,pode ser que seje esse arquivo no texto. Ele é chamado de TextEng.txt . Se eu pego ele isoladamente, os offset logicamente mudam, mais os ponteiros continuam. Talvez esteja falo besteira, mas quem sabe. Obrigado mais uma vez e desculpa meus longos textos.
Vtspp

Luke

Citação de: Vtspp online Dezembro 15, 2016, 22:13:04 PM
Obrigado Denim e Luke, vou fazer o teste agora mesmo. Vou deixar outra duvida, talvez seria melhor eu calcular esse aquivo separadamente ? Digo isso pq talvez a tese do Denim tenha sentido, visto que ele pode ser isolado dos demais arquivos. Como ele mencionou que os ponteiros não tem relação com os offset da ISO e sim a algum arquivo ou wram,pode ser que seje esse arquivo no texto. Ele é chamado de ENG.txt . Se eu pego ele isoladamente, os offset logicamente mudam, mais os ponteiros continuam. Talvez esteja falo besteira, mas quem sabe. Obrigado mais uma vez e desculpa meus longos textos.

Esse arquivo não era do sles?
Eu prefiro traduzir por arquivos separados.

Vtspp

#5
A iso é SLES_556.05, mas abrindo essa iso, eu encontrei a pasta que possui todos os idiomas usado no jogo. O arquivo de tradução é o TextEng.txt. Só que o print que mandei, mostra os endereços dos offset da iso completa. Vou anexa o aquivo TextEng.txt aqui também.
Vtspp

Vtspp

Fiz calculo que Denim passou. Pelo que entendi ele inverteu os valores dos Ponteiros do bloco da frase e diminuiu pelo pelo offset do inicio da frase. Realmente o valor bate exato com todas as offset. Vou fazer agora o teste de mover alguma frase para o final da rom e fazer um calculo para apontar no novo endereço. Vamos ver o que dar ... Forum nota 100000000000000 !!! :parabens:
Vtspp

denim

Se colocar no final da iso, há uma chance enorme de não dar certo, pois estará colocando indiretamente em um arquivo que não necessariamente é o mesmo que é o original. Deve buscar colocar no final do arquivo e não da iso. Recomendo usar um visualizador de arquivos na iso e descobrir qual é o arquivo que está este texto.

Vtspp

Obrigado Denim por mais essa dica. Já visualizei o arquivo em questão. Em caso de novidade gostaria de compartilhar aqui no forum. Com certeza vai ajudar muitos que assim como eu não sabiam por onde começar.

:rolamento:
Vtspp

Luke

Você tem que colocar em espaços vazios do arquivo, e não da iso, como o Denim disse acima.
E vale ressaltar que alguns jogos simplesmente não aceita que os textos fiquem antes ou depois do ponteiro.

Exemplo.

ONDINHA PROMOÇÃO PSN.
PONTEIRO do texto acima.

se você jogar o ONDINHA PROMOÇÃO PSN abaixo do ponteiro, possa ser que ele não consiga ler.
Somente acima do ponteiro ou vice versa, se no caso o ponteiro vir antes do texto.
Mas isso você tem que testar na ingame para descobrir.

Vtspp

Gostaria de primeiramente agradecer mais uma vez a Denim e Luke, que me ajudaram quando estava iniciando este projeto. O calculo que o Denim passou para mim estava correto mesmo. Mas mesmo assim, ainda não entendia por que era apresentado aquele ponteiro se o calculo não batia. Passei algum tempo sem continuar a tradução, por que queria entender esse misterio. Achei melhor fazer isso, pois, eu estava simplificando muitos textos por falta de espaço. Mas agora tudo faz sentido. Realmente não havia relação daqueles ponteiro com o endereço mostrado no editor Hex. Ela aponta o endereço na memoria do console de forma invertida, ou seja um ponteiro que aparecia no Hex como 8FB291, no console apontava para o offset 91B28F. Apos perceber isso, tive apenas que pegar o offset no console e calcular a diferença da distância no offset no Hex. O resultado foi exatamente o valor que Denim havia passado. Agora retomei a  tradução e não tenho mais problema com o tamanho dos textos. Estou movimentando ele dentro do arquivo e editando os ponteiros com os novos endereços conforme o Luke havia mencionado.



Vtspp

denim