29950-algunas_dudas_de_scripting_y_asm\[FR]
#14
necrosis corrosiva 28588
Iniciado por Javi4315♪
La estructura de los pokémon es algo un tanto complicado. Y más teniendo en cuenta lo que tú quieres cambiar. Eso del género se encuentra en los 4 primeros bytes de los datos del pokémon, concretamente los que se corresponden con la personalidad. El problema es que si editas la personalidad, te cargas el pokémon.

La personalidad, junto con la OT ID forman el "código" que encripta los datos del pokémon. Por lo tanto, al cambiar una de esas cosas (en este caso, la personalidad), cambia ese código y el juego no puede interpretar bien los datos (bad egg). Para evitar eso, debes desencriptar los datos del pokémon, cambiar la personalidad, y volverlos a encriptar de acuerdo al nuevo código.

Pero ahora se te suma un nuevo problema. Los datos encriptados del pokémon forman 48 bytes, de los cuáles son 4 subestructuras distintas de 12 bytes que cambian de posición dependiendo de la personalidad (24 formas distintas; 4! = 4*3*2*1 = 24). Tendrías también que comprobar si esas subestructuras siguen en el mismo sitio después de la edición o si cambian, en cuyo caso, tendrías que moverlas en el orden correspondiente.

Y además de todo eso, por supuesto, controlar siempre el checksum para que coincida con los datos si cambias algo.

No es algo fácil que se haga con un WBTO ni nada de eso. Tiene que ser con ASM. Precisamente yo estoy trabajando actualmente en una rutina para eso (no concretamente para el género, sino para editar los datos del pokémon), pero es para Emerald. Si para cuando la termine no has conseguido hacerlo, te la adapto para tu rom.


wow de verdad muchas gracias :D voy a intentar encontrar la forma pero en caso de que no gracias por adaptar la rutina, mil gracias.
_____________________________________________________
ya se me fueron las dudas, solo queda ver que puedo hacer con el genero, pero ya puedo dar por resueltas las dudas, gracias a todos los que me respondieron :)