Investigación | En Progreso | TLoZ Minish Cap.

Like Tree90Gracias
Respuesta
 
Herramientas Desplegado
  #1  
15/03/2017
Predeterminado Investigación | En Progreso | TLoZ Minish Cap.
Investigación: The Legend Of Zelda, Minish Cap





Datos:

  • Titulo de Descarga: The Legend of Zelda - The Minish Cap (U)(DCS)
  • Código interno del Rom: GBAZELDA MC.
  • Idioma: USA
  • Version: 01

(La versión en español es sólo la multi-idioma, teniendo muchisimo menos espacio en la Rom y demasiados punteros)


Lista de cosas a Investigar:

  • Tabla de textos
  • Compresión o no de graficos
  • Estructura de Mapas
  • Scripts - Eventos
  • Tablas de Enemigos
  • Rutinas de utilidad
  • Rutinas generales

Herramientas usadas:
  • VBA & VBA-M & VBA-SDL-H
  • Translhextion
  • HxD
  • NLZ - GBA Advance
  • IDA Pro 1.6


Datos Especiales:

- Existen "Offsets Especiales", que por lo general empiezan en 0x80xxyyzz que son calculados mediante una fórmula matemática:
f(x) = x + 0x80000000 - 0x08324ae4

Offsets Encontrados:

Spoiler



Textos.

0x089CD731 Inicio texto de introducción.

Gráficos.

0x0836E448 - "Tileset 1"

0x08370C18 - "Tileset 2"

0x083734f0 - "Tileset 3"

Tablas.
0x08052E74 : Offset de tabla: 0x0810246C ??

0x08052E78 : Offset de Tabla: 0x08107988 ??

0x08052E7C : Offset de Tabla: 0x0810309C Aparentemente contiene los bloques de cada mapa/tileset

0x08052E80 : Offset de tabla: 0x080B755 ??

0x08052E84 : Offset de tabla: 0x0813A7F0 ??

0x08052E88 : Offset de tabla: 0x080D50FC ??





Roms Rotas: 6
_____________________________

Éste tema se planea que será como un "Diario" donde iré poniendo las cosas que vaya investigando, pero si alguien quiere aportar en el camino, bienvenido sea xD
_____________________________

#Día 1

- Rom Descargada.

- Post creado.

- Búsqueda en internet de posibles datos ya investigados.
(La búsqueda parece no dar resultados, DataCristal está caido, RomHacking.net también)


- Empezando por el texto, hasta ahora es solo ASCII, no está comprimido ni cifrado.

- El espacio vacío parece empezar en 0xDE7DC0 aprox

- Los punteros parecen funcionar distinto que en las roms de Pokémon.

- +1 Rom Rota.

- El texto se puede escribir encima sin ningun problema, solo con HxD en Ascci


- Parece que el texto está todo junto.


# Día 1 - Inciso 2

# Kaiser el puto amo - 1

# Día 2

# Día 2 - Inciso 2

# Día 3

# Kaiser el puto amo - 2

Retirado del RomHacking




Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.



Última edición por Cheve_X; 20/03/2017 a las 23:34
  #2  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Me encanta el rom hacking en otros rom, como yo en el FE 6,7 y 8. Te intentare ayudar en todo lo que esté en mi mano


  #3  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Genial. Si en en algun momento me libero un poco veo si te puedo ayudar aportando algo.
Siempre es bueno ver que se comienzan nuevas investigaciones.

¡Suerte con los graficos! Ojala sean comprimidos y no encriptados, asi te ahorras unas cuantas horas de debugueo... xD

o_O
  #4  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Hola, de todas las investigaciones esta es la que mas me ha llamado la atencion ya que involucra el zelda un juego q marco mi infacia igual q pokemon pero a diferencia este era pa cuando me aburria de pokemon. Haci q por lo viejos tiempos tratare de ayudarte con lo que este en mis manos. saludos y suerte!
  #5  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
#Día 1 - Inciso 2

Llueve, hace frío, tengo mate con café y no trabajo. Estoy inspirado y seguiré mirando un poco.

________________________________________

- NLZ parece leer todos los tilesets y algunos gráficos extra.

- El primer mapa parece estar compuesto de tres tilesets:

"Tileset 1" 0x36E448

"Tileset 2" 0x370C18

"Tileset 3" 0x3734f0



- Por motivos de investigación llamaré al mapa de fuera de la casa de Link mapa 0

- No existe ningun puntero al offset 0x36E448

- En 0x080B14D8 el juego descomprime el Tileset 1

- Ésto se ejecuta dos veces antes de cargar el mapa

- Rom Cargada en IDA Pro (Gracias @Sonicarvalho , tu Tutorial siempre me ayuda)

- Parece ser que 0x080B14D8 es el offset a una funcion que llama al SWI 0x12 y retorna ya que lo usar siempre para descomprimir imágenes (En vez de llamar directamente al SWI, malditos HDP, como si eso les ahorrara taaantas lineas lptm xD) (Anotado en el IDA)

- 30 minutos intentando trackear la parte en la que selecciona el tileset a cargar, una tabla de mapas, de tilesets, o de lo que sea relacionado, sin resultados.

- Se me acabó el primer termo de agua, a cargar otro.

Aquí lo dejo por hoy.

