Registrarse

[Proyecto] Pokémon Emerald Hacked Rom Base

Estado
Cerrado para nuevas respuestas.

Javi4315

Babyface
Miembro de honor
[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
¿Qué es esto?​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]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í.[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
OPERACIONES CON VARIABLES​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]No son las primeras rutinas que implementé pero son las más sencillas, así que las pongo las primeras:



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
[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
CAMBIO DE MINISPRITE​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]

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.
[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
CAMBIO DE BACKSPRITE​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]

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).[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
MULTICHOICES DINÁMICOS​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]¿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:



Sé que el vídeo no muestra mucho, porque es un simple multichoice, pero bueno, como compensación adjuntaré el script que he utilizado:

'---------------
#org 0xF10000
setvar 0x8000 0x0
loadpointer 0x0 0x8F11000 '"Leche"
special 0xA
setvar 0x8000 0x1
loadpointer 0x0 0x8F12000 '"Azúcar"
special 0xA
setvar 0x8000 0x2
loadpointer 0x0 0x8F13000 '"Galletas"
special 0xA
setvar 0x8000 0x3
loadpointer 0x0 0x8F14000 '"Chocolate"
special 0xA
setvar 0x8000 0x4
loadpointer 0x0 0x8F15000 '"Nata"
special 0xA
multichoice 0x0 0x0 0x13 0x0
releaseall
end


'---------
' Strings
'---------
#org 0xF11000
= Leche

#org 0xF12000
= Azúcar

#org 0xF13000
= Galletas

#org 0xF14000
= Chocolate

#org 0xF15000
= Nata

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
[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
EDITOR POKÉMON​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]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:



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).[/caja]

[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
¿PUEDES COLABORAR?​
[/caja]

[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; width: 75%; padding: 20px]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.[/caja]
 

Gold

Porrero a tiempo parcial
Miembro insignia
IN-CRE-Í-BLE!
Suerte en este proyectazo Javi, siempre quize hackear emerald, pero por diversas cuestiones nunca lo hice, esto motivará mas el uso de Emerald

Una función que podrías poner es que podamos personalizar las batallas con compañeros (no solo la de Tu y Steven contra el Team Magma)

Suerte!
 

CelticFrostie

Sexador de pollos
POLE

No soy emeralder pero te aseguro que esto va a llegar tan lejos como el parche de JPAN.
Aunque no lo vaya a usar, de seguro que esto va a animar a la gente a probar con el ROM hacking en emerald.
¿Alguna sugerencia? Pues no sé, intentar conseguir que tenga tantas posibilidades como JPAN en FR.
Enhorabuena y sigue así!!!
 

Sayer301!

UnityLord!
Miembro de honor
ADMIRACION:
Dioooo Javi pepinaaco igual me engorilo y todo, depende de cuando lo saques jajaja pero si, la idea es genial.

PREGUNTAS:
-¿Con el cambio de backsprite pasa lo mismo que en FR? Me refiero a lo de los trainers.

-¿Solo hay un máximo de 7 opciones en los multichoice dinamicos?

-Solo hay esas formas de mini? (bici, pesca y surf)Esta la podría mirar yo pero ya que estas...


SUGERENCIAS:
-Control de velocidad (en el inmortal vi que según la energia podías ir mas lento, esto controlado por una variable seria crema)

-Follow me. Es facil hacer un script que no ocupe dos veces el camino, pero sigue siendo un coñazo que molaria mas con un follow me.

-Sistema de MT infinitas o no (Que tu decidas si la MT son infinitas con una flag o una var)

-Cuando se me ocurran mas, vuelvo a comentar.
 

BLAx501!

A veces comento en temas :3
Miembro de honor
Usuario de Platino
3=====D





OO




Lo de aquí arriba representa la posición actual de mis testículos... En serio Javi?? No te bastaba solo con Fire Red?? Me parece estupendo, la verdad es que Emerald es uno de mis juegos preferidos y poder ver estas cosas me alegran mucho. También mola ver que ya vuelves a tener tiempo para poder hacer maravillas como estas, así que nada, dale duro que esto tiene pintaza.
 
Estado
Cerrado para nuevas respuestas.
Arriba