Archivos Overlay comprimidos LZ Okamiden

Lugar donde se intentarán resolver problemas específicos
Avatar de Usuario
gadesx
Administrador
Administrador
Mensajes: 1984
Registrado: 24 Ene 2011, 16:43
Ubicación: El puche
Contactar:

Mensaje por gadesx » 02 Ago 2011, 15:32

el CT2 yo lo trastee un poco pero es como el windhex con mas historias y algo lioso,
¿se puede hacer algo interesante con los overlays con ese?

PD: Por cierto veo que te gusta el oro XDDDDDDDDD

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 02 Ago 2011, 17:00

Pues sí Gadesx funciona bien con el CT2, con el Winhex lo intenté yo... Y
me parece algo lioso el Winhex. (Sino se usa tabla claro está...)

Y bien nuestros candidatos de los overlays son:

overlay_0000 overlay_0001 overlay_0006 overlay_0009 overlay_0012 overlay_0013

Y ya está xD.

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 02 Ago 2011, 18:20

Pues debo estar muy espeso hoy porque no consigo hacer nada con el CT2, así que explícamelo pasito a pasito, como las muñecas de famosa dirigiéndose al portal.

Si tengo tiempo mañana hago unas cositas para que puedas modificar esos overlays, que pensé que iban a ser un montón más, sin que tengas que preocuparte de la compresión, y así toda esta historia queda resuelta. En teoría no debería dar problemas, pero nunca se sabe, así que no dejes de hacer pruebas cada vez que modifiques esos archivos. Y, si todo va bien y no estoy equivocado, podrás presumir de haber hecho el primer trabajo sobre una rom de DS usando overlays modificados.

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 02 Ago 2011, 21:01

Bueno pues pasito a pasito:

- Los archivos overlays está extraidos por el CT2, me pongo encima del 0001 por ejemplo
y le damos extract
- Luego abrimos desde el CT2 el overlay 0001 extraido
-Sale un editor hexadecimal edita lo que quieras
- Luego guardas lo que has editado del editor hexadecimal
-Poniendote encima del 0001 le damos compress y vamos directamente al overla 0001, luego
el programa se queda parado un momento y le cerramos y guardamos los cambios.

Y fin de la historieta.
El miércoles me iré a la playa. Así que no volveré hasta el lunes.
Cuando podamos se hace.

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 03 Ago 2011, 09:37

No me has dicho que hay que abrir la rom, ni seleccionar sistema de ficheros, ni... Te anoto dos gallifantes con perspectiva Aab negativa (como se nota que he visto en el telediario toda la gaita ésa de las calificaciones de deuda).

Veo que así se decomprime (de forma correcta) y se comprime (de forma un tanto rara, pues nunca quedan las cosas como en el original). Hay algunos problemillas, como que no se puede cambiar el tamaño del fichero descomprimido, aunque en este caso no parece ser necesario y no parece controlar bien qué hacer cuando la compresión no ahorre bytes. Lo que hace el CT2 es tomar los datos de la tabla de overlays, que es algo que yo también hago, pero sólo actualiza en ella las longitudes, lo cual puede ser un problema si comprimes un fichero y te sale que su longitud es mayor que la que tiene sin comprimir, o si el fichero descomprimido cambia de longitud. Yo, como soy más vago, procuro hacer las cosas para que me cuesten el mínimo esfuerzo, así que modifico la tabla de overlays para indicar que no van comprimidos, así que me evito tener que recomprimir las cosas, pudiéndolas poner tal cual, y el tiempo que me ahorro lo puedo emplear en [s]ver páginas de titis en pelotas[/s] otras cosas de más provecho.

Aquí está todo lo que necesitas: http://www.megaupload.com/?d=QC3LOE27
Reemplaza el y9.bin por el que está aquí (es la tabla de overlays) y los 6 overlays que hay están sin comprimir, para que sólo tengas que cambiar los textos, sin tener que comprimir después.

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 03 Ago 2011, 11:14

Vale, lo probaré más tarde cuando vuelva de vacaciones el lunes.
Gracias CUE. Buen verano ;)

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 25 Ago 2011, 14:54

NOTA DEL ADMINISTRADOR: mensajes separados de otro tema y añadidos a éste


CUE una pregunta, ya investigando e investigando, no encuentro los punteros ni de coña, especialmente
en el del overlay_0006.
Pero he visto en el CT2 dos tipos de archivos, pero que solamente se ven en el CT2:
arm9olvtable.bin
arm7ovltable.bin

Raro es, veo números y todos, te paso los dos archivos extraidos
con el CT2:
el arm7ovltable.bin no tiene nada... 0BYTES

http://www.multiupload.com/WSWG151BHB

No sé si es la tabla de punteros, pero veo más extraño.

EDIT: falsa alarma, es el Y9.bin -_-
Nunca encontraré la maldita tabla de punteros.

Skye
Mensajes: 95
Registrado: 03 Ago 2011, 20:09

Mensaje por Skye » 26 Ago 2011, 00:10

