Romxhacking Romxhacking
- Nasío pa'jakear -
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Identifíquese para revisar sus mensajesIdentifíquese para revisar sus mensajes   ConectarseConectarse 


Menú principal
Portal
Foros
F.A.Q.
Buscar
Lista de miembros
Grupos de usuarios
Perfil

Usuario
Nombre de Usuario:

Contraseña:

 Recordarme



He olvidado mi contraseña

¿Aún no tiene su cuenta?
Puede registrarse Aquí, es GRATIS.


Anuncio del administrador
No pretendemos solucionar todos los problemas ni ser referencia de nada, simplemente nos reunimos aquí para charlar de nuestras cosas.
NO SE RESPONDERÁ A NADA POR PRIVADO, QUE EL FORO ESTÁ PARA ALGO

Punteros Tail Concerto
Ir a página 1, 2  Siguiente
 
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 10:10 am    Título del mensaje: Punteros Tail Concerto Responder citando

Hola, soy un novato que empieza en esto del romhacking.
Estoy mirando el juego Tail Concerto de PSX, con el windhex abro el archivo DATA.bin y alli he encontrado los textos del juego y debajo de cada bloque de texto hay lo que creo que son los punteros.




Los punteros tienen un formato de 4 pares de cifras, las dos primeras son las que van cambiando y las dos ultimas se mantienen.
A4 8B 0E 80
BC 8B 0E 80
D8 8C 0E 80

Creo que son los punteros porque siguen un patron de numeros que cambian y numeros que quedan fijos como dicen algunos tutoriales sobre punteros.

Despues de leer varios tutoriales y foros sobre el tema de punteros, he hecho las siguientes pruebas:

- Apuntar el offset del principio de texto, coger los dos ultimos valores y invertirlos y nada.
(en esta prueba no le he restado el header porque nose si la PSX tiene header como la Nes o otras consolas)

- Abrir el emulador PSX 1.13 y guardar la memoria en el momento que aparece el primer texto. Abrirlo con el windhex, anotar el offset y restarselo al offset del primer texto del archivo data.bin y tampoco.

Al final cambiando los valores de los punteros a mano haciendo pruebas he comprobado que modificaba el juego.
El primer puntero que aparece es el que apunta al texto "Oh well, nevermind".



Al cambiar le primer valor de A4 por 00, cuando el juego llega al texto "oh well,..." se queda congelada la imagen.
Si cambio el A4 por 04 el personaje gira 90grados pero sigue el texto y luego se queda congelada la imagen.
Si cambio el valor A4 por el de otro puntero no ocurre nada el juego sigue.

Despues de todo esto me he quedado estancado, no se como seguir.
Espero me podais ayudar y perdornar si no me he explicado bien o utilizo terminos incorrectos.

Gracias
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5432
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 10:22 am    Título del mensaje: Responder citando

Esos valores son las direcciones de memoria de la PSX donde estarán los textos, 4 bytes en low-endian (si son sus punteros, claro). Tienes que buscar la diferencia, que será el valor a sumar a vada offset que te indica ese editor. Por ejemplo, si el editor te dice que los textos están en 0x0010 y 0x0022 y esos valores indican 0x800E3341 y 0x800E3353, eso indica que se ha sumado 0x800E3331. El resto ya es currárselo Smile

No tengo el juego, así que poco más puedo decirte al no poder mirarlo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 12:33 pm    Título del mensaje: Responder citando

Gracias por contestar CUE.

He probado de cambiar los valores de otros posibles punteros y me he dado cuenta que no los punteros de texto, ya que al cambiar el primer valor por otro el juego se congelaba o tocaba la camara del juego que se desplazaba hacia los lados, se quedaba a mitad de texto y se congelaba,... entiendo que si pasa esto no son los punteros que apuntan hacia el texto ya que de ser asi al modificar dichos punteros solo se veria afectado el texto, no la camara, el personaje o el juego?

A4 8B 0E 80
BC 8B 0E 80
D8 8C 0E 80

los valores que he cambiado son el A4 , BC, D8

preguntas de novato:

cuando dices 4 bytes en low-endian significa que son 4 pares de cifras (cada par de cifras seria un byte) que estan en un orden especifico
por ejemplo A4 8B 0E 80 seria 4bytes low-endian y 80 0E 8B A4 seria 4bytes big-endian?
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5432
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 12:38 pm    Título del mensaje: Responder citando

Exacto, low-endian es que se ponen los bytes desde el menos significativo al mayor, y big-endian al revés.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 3:38 pm    Título del mensaje: Responder citando

he hecho algunas pruebas en el texto en la siguiente captura se muestra donde empiez el primer texto en rojo y donde acaba en verde
la primera frase entera es "Now that's what i call a good night's sleep!" lo digo porque en el editor sale toda desordenada



en la siguiente captura he movido el codigo de fin de frase una posicion a la derecha y el resultado es que solapa la primera frase con la segunda en la primera caja de dialogo




y luego repite la tercera frase dos veces, una en la caja de dialogo donde deberia aparecer al segunda frase y otra en su caja de dialogo normal




la siguiente prueba he rellenado con exclamaciones el hueco que hay entre el final de texto y el principio de texto de la primera frase



el resultado es que la primera caja de dialogo la muestra correctamente pero en la segunda caja de dialogo muestra las exclamaciones y la primera frase seguida de la segunda frase




al hacer mas pruebas m ehe fijado que el codigo de fin de texto # siempre le siguen bytes 00 (uno o varios) si el primero de estos bytes 00 no lo cambias aunque cambies los otros no se modifica nada en pantalla

tambien me he fijado que si no modifico el byte 00 mas cercano al principio del primer texto (Now that...) solo se muestra en la segunda caja de dialogo las exclamaciones




CUE quiero ver si entiendo lo que me has explicado
si yo cojo la diferencia entre el offset del principio del primer texto y el offset del principio del segundo texto 005AA398 y 005AA360 me da 38
no entiendo como sacas la diferencia 0x800E3331 de entre 0x800E3341 y 0x800E3353 (perdona mi ignorancia)

he probado de coger el offset del primer texto 005AA398 coger los dos ultimos bytes A3 98 voltearlos 98 A3 y buscar ese valor en el windhex
pero me da un monton de resultados, al probarlo con otros offset de principio de texto tambien muchos resultados pero ninguno coincide
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
gadesx
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Edad: 28
Mensajes: 1976
Ubicación: El puche
Estado: Offline
MensajePublicado: Tue Aug 04, 2015 7:27 pm    Título del mensaje: Responder citando

Te recomiendo que en el windhex pongas la una fuente que fije el ancho de los numeros
para verlos todos ordenados.
_________________
Mi blog y mi droga: http://gadesxscene.blogspot.com/
Volver arriba
Ver perfil del usuario Enviar mensaje privado [ Oculto ] Visitar sitio web del autor MSN Messenger
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 8:06 am    Título del mensaje: Responder citando

estoy cambiando la fuente desde el menu option --> set font --> set all fonts
he probado varias pero en todas se ven los numeros mas o menos desordenados.

que fuente me recomiendas Gadesx?
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
gadesx
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Edad: 28
Mensajes: 1976
Ubicación: El puche
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 12:25 pm    Título del mensaje: Responder citando

En el windows 7 meti esta y en el windhex se ve bien

http://www.mediafire.com/download/9ht76axw34pf3v1/magiccake.fon
_________________
Mi blog y mi droga: http://gadesxscene.blogspot.com/
Volver arriba
Ver perfil del usuario Enviar mensaje privado [ Oculto ] Visitar sitio web del autor MSN Messenger
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 1:19 pm    Título del mensaje: Responder citando

Me voy al windhex y busco los textos de la pantalla principal




Los textos empiezan dos posiciones antes de la primera letra, pero se dejan en blanco por el curso de selección en la pantalla principal. He hecho una prueba cambiando los espacios en blanco por letras y este es el resultado:




Apunto los offset donde empieza cada texto del menú principal el guion bajo es para indicar que empiez dos posiciones antes de la primera letra.

00085804 __Options
00085810 __New Game
0008581C __Load Game


