Registrarse

Toqueteando MD Red Rescue Team

Estado
Cerrado para nuevas respuestas.

Kaiser de Emperana

Called in hand
Bueno Básicamente lo que está en el título. Me entraron ganas de hacer algo nuevo y me puse a hackear un poco el Mystery Dungeon Red Rescue Team (USA) , código B24E.
¿Por qué no la versión española dirán? Porque no hay. La única versión española que pude encontrar es multi-lenguaje y creo que prefiero tener más espacio libre a tener textos en español, que en principio la idea sería cambiar la mayoría.
¿Por qué no los juegos de ds? Porque me da pereza. No conozco nada la consola y no hay que buscar más motivaciones para dejar el proyecto, que soy bastante de ésto xD

Por lo que me puse a ver, parece que nadie se puso a investigar esta rom. Así que estoy empezando desde cero.

La verdad es que lo que tengo en estos momentos tiende a nada, pero como suelo dejar mis proyectos antes de siquiera llegar a mostrar algo, esta vez voy a intentar postear cualquier pequeño avance que logre.
Además así, en una de esas engancho a alguien.

Como dije, voy a ir dejando las cosas que vaya haciendo:

¿Por qué investigué esto?
Porque supuse que las paletas tendrían en general el mismo sistema de encriptación, pero parece que elegí un mal gráfico modelo para hacer la investigación xD
Pero bueno, ya encontraré como modificar las demás paletas. Y menos mal que no usan este sistema, porque es de las cosas más ineficientes que he visto en mi vida...

Ah y para los que les interese, la rutina de "encriptación" está en 0x0800472c (en realidad empieza antes, pero esta es la parte importante)

--------------------
¿Qué necesito? dijo:
• Un editor hexadecimal
• Un rom de MD
• VBA
• Python 3
Este script de python.
Y ahora vamos con como cambiar las paletas. Yo voy a cambiar el portait de Squirtle.
Para encontrar la paleta en el rom primero necesito tener la paleta desencriptada, así que vamos hasta un momento en que aparezca el portait de Squirtle y abrimos el Map viewer del VBA para ver que paleta está usando.

Y con el Palette y el Memory Viewer guardo la paleta desencriptada.

Abrimos la paleta con algún editor hexadecimal y la copiamos.
La paleta del portait de Squirtle es:
Código:
00 00 E5 20 50 2D A9 41 D0 39 2B 52 35 42 8D 5E 98 4A 0F 6B 11 6F 52 7B 56 5B 95 7F 9B 5F DC 5F
Ahora lo que necesitamos es el script de python que dejé adjunto en el tema. Lo ejecutamos, seleccionamos Encrypt palette y pegamos los bytes de la paleta. Apretamos enter y el programa hará lo suyo.

Abrimos el archivo "encrypted_palette.out" que acaba de ser creado, con el editor hexadecimal. Y copiamos la paleta encryptada.
En mi caso:
Código:
00 00 00 80 2F 3F 47 80 87 57 5F 80 4F 6F 87 80 87 77 77 80 5F 8F A7 80 AF 8F 87 80 6F A7 BF 80 C7 A7 97 80 7F C7 D7 80 8F C7 DF 80 97 D7 F7 80 B7 D7 B7 80 AF E7 FF 80 DF E7 BF 80 E7 F7 BF 80
Todo lo que acabamos de hacer es para encontrar la dirección de la paleta en la rom. Por lo que abrimos nuestro rom con un editor hexadecimal, seleccionamos para realizar una busqueda y buscamos los bytes de la paleta encryptada.

Así encontramos el offset de la paleta. En mi caso 0x16857f8. Anotamos el offset y seguimos.