Pues hace un rato me puse a intentar encontrar los punteros.
Los overlays son archivos que se cargan en la memoria. La dirección (offset) donde se cargan está en el y9.bin, después del "número" del overlay. Bien, en este caso era 0x207F560. Y si se cargan en la memoria, y los punteros apuntan a los datos, entonces apuntarán a los datos en la memoria digo yo...
Pues sumo el offset de la memoria + el offset de los datos en el overlay. Voy a usar a Issun, que aparece al principio.
0207F560+6C5E8=020EBB48 little endian ->48BB0E02
Busco eso en el overlay y... ¡ahí está! Para probar lo cambio por el puntero de Guard... y sale esto:

[img]http://img200.imageshack.us/img200/7649 ... nteros.png[/img]
Yo diría que funciona...

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 26 Ago 2011, 11:02

Pues siguiendo con el brainstorm, la tabla está localizada, aunque los valores no están ordenados, como era de esperar. Eso sí, todo con direcciones alineadas a 4 bytes.

En la siguiente imagen se indica el principio de la tabla de punteros, que realmente son direcciones de memoria, a las que Tony deberá "de sumar" y "de restar", como los machotes, para encontrar la equivalencia entre cada numerito y su texto correspondiente.
[img]http://img824.imageshack.us/img824/5274/41062648.png[/img]

xulikotony, ya puedes tener un detalle con la muchacha, que se lo merece, como unas flores, unos puntos de karma (que para eso lo ha puesto gadesx en el foro), unos bombones, unas litronas, mucha droga, ... uyyyy, perdón, que he dicho que era para ella :)
Última edición por CUE el 26 Ago 2011, 12:45, editado 1 vez en total.

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 26 Ago 2011, 12:19

Sí, CUE, ya le he dado las gracias. Me lo comentó ella por MSN.
Pero bueno intentaremos "sumar" y "restar" los valores... aunque bueno...
no soy de "ciencias"... así que las mates "malo que soy"... Se intentará al menos
ha encontrado los punteros, a ver según he entendido yo:

0x207F560 es donde está los punteros del OVL0006

0207F560+6C5E8=020EBB48 little endian ->48BB0E02

Luego se le suma más los datos de la tabla donde se encuentra más el OFFSET
y se le da la media vuelta xD
Creo que he entendido eso, pero ¿esto hará que aumente punteros? ¿o que los cambie
a otro lugar? Porque si lo aumentamos me viene de perlas, pero cambiarlos... como hay
tan poco espacio, para tenta gente en el juego.

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 26 Ago 2011, 13:05

Tú sólo trabaja con el fichero del overlay descomprimido. Primero busca la tabla y después resta a cada uno de los valores el inicio del overlay, 0x0207F560, y te sale el offset al texto dentro del fichero, que apuntarás en un fichero, indicando dónde empieza un texto y lo que pone. Lo que tienes que hacer entonces es modificar los textos, ocupando el mismo tamaño total (el de todos los textos en conjunto), dejando todos ajustados a 4 bytes (rellenando con ceros si es el caso). Después sólo tienes que actualizar cada puntero con el nuevo valor, añadiendo otra vez el inicio del overlay a cada dato.

Explicación para tontos (en el buen sentido de la palabra), y empezando en el inicio de los punteros:

Código: Seleccionar todo

- 0000: F8 B9 0E 02 -> 0x020EB9F8 - 0x0207F560 = 0x6C498 correspondiente a "???"
- 0004: 48 BB 0E 02 -> 0x020EBB48 - 0x0207F560 = 0x6C5E8 correspondiente a "Issun"
- 0008: 50 BC 0E 02 -> 0x020EBC50 - 0x0207F560 = 0x6C6F0 correspondiente a "Sakuya"
- 000C: FC C1 0E 02 -> 0x020EC1FC - 0x0207F560 = 0x6CC9C correspondiente a "Young Girl"
- 0010: 70 BC 0E 02 -> 0x020EBC70 - 0x0207F560 = 0x6C710 correspondiente a "Susano"
...
(el primer número es un offset relativo, para que el inicio de la tabla empiece por cero).

Después de traducir todo, desde 0x6C41C hasta 0x6CF13, sin ocupar ni un byte más, buscas dónde empieza cada texto traducido, le sumas el valor del inicio del overlay, lo pones en la tabla y ya está.


~~~ AÑADIDO ~~~
Los punteros de los textos en 0x6E460 están justo delante, en 0x6E420.

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 30 Ago 2011, 10:52

CUE una pregunta, esto ya me sale de maravilla y sale todo. Aunque me haya costado.
A ver la pregunta, ¿yo puedo poner bytes en cero al final para algunos que no me caben? o ¿ponerlos
por los espacios en cero donde haya en el overlay? o ¿ponerlo en los hexadecimales FFFFF?

Un saludo ;)

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 30 Ago 2011, 11:11

Pues como no seas más claro...

xulikotony
Mensajes: 492
Registrado: 29 Jul 2011, 15:38

Mensaje por xulikotony » 30 Ago 2011, 15:11

Lo que quiero decir, si en el overlay_0006 puedo crear hexadecimales 000000 al final, o a la fuerza tengo que ir
a buscarlo por los espacios que han dejado esta gente por los 00000 que hay en el overlay.

Avatar de Usuario
CUE
Administrador
Administrador
Mensajes: 5520
Registrado: 24 Ene 2011, 16:52

Mensaje por CUE » 30 Ago 2011, 16:26

Mejor pon un ejemplo de lo que quieres, que te explicas de pena (o yo estoy muy espeso hoy y no me entero).

Responder