[PS2] Ponteiros

Iniciado por DileiGMR, Janeiro 05, 2020, 00:09:28 AM

tópico anterior - próximo tópico

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

DileiGMR

eae galera, estou com problemas para traduzir jogos de ps2 não estou conseguindo achar os ponteiros dos jogos já tentei vários e n consegui, estou somente encontrando o ofsset da frase e depois invertendo, alguém me diz se preciso subtrair por algum header ou somar sla, me ajudem pfvr galera

mummrabr

Bom dia, nos dê mais informações sobre seu caso, jogo, se é ponteiro pra texto, mande o arquivo ou trecho de arquivo se for grande. Cada caso, é um caso, não tem uma receita, mas na maioria das vezes os ponteiros estão por perto do texto ou no executável do jogo.

DileiGMR

É ponteiro para texto msm, vou mandar o arquivo e a tabela pra vocês conseguirem visualizar o texo e vcs tentam me ajudar, n sei nem explicar direito kk mas me tirem uma dúvida se pra achar o ponteiro em jogos de ps2 eu preciso calcular o Header ou é só inverter os bytes msm?

Citação de: mummrabr online Janeiro 05, 2020, 09:56:53 AM
Bom dia, nos dê mais informações sobre seu caso, jogo, se é ponteiro pra texto, mande o arquivo ou trecho de arquivo se for grande. Cada caso, é um caso, não tem uma receita, mas na maioria das vezes os ponteiros estão por perto do texto ou no executável do jogo.

kuroi

Boa noite, cara!
Eu dei uma olhada nos arquivos que você mandou e acho que descobri alguma coisa que pode te ajudar na descoberta desses Ponteiros.
No Offset 00001104 começam alguns textos do jogo. Se você observar no Offset 00001000, há em sequência os valores: 04 01.
Se você subtrair o valor do Offset inicial da frase do jogo pelo Offset do "suposto Ponteiro", teremos:

00001104 - 00001000 = 00000104 -> invertendo por se tratar de um Little Endian -> 0401, o mesmo valor encontrado na suposta tabela de Ponteiros.

Para ter certeza de que o cálculo acima não é só uma coincidência, segue o segundo script do bloco (Note que o Endstring de cada bloco neste jogo é o 1F):

00001110 - 00001002 = 000010E -> invertendo por se tratar de um Little Endian -> 0E01, o mesmo valor encontrado na suposta tabela de Ponteiros.

O bloco que eu usei começa em 00001104 e termina em 000014DF.
A tabela de Ponteiros do bloco que eu usei começa em 00001000 e termina em 00001103.

Com isso, seguindo esse padrão dá pra encontrar todos os Ponteiros desse bloco... Tenta achar os Ponteiros dos outros blocos usando esse mesmo padrão!

Até mais!!


君の夢が叶うのは誰かの影じゃないぜ。
風の強い日を選んで走ってきた。

DileiGMR

Obrigado pela ajuda amigo, fico feliz por querer ajudar, obrigado mesmo🙏

gui.melo127

Citação de: DileiGMR online Janeiro 05, 2020, 00:09:28 AM
eae galera, estou com problemas para traduzir jogos de ps2 não estou conseguindo achar os ponteiros dos jogos já tentei vários e n consegui, estou somente encontrando o ofsset da frase e depois invertendo, alguém me diz se preciso subtrair por algum header ou somar sla, me ajudem pfvr galera

Olá,

Incrível como as coisa são, né? Estou tentando traduzir esse game, só que a versão europeia pois suporta 16:9 e acentos. Também estou em busca de informações de como traduzir, já consegui editar os gráficos. Tenho tentado por um tutorial do YouTube (https://www.youtube.com/watch?v=AefUPjyP6Q8) e não obtive sucesso.

kuroi

Então... Até eu já tinha me esquecido dessa dica que eu dei aqui, mas acabo de confirmar aqui. A lógica dos ponteiros desse arquivo d_mess.bin é essa mesmo: Subtrair o valor do offset inicial da string pelo endereço do ponteiro, que está na tabela logo acima do bloco...
君の夢が叶うのは誰かの影じゃないぜ。
風の強い日を選んで走ってきた。