Menu Inicial

Recados Rápidos

24/07/23 - 12:16h    
-

17/07/23 - 01:29h    
-

10/07/23 - 07:49h    
-

09/05/23 - 13:29h    
-

09/05/23 - 08:13h    
-


Nome/nick:
Recado:


 
Postado no dia 28/08/19 - 13:06h

TheMitoSan
[15570]

S.T.A.R.S.


Bem, foi conhecidência mesmo :v

Eu não estou usando a versão do CT, estou usando a original.

A versão da CT-STARS é realmente muito boa mas o meu propósito é conseguir pegar uma versão "limpa" (original sem nenhuma modificação) e permitir a edição da mesma :D

Não sei se você percebeu mas, quando eu editei a mensagem no vídeo, eu tive que manter o tamanho original da mensagem por que se não o game simplesmente fecha! (o exit code dele é maior que 30000000!)

Justamente por isso eu estou implementando uma função que vai fazer com que o editor respeite o tamanho original da mensagem. Vou fazer com que ele preencha a mensagem com 00 até a mensagem ficar com o seu tamanho original.

E em relação a leitura... Eu resolvi fazer algumas mudanças em prol de como o programa faz a leitura das mensagens para evitar que após uma alteração a mensagem deixe de aparecer no programa, o que me força a testar todos mapas novamente! (E sem contar que eu tenho que implementar outros filtros para deixar a leitura mais precisa.)
[195]       [24]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 28/08/19 - 13:43h

Flag King
[44168]

First Six Founders


Se vc alterar os ponteiros, desde que o bloco geral de textos não ultrapasse o total, vc consegue alterar o comprimento das mensagens. Qquer coisa avisa ae, qdo chegar ness aparte da implementação!

Qto a versão limpa, concordo plenamente! O ideal é sempre pegar a versão original!
[183]       [30]
Flag King é membro deste site desde 22/03/2005 e faz parte do Grupo First Six Founders.
Postado no dia 28/08/19 - 20:09h

TheMitoSan
[15570]

S.T.A.R.S.


Pois é - eu estou justamente nessa parte!
O que eu fiz foi o seguinte:

Caso a mensagem selecionada NÃO esteja com o mesmo comprimento da mensagem original (seja por estar menor ou maior), ele não permite aplicar os novos comandos. Veja no print abaixo:

[194]       [33]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 28/08/19 - 20:10h

TheMitoSan
[15570]

S.T.A.R.S.


...e mais uma vez o meu print não apareceu!
[191]       [29]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 28/08/19 - 20:15h

TheMitoSan
[15570]

S.T.A.R.S.