Voi al emulador PSX 1.13, abro el juego.
Espero a que aparezca el menú principal del juego y pulso en depurar  monitor  r3000





Una vez se carga todo los registros memoria y demás voy a archivo guardar binario





Le pongo memoria 0 y tamaño 10000000




Le pongo un nombre, guardo el archivo y lo abro con el editor windhex.
Busco una de las palabras del menú por ejemplo “New Game”



Encuentra la palabra





Apunto los offset de las palabras que contiene el menú principal

000DA18C __Options
000DA198 __New Game
000DA1A4 __Load Game

Obtengo la diferencia entre la posición en memoria y la posición del archivo

__Options 000DA18C - 00085804 = 54988
__New Game 000DA198 - 00085810 = 54988
__Load Game 000DA1A4 - 0008581C = 54988


A continuación, añadimos a la posición en el archivo la diferencia obtenida en el paso anterior

__Options 00085804 + 54988 = 000DA18C
__New Game 00085810 + 54988 = 000DA198
__Load Game 0008581C + 54988 = 000DA1A4


cojo los 6 últimos dígitos y los divido en pares

__Options 0D A1 8C
__New Game 0D A1 98
__Load Game 0D A1 A4

los cambiamos de sitio

__Options 8C A1 0D
__New Game 98 A1 0D
__Load Game A4 A1 0D


En el editor windhex volvemos abrir el archive que contiene los textos “DATA.BIN” y buscamos estos valores hexadecimales




Encuentra el el valor hexadecimal correspondiente a __Options y al lado están los de __New Game y __Load Game.



Para comprobar si son los punteros que apuntan a los textos del menú principal, cambio de posición el puntero de load game por el de new game, intercambiando el valor del byte menos significativo



Podemos ver como ahora el puntero que apuntaba a load game ahora muestra el texto new game y a la inversa pero ojo si apretamos en new game lo que hara será la función de cargar juego (load game) solo hemos cambiado los textos

creo que esta vez si son los punteros, en fin solo queria poner los progresos, cualquier cosa erronea en el post, no dudeis en corregirme
sigo trabajando
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 1:31 pm    Título del mensaje: Responder citando

Gracias gadesx, me he descargado la fuente la he instalado, solo es que veo los hexadecimales demasiado pixelados pero se ven rectos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5432
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 1:32 pm    Título del mensaje: Responder citando

Pues yo pongo la "Courier New" , Normal, 12, y se ve de vicio.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 2:10 pm    Título del mensaje: Responder citando

los punteros que he encontrado son de 4 bytes? lo digo por la estructura que tienen.



A4 A1 0D 80
98 A1 0D 80
8C A1 0D 80
...
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Wed Aug 05, 2015 2:18 pm    Título del mensaje: Responder citando

perdonar, me respondo a mi mismo.
si son punteros de 4 bytes low endian
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
peter smith



Sexo: Sexo:Hombre
Registrado: 24 Oct 2014
Edad: 36
Mensajes: 18
Estado: Offline
MensajePublicado: Thu Aug 06, 2015 2:12 pm    Título del mensaje: Responder citando

Vuelvo a los punteros de texto del juego.

He vuelto a volcar en un archivo la memoria del juego desde el emulador PSX 1.13 y estos son los offsets de los primeros textos

000DD520 Now that's….
000DD4E8 That dream….
000DD598 Oh well,….
000DD578 I've been….
000DD53C How am I….
000DD5B0 I wonder…
000DD658 Hello?...
000DD650 What!?...
000DD638 The Black Cats…
000DD60C Packs of kittens…
000DD5E8 Yes Sir!...
000DD5D0 I'll be right…
000DD698 Ther goes my day…
000DD680 It's a dirty job…
000DD660 but some dog's…

Resto el offset del archivo al offset de la memoria y obtengo la diferencia

000DD520 - 005AA398 = 10xF B33188
000DD4E8 - 005AA360 = 10xF B33188


Me imagino que me salen tantas F porque estoy restando un valor mayor a un menor

