¿Qué es esto?
Mientras testeaban la beta de Pokémon Inmortal, decidí no continuar hasta solucionar los errores que me reportaran y subiera la beta. Así que inicié un proyecto en Emerald, un rom olvidado que pocos hackean.
La verdad es que algunas funciones que tiene son una joya y las animaciones de los sprites son algo genial. Así que como no hay demasiados recursos, he decidido hacer algunas cosas e implementarlas en el rom para crear una rom base. De esta forma espero incentivar a los usuarios valientes, a ver si se atreven a llevar a cabo su proyecto con este juego.
De momento sólo he hecho rutinas ASM, aunque es posible que haga otras cosas, como cambiar ciertos gráficos, traducir...
Por cierto, de momento, todas las rutinas están escritas por mí.
OPERACIONES CON VARIABLES
No son las primeras rutinas que implementé pero son las más sencillas, así que las pongo las primeras:
YouTube Video
El funcionamiento es sencillo, se guarda el primer número en la variable 0x8000, el segundo en la variable 0x8001 y devuelve el resultado en la variable 0x8000.
Las operaciones que se pueden hacer son las siguientes:
- Suma
- Resta
- Multiplicación
- División
- XOR
- ORR
- AND
CAMBIO DE MINISPRITE
YouTube Video
Con este sistema puedes cambiar a cualquier minisprite de la tabla. Funciona con cuatro variables:
- 8004 - Mini normal
- 8005, 8006, 8007 - Bicicleta, pesca y surf (ahora mismo no sé cuál se corresponde con cada una xD)
Es necesario pasar por un warp para que se vean los cambios, aunque también se puede hacer mediante una rutina original del juego que muestra instantáneamente los cambios, pero la tengo que buscar aún.
CAMBIO DE BACKSPRITE
YouTube Video
Esto cambia el backsprite. Los backsprites deben ser puestos en una tabla en la dirección 0x1000000. La estructura de cada set de backsprites es de 40 bytes:
(frame1)(frame2)(frame3)(frame4)(paleta)
Cada una de 8 bytes. Se explicará más detalladamente en el manual.
Respecto al funcionamiento, es sencillo, se pone en la variable 0x8000 el número de back que se utilizará (siendo 0x0 el primero).
MULTICHOICES DINÁMICOS
¿Qué quieres decir eso de multichoices dinamicos? Pues que ya no será necesario editar los multichoices para que pongan lo que queramos, porque lo podremos hacer directmente desde XSE con el sistema de multichoices dinámicos:
YouTube Video
Sé que el vídeo no muestra mucho, porque es un simple multichoice, pero bueno, como compensación adjuntaré el script que he utilizado:
Lo que hace es cargar el texto que pongamos en loadpointer para ser mostrado en la opción que pongamos en la variable 0x8000. Los multichoices dinámicos son los siguientes:
- 0x10 - 2 opciones
- 0x11 - 3 opciones
- 0x12 - 4 opciones
- 0x13 - 5 opciones
- 0x14 - 6 opciones
- 0x15 - 7 opciones
EDITOR POKÉMON
Esto tiene varias partes. Hay una rutina que desencripta los datos del pokémon, otra que los encripta y varias que sirven para editar o leer los datos mientras está desencriptado.
Para que veáis un ejemplo, voy a editar a mi Torchic macho sin objeto equipado y voy a cambiarle la especie (Gyarados), voy a hacer que cambie a hembra, lo voy a equipar con una Master Ball y lo voy a convertir en Shiny:
YouTube Video
El decripter y el encripter funcionan poniendo en la variable 0x8000 la posición del pokémon en el equipo.
Las funciones de edición o lectura funcionan con las variables 0x8002 (si tiene el valor 1, lee los datos y los escribe en la variable 0x8002 para que puedan ser comprobados; si tiene otro valor, entonces se editarán los datos) y la 0x8004 (guarda el nuevo valor a escribir en los datos del pokémon).
¿PUEDES COLABORAR?
Claro que puedes colaborar. La mejor forma de hacerlo es sugiriendo cualquier idea que se te ocurra para nuevas funciones. Así podremos seguir aumentando las opciones de esta rom base.