Retirado del RomHacking




Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.


  #6  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
¡Hey, una buena investigación la que elegiste, sí señor! Creo que rom hackear usando esta rom base podría traer mucha frescura y la dinámica de juego digamos que es más directa que la de Pokémon. Una pregunta, ¿has probado hacer un edit en plan "kamikaze"? Me explico, hacer parches trastocando ciertas partes del rom y probar más o menos si ahí van cosas importantes. De todas formas, con una herramienta para debuggear la RAM se va por un camino un poco más selectivo.

De momento llegaste a hacer lo básico, cambiar textos, pero tiene buena pinta, ¡vamos a ver qué más nos traes!
Gracias: Cheve_X
  #7  
15/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Creo que encontre como funcionan los punteros de los tilesets.

Partiendo de un offset "común", como los que usamos en los roms de pokemon, digamos el offset del tileset 1: 0x36E448

Aplicando la función:
f(x) = x + 0x80000000 - 0x08324ae4

Nos da: 0x800fe38c. Que permutado es 8C E3 0F 80. Remplazando todas las coincidencias del rom por el resultado de aplicar la función a otro tileset, conseguí exitosamente hace b*sta el mapa

No lo probé mucho y me quedé sin tiempo, por lo que lo dejo acá. Pero con eso, en teoría (a no ser que haya factores que no esté evaluando), se tendría que poder repuntear el tileset por otra imagen comprimida en Lz77.

o_O

Última edición por Kaiser de Emperana; 16/03/2017 a las 01:57
  #8  
16/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Espero que esto sea el inicio de algo grande. Gran trabajo
  #9  
16/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Muy guapa la investigación,espero que averigües como hacer buenos hacks de Zelda,
Suerte!!!!


Enviado desde mi iPad utilizando Tapatalk
  #10  
16/03/2017
Predeterminado Respuesta: Investigación | En Progreso | TLoZ Minish Cap.
Dicho por Kaiser de Emperana Ver mensaje
Creo que encontre como funcionan los punteros de los tilesets.

Partiendo de un offset "común", como los que usamos en los roms de pokemon, digamos el offset del tileset 1: 0x36E448

Aplicando la función:
f(x) = x + 0x80000000 - 0x08324ae4

Nos da: 0x800fe38c. Que permutado es 8C E3 0F 80. Remplazando todas las coincidencias del rom por el resultado de aplicar la función a otro tileset, conseguí exitosamente hace b*sta el mapa

No lo probé mucho y me quedé sin tiempo, por lo que lo dejo acá. Pero con eso, en teoría (a no ser que haya factores que no esté evaluando), se tendría que poder repuntear el tileset por otra imagen comprimida en Lz77.
Luego de 30 minutos de no llegar al mismo resultado, me di cuenta que usaste un Tileset diferente al que mencionas xD
Pero si, funciona Me gustaría saber cómo llegaste a esos valores

____________________________________

#Día 2

- +5 Roms rotas por lo de arriba.

- 0x80000000 - 0x08324ae4 siempre es +0x77CDB51C El "Numero de Oro"

- 0x0836E448 + 0x77CDB51C = 0x80049964 (Tileset 1 /exterior/)

- Permutado: 64 99 04 80

- Luego de buscar e ir reemplazando las coincidencias, la primera es el tileset del primer mapa (0x08 100E88, 88 0E 10 08)


- Al costado del offset donde se escribe el offset del tileset 1 se vé lo que parece un puntero normal

- "54 0E 10 08"

- En el offset 10 0e 54 encontramos "2C D0 03 80" lo que parece un offset sacado con el número de oro.

- Restado con el numero, queda 08 36 1B 10. Estoy más convencido de que es un offset a un dato y que lo que le sigue en el offset 100E58 son datos de como usar "eso" que está allí guardado.

- "Eso" resultó ser un tileSet pero que no se usa en el primer mapa. ¿Encontraré un puntero al puntero que tiene el offset del TileSet 1?

- Encontrado en 0x08 100F3C

- Estimando Estructura de Mapa:

De 0x08 100F31 a 0x08 100F6B

00 00 00 00 00 00 00 00 00 00 00 88 0E 10 08 C4 0E 10 08 00 0F 10 08 28 6C 06 80 00 00 00 06 00 40 00 80 D8 8A 06 80 00 40 00 06 00 40 00 80 C0 A7 06 80 00 80 00 06 00 40 00 80

Naranja: Puntero al offset + Numero de oro del TileSet1

Azul: Puntero al Offset + Numero de oro de algún TileSet Primario

Rojo: Puntero al Offset + Numero de oro de algún TileSet Primario

Amarillo: Offset + Numero de oro de algún TileSet Secundario o Terciario

Magenta: Desconocido. (¿Dimensiones de mapa?)

Purpura: Offset + Numero de oro de algún TileSet Secundario o Terciario

Cyan: Offset + Numero de oro de algún TileSet Secundario o Terciario


- Busqué un puntero al offset 0x08 100F3C (donde está el puntero naranja) y me encontré con una tabla que empieza en 0x08 102468

- Parece ser una tabla de TileSets

- Buscando 08102468 permutado me arroja a otra tabla.

- Tengo que cocinar, lo dejo por ahora.

Retirado del RomHacking




Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.


Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 05:23.
Skin Afternoon por Sage