CUE:
“Tienes que buscar la diferencia, que será el valor a sumar a cada offset que te indica ese editor. Por ejemplo, si el editor te dice que los textos están en 0x0010 y 0x0022 y esos valores indican 0x800E3341 y 0x800E3353, eso indica que se ha sumado 0x800E3331”

Entiendo que me decías lo siguiente:

0x0010 + 0x800E3331 = 0x800E3341
0x0022 + 0x800E3331 = 0x800E3353

Por lo tanto la diferencia en este caso es E3331 y la que me ha salido a mi en el juego al restar offsets es B33188

para averiguar el siguiente puntero solo hay que sumar la diferencia al offset en archivo del siguiente texto

sumamos al offset en archivo del tercer texto la diferencia
005AA410 + 10xF B33188 = 10DD598

me da el offset del principio del tercer texto en memoria 10DD598

invierto sus valores 98 D5 0D

busco en el windhex ese valor hexadecimal en el archivo, me da un solo resultado, ya tengo el puntero del tercer texto
me fijo que está al lado de los demás punteros de texto



entre puntero del primer texto y el segundo texto hay un puntero en medio quiero saber donde apunta o si tan siquiera es un puntero asi que hago el proceso inverso

cojo el supuesto puntero 08 D5 0D
invierto valores 0D D5 08

resto la diferencia al supuesto puntero para que me de el offset al que apunta
0DD508 - B33188 = 5AA380

resulta que si es un puntero y apunta a la segunda linea del primer texto
"good night's sleep!"


Volver arriba
Ver perfil del usuario Enviar mensaje privado  
GHANMI



Sexo: Sexo:Hombre
Registrado: 10 Oct 2012
Edad: 27
Mensajes: 30
Estado: Offline
MensajePublicado: Thu Oct 29, 2015 4:28 am    Título del mensaje: Responder citando

Lo siento por mi Inglès pero no habla español muy bueno (can understand, not speak). Tengo una duda, in esta juego no encontra la fuente.

There's a TIM font (lots of stuff is uncompressed too in TIM, visible with timviewer, like title screen, map screen, etc: let me know if you need my notes about that stuff) but it's used for HP messages during gameplay, not for story text.

Usually with older SNES/GBA roms I just load the entire ROM but in this case it's useless. I tried to be more clever and dump the VRAM off ePSX and examine it with tile molester. It was useless with all codecs be it the recommended 4bpp linear reverse, or the 15RGB codec which gave what looked like white characters (8px too) but didn't match up with anything in JP/Eng and were only 4 or 5 and couln't be everything on screen.

I'm having sort of the same problem with Rapid Reload too (which stores its boss dialogs and everything as big images and are just as useless).

I'm sure I'm doing something wrong, but not sure what exactly.

Also, is there some sure-fire way to know where the font comes from in the big iso file? At least the approximate place. I know the emulator's debugger should be used, but how? Thanks
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas Todas las horas están en GMT + 1 Hora
Ir a página 1, 2  Siguiente
Página 1 de 2

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

Temas Relacionados
 Temas   Respuestas   Autor   Lecturas   Último Mensaje 
No hay mensajes nuevos Interecasa les trae los productos de esta temporada (XD) 3 gadesx 1698 Thu Oct 10, 2013 12:59 pm
gadesx Ver último mensaje
No hay mensajes nuevos Pero qué demonios de traducción es esta 8 gadesx 3873 Fri Dec 21, 2012 8:20 pm
CUE Ver último mensaje
No hay mensajes nuevos Cual es esta cancion? 10 carloscass1994 3885 Sat Dec 08, 2012 12:56 pm
SupraBT Ver último mensaje
No hay mensajes nuevos Puñaladas de esta "next gen" 36 gadesx 12015 Tue Jul 31, 2012 8:13 am
gadesx Ver último mensaje
No hay mensajes nuevos Monolith Soft, hay que seguir a esta gente 6 gadesx 4528 Fri Oct 14, 2011 7:07 pm
Gryphus-X Ver último mensaje
 


Crear foro gratis - Powered by phpBB © 2001, 2005 phpBB Group
subRebel style by ktauber