Registrarse

HGSS | Cambios de forma (ASM)

Estado
Cerrado para nuevas respuestas.

Mikelan98

WaH used to be a bigger place...
Buenas a todos. He decidido volver de entre los muertos para abrir un thread a modo de "diario" y poder ir redactando todos los logros que consigo en cuanto al tema de crear distintas formas para los Pokémon. Esto es necesario para dos propósitos en concreto que necesito para mi hack:

* Megaevoluciones
* Formas de Alola

Que si bien se diferencian un poco en cómo programarlos, por así decirlo, ambos comparten una misma investigación que hay que hacer previamente; el saber cómo funcionan los cambios de forma que ya están programados.

De momento he conseguido cambiar el efecto de la Griseosfera, de modo que cambie la forma de Cherrim y no la de Giratina. Teniendo en cuenta que el juego no deja equipar a ningún Pokémon (excepto a Giratina) con la Griseosfera, me las he tenido que apañar con un editor de partidas para equipar a un Cherrim con la Griseosfera, de modo que el cambio de forma se produzca al quitarle dicho objeto.



El procedimiento ha sido relativamente sencillo; cambiar un halfword que correspondía al número de Giratina y ponerle el de Cherrim (de 0x01E7 a 0x01A5) y cambiar el ID de la forma, de modo que sea al quitar la Griseosfera y no al darla cuando cambie a la forma 1 (Forma Origen en Giratina o Forma Descapotada en Cherrim).

La subrutina, y más concretamente los bytes que he editado, se localizan en torno al offset 0x71CC0 del arm9.
 

Mikelan98

WaH used to be a bigger place...
Tal y como sospechaba, esto de crear nuevas formas acabaría siendo más una ingeniería que una investigación. He redirigido una función crucial para todo el tema este de las formas, de modo que la he podido expandir y crear una nueva subrutina donde asignar a pelo los archivos gráficos (sprites) que van a usar, dependiendo de la forma que tengan. Lo he hecho de modo que sea relativamente "fácil" crear más formas, simplemente introduciendo datos binarios en una parte del arm9.

No me enrollo más, dentro vídeo:

 

Naren Jr.

Puto amo
Usuario de Platino
Vaya que gran progreso...

Hace un par de días preguntabas en el chat como funcionaba en GBA y mira ya como lo hiciste solo en DS.
Realmente llevas eso a otro nivel, lastima los comentarios, siempre pasa pero bueno.

Recuerda que esto que estas haciendo en DS es sumamente importante, si bien en GBA era el Boom en DS sera el BAAAAAAAAAAAM.
 

H.B.P

Emperador Kaktiácero
Miembro de honor
@Mikelan98 Un pequeño avance que se agradece en lo que refiere a los cambios de forma, aunque quisiera saber si fuiste más allá con esto. ¿Has trasteado con la animación por la que pasa Giratina o Shaymin cuando se transforman?
 

Juan Kio

Aprendiendo decomp...
La verdad es un gran aporte y avance al hacking nds
siempre se agradece que lo compartas
saludos y ánimos!:D
 

Lunos

Enfrentando a La Organización
Miembro insignia
Buenas a todos. He decidido volver de entre los muertos para abrir un thread a modo de "diario" y poder ir redactando todos los logros que consigo en cuanto al tema de crear distintas formas para los Pokémon. Esto es necesario para dos propósitos en concreto que necesito para mi hack:

* Megaevoluciones
* Formas de Alola

Que si bien se diferencian un poco en cómo programarlos, por así decirlo, ambos comparten una misma investigación que hay que hacer previamente; el saber cómo funcionan los cambios de forma que ya están programados.

De momento he conseguido cambiar el efecto de la Griseosfera, de modo que cambie la forma de Cherrim y no la de Giratina. Teniendo en cuenta que el juego no deja equipar a ningún Pokémon (excepto a Giratina) con la Griseosfera, me las he tenido que apañar con un editor de partidas para equipar a un Cherrim con la Griseosfera, de modo que el cambio de forma se produzca al quitarle dicho objeto.



El procedimiento ha sido relativamente sencillo; cambiar un halfword que correspondía al número de Giratina y ponerle el de Cherrim (de 0x01E7 a 0x01A5) y cambiar el ID de la forma, de modo que sea al quitar la Griseosfera y no al darla cuando cambie a la forma 1 (Forma Origen en Giratina o Forma Descapotada en Cherrim).

La subrutina, y más concretamente los bytes que he editado, se localizan en torno al offset 0x71CC0 del arm9.
Sé que ya pasó poco mas de medio año desde que posteaste esto, pero necesito decirte que eres una bestia (en el buen sentido, obviamente).
Gracias a los posts de Helix y Kannon fue que pude ver este post ya que no solia venir mucho a esta zona de Wah y no saben cuanto me alegro.
Megaevolución en NDS.. ¡Y el descubrimiento hecho por un hispano hablante!
Es maravilloso, sencillamente no tengo nada que decir excepto alabanzas.
 

Mikelan98

WaH used to be a bigger place...
Helix Boo♪;385814 dijo:
@Mikelan98 Un pequeño avance que se agradece en lo que refiere a los cambios de forma, aunque quisiera saber si fuiste más allá con esto. ¿Has trasteado con la animación por la que pasa Giratina o Shaymin cuando se transforman?
Qué va, de momento esto es 100% funcional para Pokémon que no cambian de forma, sino que tienen varias entre las cuales no pueden cambiar (formas de Alola, Basculin, etc.) y que no cambien de tipo (todavía tengo que investigarlo jeje).

Para las megaevos tendré que investigar cómo usar los objetos para cambiar la forma y cómo reproducir las animaciones.
 

juan camilo

Usuario de oro
Una pregunta cuando te refieres a:

cambiar un halfword que correspondía al número de Giratina y ponerle el de Cherrim (de 0x01E7 a 0x01A5) y cambiar el ID de la forma, de modo que sea al quitar la Griseosfera y no al darla cuando cambie a la forma 1 (Forma Origen en Giratina o Forma Descapotada en Cherrim).

La subrutina, y más concretamente los bytes que he editado, se localizan en torno al offset 0x71CC0 del arm9.

Me imagino que usas Crystal Title 2 pero la en cuestion donde ubicas aca ID de los pokemon y mas ese metodo de cambio de forma. Podrias explicar mas detallamente ?
 

Mikelan98

WaH used to be a bigger place...
Re: Respuesta: HGSS | Cambios de forma (ASM)

Una pregunta cuando te refieres a:

cambiar un halfword que correspondía al número de Giratina y ponerle el de Cherrim (de 0x01E7 a 0x01A5) y cambiar el ID de la forma, de modo que sea al quitar la Griseosfera y no al darla cuando cambie a la forma 1 (Forma Origen en Giratina o Forma Descapotada en Cherrim).

La subrutina, y más concretamente los bytes que he editado, se localizan en torno al offset 0x71CC0 del arm9.

Me imagino que usas Crystal Title 2 pero la en cuestion donde ubicas aca ID de los pokemon y mas ese metodo de cambio de forma. Podrias explicar mas detallamente ?
No he entendido bien la pregunta porque podría estar mejor redactada, pero si es lo que creo que me has preguntado: uso IDA para desensamblar, y mi cerebro para imaginar hipótesis e interpretar resultados. Y para editar la ROM en hex no uso CT2, sino HxD.
 
Estado
Cerrado para nuevas respuestas.
Arriba