Ahora lo que necesitamos es la paleta que queremos insertar. Ya cuando vea como cambiar el resto de las paletas voy a hacer una forma un poco mejor de cargarlas. En estos momentos el script que dejo sólo acepta las paletas con el formato anterior. Así que básicamente necesitaríamos los bytes de la paleta como si ya estuviera en el rom. Pueden insertarlas con APE a un rom cualquiera y copiar los bytes, no se, hagan como quieran.
Por ejemplo, yo voy a cambiar la paleta de Squirtle por la siguiente:
Código:
00 00 0A 0C 50 2D F0 20 D0 39 98 30 35 42 BC 28 98 4A 9D 18 FE 20 3E 29 1C 19 7E 31 7B 29 FB 25
Usamos nuevamente la función Encrypt del script de python. Y obtenemos la paleta a insertar, encriptada (nuevamente guardada en el archivo "encrypted_palette.out").
Que contiene en mi caso:
Código:
00 00 00 80 57 07 1F 80 87 57 5F 80 87 3F 47 80 87 77 77 80 C7 27 67 80 AF 8F 87 80 E7 2F 57 80 C7 A7 97 80 EF 27 37 80 F7 3F 47 80 F7 4F 57 80 E7 47 37 80 F7 5F 67 80 DF 5F 57 80 DF 7F 4F 80
Copiamos los bytes y nos dirigimos al rom de vuelta.

Vamos al offset 0x16857f8 y pegamos la paleta. Guardamos y...

*Ya se que los colores son horribles, no era mi objetivo hacer que se viera bien

Pero ahí está. ¡Cambiamos una mísera paleta!

Ya iré trayendo alguna que otra cosa más.

Saludos
 
Personalmente, me encantan los juegos de mystery dungeon, no me he pasado los de gba completos por flojera, pero los de ds los quemé por completo, no he tenido la dicha de jugar los de 3ds; lastimosamente supongo que será complicado hackearlo, porque no hay programas para hacerlo "facilmente", pero tal vez en algún momento me aventure a cambiar alguna paleta o cualquier otra cosa por ver otros horizontes. Suerte con tu investigación. No realizaré el "tutorial" pues porque en este momento estoy centrado en lo mio y no quiero desviarme, en otro momento lo intentaré. :D
 
Buen trabajo en el encriptación! Voy a tratarlo tan pronto como tengo tiempo! Si no has vistolo todavia, yo y pocas otras han compilado mucho información sobre "Red Rescue Team" aqui: http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Mystery_Dungeon:_Red_Rescue_Team. Porque no hay una sistema de archivos en el GBA, sera mas dificil. Pero hemos sido algunos progresos. Estoy trabajando en una editor de sprites, y la sistema de script es bastante interesante también. Siempre me gusta ver mas PMD hackers!
 
Última edición:

Cheve

MoonLover~
Miembro de honor
Cabe destacar que los textos son en codificacion ASCCI asi que con HxD se pueden editar facil :p

Mi tutorial de buscar gráficas comprimidas puede servir, para lo demas existe Tile Editor. :p
 

Kaiser de Emperana

Called in hand
Buen trabajo en el encriptación! Voy a tratarlo tan pronto como tengo tiempo! Si no has vistolo todavia, yo y pocas otras han compilado mucho información sobre "Red Rescue Team" aqui: http://datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Mystery_Dungeon:_Red_Rescue_Team. Porque no hay una sistema de archivos en el GBA, sera mas dificil. Pero hemos sido algunos progresos. Estoy trabajando en una editor de sprites, y la sistema de script es bastante interesante también. Siempre me gusta ver mas PMD hackers!
I can see you don't speak spanish xD
Lol I didn't expect your web to exist, I searched a little and I totally missed it. It is really cool, it will save me a lot of time!
You are actually really advanced. It is nice to see that I am no alone as I thought in the first place.
About my post, it is really not much, I just found the routine and basically port it to python, but I have to start with something... xD
Although I am just starting xD, I'll try to contribute in some way when I achieve some progress!

Cabe destacar que los textos son en codificacion ASCCI asi que con HxD se pueden editar facil :p

Mi tutorial de buscar gráficas comprimidas puede servir, para lo demas existe Tile Editor. :p
Lo primero que intente fue tu tutorial, pero no sirve para el caso. Mystery Dungeon no utiliza ningún metodo de encriptacion o compresion en especifico, lo unico que consigo con el logging son los copiados de memoria de la WRAM a la OAM/PRAM/VRAM.
Es gracioso, porque me puse a hackear MD creyendo que con lo que sabia de las otras roms me seria relativamente sencillo, pero cambia bastante mas de lo que me esperaba xD
Cuando entre a al OAM viewer y no veia los sprites ya me entraron ganas de dejar todo. Despues me di cuenta que los guarda en orden inverso y que estaban al final... xD

----------------------
Progresos como tal no traje nada. No tuve mucho tiempo para trabajar estos dias.

¡Que viva el topic chat!
 
Estado
Cerrado para nuevas respuestas.
Arriba