Bem, postei o print no imgur
(https://imgur.com/a/OfZEQsQ)


Bem... esqueci de mencionar no post - como que você faz para alterar os ponteiros?
[196]       [37]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 29/08/19 - 07:54h

Flag King
[44168]

First Six Founders


O print não apareceu pq provavelmente vc colou a imagem no post, né? Este editor que utilizamos no CT não trabalha mto bem com imagens em texto, que é o que acontece qdo colamos diretamente. O ideal é colar em servidor externo mesmo, como vc fez depois.

Olha o print:

Gostei da mensagem! Hahaha!


Sobre os ponteiros, no RE3 eles ficam imediatamente acima dos textos. Vc faz o cálculo a partir do primeiro, em contagem hexadecimal, até o próximo FA02. Qdo chegar nessa parte me avise, que detalhamos o procedimento!
[181]       [29]
Flag King é membro deste site desde 22/03/2005 e faz parte do Grupo First Six Founders.
Postado no dia 29/08/19 - 12:12h

TheMitoSan
[15570]

S.T.A.R.S.


Então, eu já estou nessa parte!

Eu recentemente fiz uma implementação que vai salvar tempo e processamento.
O R3ditor sempre fazia a busca pelas mensagens usando diversos fatores e filtros complexos, o que se tornou um processo cada vez mais lento devido ao número de funções que são executadas.

Na prox. versão, o R3ditor vai gerar um arquivo mapa para cada RDT, indicando as coordenadas das mensagens, itens e etc.


(Lá vou eu com mais um print...)

De certa forma, o R3ditor funcionará semelhante ao RPCS3 - O primeiro emulador de PS3, que para rodar algum game ele sempre decompila o jogo na 1º vez que você abre.
[187]       [28]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 29/08/19 - 17:22h

Flag King
[44168]

First Six Founders


Uma boa proposta!

Sobre os ponteiros:
A imagem abaixo é do RE2, porém o RE3 funciona exatamente igual.



1 - Identificando o início dos ponteiros.
Quase que na totalidade dos RDTs os ponteiros iniciam logo após um código 01 00 ou 00 00. O romhacker que gosta de estudar o jogo e não apenas modificá-lo, desenvolve uma boa forma de identificar isso. No meu caso, o esquema era achar o texto. Para isso, a primeira busca feita era por FA 02. Quase todos os textos iniciam com FA 02. Achou o texto, tinha duas formas de identificar o início dos ponteiros: Contar qtos FA 02 existiam e subtrair os bytes do primeiro texto. A segunda forma era voltar bytes até encontrar o 01 00. O primeiro ponteiro normalmente estará depois dele. Ou seja, no caso desta imagem, é o 08 00. Os ponteiros sempre são de dois em dois bytes. Se o primeiro ponteiro é o 08 00, o segundo é qual? O próximo: 60 00. E assim por diante.

2 - O segundo ponteiro está assinalado. Eu faço isso para não precisar calcular. Mas antes vamos calcular e mostrar como funciona. Em cálculo hexadecimal, 08 + xx = 60. Quyantos bytes tem xx? Na flecha - 3 - tem uma seção de texto selecionada. A contagem do editor hexadecimal mostra 58h[8]. Então, se vc abrir uma calculadora hexadecimal e colocar 08 + 58, o resultado será 60. E assim por diante. A forma mais fácil e intuitiva de resolver isso é utilizando os próprios marcadores do editor hexadecimal. A flecha - 5 - mostra o número 8. Pq? Eu desenvolvi um esquema simples de identificação: Se vc MARCA o segudo ponteiro, a partir dele todos os outros aparecerão de forma automática. Quando vc coloca o cursor no primeiro texto [1D, ou seja, letra A], aparece no rodapé [flecha 5] o número 8. Se você colocar o cursor no início do próximo texto, flecha - 4 - [1D novamente, letra A], aparecerá o número 60. E assim sucessivamente, até que chegue no ponteiro 1C 01, que neste caso é o último deste bloco de textos.

No seu caso, eu acho bastante válido vc embutir no RE3ditor uma calculadora simples de programação. Desta forma, ele não precisará enxergar todas essas informações. Elas servem MTO pra quem está olhando, mas pra cálculo de editor é mais viável a primeira forma de identificação.

Se ficou dúvida, posta ae e vamos destrinchando!
[145]       [36]
Flag King é membro deste site desde 22/03/2005 e faz parte do Grupo First Six Founders.
Postado no dia 29/08/19 - 18:21h

TheMitoSan
[15570]

S.T.A.R.S.


ISSO. SERÁ. DIVERTIDO!


Na verdade eu não preciso de uma calculadora hex.
JavaScript contém uma função matemática chamada parseInt(). Essa função transforma qualquer texto ou numero com ponto flutuante (float) em numeros inteiros. Porém, esse comando me permite converter numeros Hex com o seguinte comando:

parseInt("64", 16);

Aonde "64" é 100 em Hex (em format string) e 16 é o "Radix" (Ou casa decimal - visto que numeros hex vão até 16)



O que eu faço quando eu preciso lidar com numeros em hex é simples - eu só converto ele para decimal e faço o cálculo dessa forma e transformo ele de novo em hex jogando o numero desejado em uma variavel e transformando a mesma em hex!



O comando toString() transforma quase qualquer coisa em texto, só que ele também aceita Radix (que no exemplo acima é 16), transformando o numero novamente em hex!

Com o seu pequeno (porém maravilhoso) tutorial eu vou precisar re-implementar a leitura de texto usando as novas informações!
[192]       [28]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..
Postado no dia 29/08/19 - 18:56h

TheMitoSan
[15570]

S.T.A.R.S.


Bem, como eu vou ter que re-implementar a forma que ele encontra os textos, eu vou atualizar o R3ditor colocando todas as novas melhorias que eu implementei para poder trabalhar com as informações novas que você me passou.

A forma de edição de mensagens está "Segura", visto que ele só vai permitir alterar o RDT se a mensagem estiver com o mesmo tamanho que a mensagem anterior. Porém, como eu estava filtrando as mensagens de forma absolutamente bruta, dependendo do mapa que você abrir ele vai aparecer resultados que não são mensagens e sim partes aleatórias do RDT que (acredite ou não) começam com FA 02 e terminam com FE 00 e que mesmo passando por mais de 40 FILTROS que envolvem desde tamanho da mensagem, repetição de funções, funções que tinham atributos estranhos como F8 que serve para mostrar o nome de um item com atributo maior que 85 (que é o ultimo item da lista) entre outros testes mais complexos que envolvem até probabilidade!

Inclusive, foi por isso que eu resolvi criar um arquivo de mapa para cada arquivo!

Dependendo do arquivo que você vai abrir, o programa leva as vezes quase 1.2 segundos para fazer essa análise para então te mostrar a tela com as mensagens. Com o mapa gerado, o tempo de carregamento é instantâneo!

Porfim, você consegue ver e editar a maioria das mensagens - só que se você ver alguma mensagem que contenha algo como (Unknown Char / Function Nº XX - Hex: XX) NÃO CLIQUE EM EDITAR!
[202]       [30]
TheMitoSan é membro deste site desde 03/08/2019 e faz parte do Grupo S.T.A.R.S..

Postar nova mensagem

Novas postagens neste espaço estão desabilitadas. Por favor, acesse nosso novo forum para interagir.