Documentación sobre ASM orientado a romhacking (?)

Lugar donde se intentarán resolver problemas específicos
Responder
Avatar de Usuario
Leeg
Mensajes: 379
Registrado: 20 Mar 2014, 00:25

Mensaje por Leeg » 28 Ago 2014, 11:21

Pues me pondré a comparar datos a ver si saco algo... a ver si con suerte es poca la variación.

¡Muchas gracias!

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

Mensaje por CUE » 28 Ago 2014, 11:35

Siempre hay más de lo que parece, y no siempre se ve a simple vista. Ahí está la gracia de estas cosas.

Por ejemplo, si la decodificación termina cuando encuentra la pareja 00-00 significa que no puede haber datos comprimidos que se codifiquen así, que sería el significado de repetir 0x00+3 bytes desde la posición 0x000, y es una de esas cosas que nunca te van a explicar en los manuales. Eso también implica que se debe añadir al final de la codificación el flag 0 con los bytes 0x00-0x00 para indicar que se acabe el proceso, siendo la longitud de los datos decodificados innecesaria (al menos, eso parece), y eso no te lo hace el programa de Okumura (mira que manda cojones que un programa de 1989 se siga usando hoy día).

Eso me recuerda que los datos del fichero que pusiste pueden empezar en 0x7E: 00-00-03-10 00-00-06-20, donde los 4 primeros bytes indican la longitud decodificada en valores de 16 bits y los 4 siguientes la longitud en bytes (vamos, que el primer valor es la mitad del segundo, dicho en cristiano vulgar). O eso o empieza en 0x80 con 03-10 00-00 06-20. En cualquier caso, eso debería bastar para ver si en la rom aparece algún puntero a esos datos, que sería muy útil para trazar el código y ver dónde está la rutina decodificadora para ver cómo controla el anillo usado en la compresión. Eso te lo dejo a ti, que yo sólo lo he mirado de forma teórica, viendo los 4 datos que has posteado.

Avatar de Usuario
Leeg
Mensajes: 379
Registrado: 20 Mar 2014, 00:25

Mensaje por Leeg » 28 Ago 2014, 16:11

No sé muy bien qué significa esto pero... manteniendo el 03 10 00 00 06 20 puedo editar lo que sea después en ese archivo y la ROM no se corrompe. Es decir, puedo pegar el 03 10 00 00 06 20 y después los datos de mi nuevo archivo comprimido y sí los interpreta. Si los pego directamente sin eso delante lo que ocurre es que la VRAM se llena de basura y se cuelga todo.

Lo malo es que la imagen no sale bien porque ese valor no es el que hay que ponerle, o porque la compresión no es la correcta... pero al menos ya no se cuelga ;D

¡---AÑADIDO----!

Lo he conseguido. Resulta que estaba copiando mal los datos. El archivo que he comprimido con LZSS empezaba con un byte 00, y después del 03 10 00 00 06 20 ya había otro 00, entonces yo lo estaba dejando 03 10 00 00 06 20 00 00 y mis datos. Por eso se veía corrompida la imagen. Pero al borrar el 00 que sobraba sale fenomenal.

Aquí una prueba:
[img]http://i.imgur.com/5cQPq17.png[/img]

Confirmo que ese 03 10 00 00 06 20 es el tamaño del archivo, porque si lo aumentas coge más imagen en la VRAM.

¡Muchas gracias por la ayuda!

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

Mensaje por CUE » 28 Ago 2014, 18:34

Ahora ya sé qué juego es. Hay una traducción al ruso, así que puedes comparar ambas ROM para ver dónde están los punteros, que siempre viene bien y te ahorra un montón de tiempo.

Los gráficos comprimidos son:
- 128 bytes con la paleta (64 colores)
- 2 bytes con la longitud en datos de 16 bits
- 2 bytes a cero
- 2 bytes con la longitud en datos de 8 bits
- datos comprimidos
- mapeado (código de tile y atributo de la imagen que se pone en pantalla)

El mapeado se ve en la imagen de los ficheros que pusiste. La primera línea son los tiles 01-02-03-04-05-06-07-08-09-0A-0B-0C. El resto te dejo que lo averigues.

La verdad es que tiene todo a la vista. ¿Qué es lo que hay exactamente en los datos comprimidos? ¿Los logos?

Avatar de Usuario
Leeg
Mensajes: 379
Registrado: 20 Mar 2014, 00:25

Mensaje por Leeg » 28 Ago 2014, 18:58

¿Cómo has descubierto qué juego es? XDD Eres de lo que no hay.

Unos chicos me pidieron que les reemplazara un logo y me pareció que podría hacerlo, aunque si no me hubieras dicho que era LZSS aún estaría sufriendo, así que gracias de nuevo ;)

Los datos comprimidos son los 4 logos: SEGA, TECTOY, 3D Realm y el de Duke Nukem.

Creo que voy a proponerles traducirlo, a ver qué dicen. Si dices que además tiene una traducción al ruso, entonces está todo el trabajo ya casi hecho, en lo que a identificar punteros respecta. Y el texto, en principio, está todo a la vista, también lo está la fuente del juego.

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

Mensaje por CUE » 28 Ago 2014, 19:07

Es que lo de πPiko me ha recordado la reedición del juego, que se ha comentado hace poco, y un colega brasileño me lo estuvo comentando:
http://pikointeractive.com/blog/steam-a ... sis-games/

La verdad, estos juegos mejor dejarlos para PC, que los destrozan con estas conversiones a consolas.

Avatar de Usuario
Leeg
Mensajes: 379
Registrado: 20 Mar 2014, 00:25

Mensaje por Leeg » 28 Ago 2014, 19:14

Sí, son ellos los que me han pedido que les haga eso.

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

Mensaje por CUE » 28 Ago 2014, 20:24

No entiendo. ¿Quieres decir que pides ayuda para que otros hagan negocio con el trabajo de los demás?

Avatar de Usuario
Leeg
Mensajes: 379
Registrado: 20 Mar 2014, 00:25

Mensaje por Leeg » 28 Ago 2014, 20:34

¿Negocio? ¿Que esto después lo venden o algo? o_O Les diré que nos paguen a ti y a mí, ¿no?

Me enviaron un correo hace unas semanas al blog diciendo que si les podía cambiar ese logo, pero no sabía nada más de ellos. ¿Tú qué es lo que sabes? ¿o qué debería saber yo? D:

PD: Yo todavía no les he pasado nada, si me dices que esto es algo chungo voy a pasar de ellos :S

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

Mensaje por CUE » 29 Ago 2014, 08:38

Esta empresa, como se ve en su blog o en su web, se dedica a redistribuir juegos. Han sacado varios cartuchos para SNES, que venden a $40, además de un montón de homebrews a $25-30. Entonces no me parece normal estar haciendo algo para que otros lo usen y saquen dinero por ello, que a mí me cuesta mi tiempo y mi esfuerzo hacer estas cosas, y no me resulta agradable que otros se aprovechen de ello, que no es esa la finalidad que doy.

No te estoy culpando de nada, pero creo que no sabes exactamente lo que pedías desde el primer post y para quién ibas a hacerlo.

Responder