Antes que nada este tutorial lo traigo desde Pokeco, es obra de Spherical Ice Todos los creditos van a el, yo solo comparto la rutina aquí.
Sí bien GBA en cuanto a realismo no es lo mejor, en NDS Nintendo incorporo el gran movimiento de escaleras hacia arriba, Spherical Ice realizo una rutina, para que las escaleras laterales tengan ese efecto, a esto me refiero:
Esto ahora es posible, si bien ya hay un par de usuarios que la tienen es hora de postearla aquí!
Existe un parche que no colocaré en este tema, me gusta mucho que los usuarios aprendan sobre como funcionan las cosas.
Antes que nada necesitan estas dos rutinas:
Bien necesitamos esas dos rutinas, un editor hexadecimal, FSF y un compliador asm, yo uso thumb.
Paso 1
Necesitamos localizar 0x1518 bytes disponibles en tu ROM, pueden buscar el espacio con FSF, a mi me ha dado 0x802A30, pero es importante que conviertan los números a decimales así:
Vamos a copiar esa dirección y a tenerla apuntada en otra parte, ahora vamos a ir a 0x3A65BC en HxD:
Estando aquí, presionaremos Crtl+E, y vamos a darle la opción de seleccionar por longitud, y vamos a colocar el valor de 0x1518 y luego apretamos aceptar:
Estos bytes que estamos copiando, los pegaremos en la dirección que buscamos espacio libre... en mi caso es 0x802A30.
Recuerden que deben pegar con Crtl+B en esa dirección para no dañar nada.
Luego de haber hecho, pueden guardar la ROM y terminamos el paso 1.
Paso 2
Ahora necesitamos editar una de las rutinas asm que estan en la parte de arriba, concreta mente vamos a editar la que se llama: new_animation_table_and_routines.asm, para poder editarla usamos un editor de texto, en mi caso uso Notepad++.
Una vez abierta vamos a editar la linea 3 justanmente donde esta los 0xaaaaaa, colocaremos el offset donde colocamos los 0x1518 en mi caso es 0x802A30.
Bien luego de esto podemos guardar la rutina y compilarla con thumb, no explicaré como hacerlo con thumb al final dejo un tutorial.
Luego de generado el archivo .bin, lo abrimos con HxD:
Y bueno se preguntarán ¡¿QUÉ ES ESTOOOOOOOOOOOOOO?! ¿Y MI RUTINA?
Pues tranquilos, si navegan hasta el offset donde buscaron 0x1518 en mi caso es 0x802A30, pues ya saben como navegar no? Crtl+G y pegan y buscan!
Una vez logrado esto, vamos a copiar hasta abajo, así:
Y pegamos en nuestro offset que en mi caso es 0x802A30.
¿Qué estamos haciendo aquí? Pues hemos repunteado la tabla de movimientos de bloque y hemos colocado un par nuevo.
Paso 3
Ahora necesitamos encontrar 0x320 ya sabes con FSF buscamos espacio, a mi me ha dado: 0x801900
Ahora necesitamos editar la rutina: behaviour_byte_implementation.asm en la linea 3, donde estan los 0xbbbbbb:
Así, luego guardamos los cambios y procedemos a compilar con Thumb.
Despues de compilar, abrimos el .bin con HxD y de nuevo, lo mismo de la otra rutina, pero navegamos hasat donde colocamos los 0x320 para mi sería 0x801900.
Y efectivamente, aquí estan nuestros datos, insertamos los datos en el offset de la ROM
Y bueno, ahora debemos navegar en el behaviour_byte_implementation.bin y vamos a buscar los siguientes offset.
¡¡¡OJO!!! Lo que diré ahora es muy importante, tal cual estan los offset en behaviour_byte_implementation.bin deben copiarlos y pegarlos con Crtl+B en la ROM, solo daré un ejemplo.
Navegamos a 0x5BB5C:
Hay un par de datos, pues esos datos los vamos a copiar y los pegamos con Crtl+B en la ROM.
Así:
Harémos esto un par de veces en los siguentes offset:
Paso 4
Los nuevos movimientos los configuramos nosotros mismos, para ello debemos editar los comportamientos de los bloques de la siguiente forma:
El movimiento 31 indica que no se podrá mover el Overworld a la izquierda y el 30 a la derecha.
Se deben colocar así:
En cuanto a movimientos permitidos debe ir así:
De esta manera ya su movimiento debe funcionar.
BUGS
Hay un par de bugs por lo que pude ver.
Si alguien mas sabe de algún bug comente.
Tutoriales necesarios
Es todo, saludos y a disfrutar esto!
Sí bien GBA en cuanto a realismo no es lo mejor, en NDS Nintendo incorporo el gran movimiento de escaleras hacia arriba, Spherical Ice realizo una rutina, para que las escaleras laterales tengan ese efecto, a esto me refiero:

Esto ahora es posible, si bien ya hay un par de usuarios que la tienen es hora de postearla aquí!
Existe un parche que no colocaré en este tema, me gusta mucho que los usuarios aprendan sobre como funcionan las cosas.
Antes que nada necesitan estas dos rutinas:
Bien necesitamos esas dos rutinas, un editor hexadecimal, FSF y un compliador asm, yo uso thumb.
Paso 1
Necesitamos localizar 0x1518 bytes disponibles en tu ROM, pueden buscar el espacio con FSF, a mi me ha dado 0x802A30, pero es importante que conviertan los números a decimales así:

Vamos a copiar esa dirección y a tenerla apuntada en otra parte, ahora vamos a ir a 0x3A65BC en HxD:

Estando aquí, presionaremos Crtl+E, y vamos a darle la opción de seleccionar por longitud, y vamos a colocar el valor de 0x1518 y luego apretamos aceptar:

Estos bytes que estamos copiando, los pegaremos en la dirección que buscamos espacio libre... en mi caso es 0x802A30.
Recuerden que deben pegar con Crtl+B en esa dirección para no dañar nada.

Luego de haber hecho, pueden guardar la ROM y terminamos el paso 1.
Paso 2
Ahora necesitamos editar una de las rutinas asm que estan en la parte de arriba, concreta mente vamos a editar la que se llama: new_animation_table_and_routines.asm, para poder editarla usamos un editor de texto, en mi caso uso Notepad++.
Una vez abierta vamos a editar la linea 3 justanmente donde esta los 0xaaaaaa, colocaremos el offset donde colocamos los 0x1518 en mi caso es 0x802A30.

Bien luego de esto podemos guardar la rutina y compilarla con thumb, no explicaré como hacerlo con thumb al final dejo un tutorial.
Luego de generado el archivo .bin, lo abrimos con HxD:

Y bueno se preguntarán ¡¿QUÉ ES ESTOOOOOOOOOOOOOO?! ¿Y MI RUTINA?
Pues tranquilos, si navegan hasta el offset donde buscaron 0x1518 en mi caso es 0x802A30, pues ya saben como navegar no? Crtl+G y pegan y buscan!

Una vez logrado esto, vamos a copiar hasta abajo, así:

Y pegamos en nuestro offset que en mi caso es 0x802A30.
¿Qué estamos haciendo aquí? Pues hemos repunteado la tabla de movimientos de bloque y hemos colocado un par nuevo.
Paso 3
Ahora necesitamos encontrar 0x320 ya sabes con FSF buscamos espacio, a mi me ha dado: 0x801900
Ahora necesitamos editar la rutina: behaviour_byte_implementation.asm en la linea 3, donde estan los 0xbbbbbb:

Así, luego guardamos los cambios y procedemos a compilar con Thumb.
Despues de compilar, abrimos el .bin con HxD y de nuevo, lo mismo de la otra rutina, pero navegamos hasat donde colocamos los 0x320 para mi sería 0x801900.
Y efectivamente, aquí estan nuestros datos, insertamos los datos en el offset de la ROM

Y bueno, ahora debemos navegar en el behaviour_byte_implementation.bin y vamos a buscar los siguientes offset.
¡¡¡OJO!!! Lo que diré ahora es muy importante, tal cual estan los offset en behaviour_byte_implementation.bin deben copiarlos y pegarlos con Crtl+B en la ROM, solo daré un ejemplo.
Navegamos a 0x5BB5C:

Así:

Harémos esto un par de veces en los siguentes offset:
- x5C104
- x5C14C
- x5C17C
- xBD3C8
Paso 4
Los nuevos movimientos los configuramos nosotros mismos, para ello debemos editar los comportamientos de los bloques de la siguiente forma:

El movimiento 31 indica que no se podrá mover el Overworld a la izquierda y el 30 a la derecha.
Se deben colocar así:

En cuanto a movimientos permitidos debe ir así:

De esta manera ya su movimiento debe funcionar.
BUGS
Hay un par de bugs por lo que pude ver.
- Los minis colocados aquí no actuarán de forma natural, el movimiento no funcionara.
- Los minis con applymovement tampoco funcionaran bien.
Si alguien mas sabe de algún bug comente.
Tutoriales necesarios
Es todo, saludos y a disfrutar esto!