GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero (Cualquier ROM de 3ª GEN)

Like Tree66Gracias
Respuesta
 
Herramientas Desplegado
  #1  
23/03/2014
Predeterminado GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero (Cualquier ROM de 3ª GEN)
"Buenos días princesos y princesas, bienvenidos a mi segundo tutorial de cosas útiles pero que todo el mundo acaba preguntando siempre xD"

En esta ocasión lo que os traigo en un tutorial para introducir nuevas piedras evolutivas en nuestras ROM de 3ª Generación para darle más vidilla al juego. Si el tutorial tiene buena acogida, más adelante traeré para crear objetos que ejecuten scripts, pero eso ya más adelante...

En primer lugar los materiales que necesitaremos son:
  1. Una ROM de la tercera generación limpia, como la que podemos encontrar en >>ESTE<< post. En el tutorial yo usaré Fire Red USA.
  2. Un editor de objetos como Pokémon Item Editor (para crear el objeto y ponerle las imágenes).
  3. Para el paso final, el editor de objetos Item Manager (para hacer que se pueda utilizar la piedra).
  4. El genial unLZ-GBA.
  5. Un editor de hexadecimal como por ejemplo HxD.
  6. Las imágenes preparadas para insertar en el ROM, es decir, indexadas a 16 colores (15 + el transparente) y de 24x24 píxeles (hace poco subí un pack de objetos ya preparados en >>ÉSTE<< tema).
  7. Una calculadora de programador (la de Windows hará su función bien aquí).
  8. Paciencia.
  9. Un cerebro.

Aquí os dejo un pack con herramientas útiles para este tuto (menos el HxD que al ser un programa como tal no lo distribuiré yo)

>>PACK DE HERRAMIENTAS<<


Bueno, una vez tengamos todo preparado y la cabeza en su sitio, comenzamos a editar nuestra ROM.

"AVISO A NAVEGANTES: No es algo complicado de hacer, pero conviene tener antes unas nociones básicas del uso de las herramientas que he mencionado ahí arriba."

"AVISO A NAVEGANTES 2: Las piedras evolutivas sólo pueden ser creadas en los espacios vacíos (con ?????) que hay entre Potion y Sitrus Berry. No lo he probado con posiciones más adelante porque el tutorial que seguí la primera vez lo decía. Si alguien lo quiere probar y le funciona, que avise y lo pondré aquí."


En este tutorial voy a introducir por ejemplo la Piedra Alba, introducida en la 4ª Generación. En primer lugar crearemos un objeto al que le vamos a modificar el nombre, descripción, imagen, paleta y uso.

Dicho por Cómo crear objetos desde 0
En primer lugar nos dirigiremos a uno de los espacios libres que he mencionado antes. Para que me quede un poco más ordenado yo lo haré dos huecos después de la Green Shard, pero puede ser justo a continuación.

Lo primero vamos a modificar el nombre del objeto para quitar esos antiestéticos ??????. En mi caso Piedra Alba. Ahora para modificar la descripción vamos a tirar por primera (aunque no última) vez el FSF. Abrimos la ROM en la que estemos trabajando y vamos a buscar un espacio como el que viene predefinido de 256 bytes. No los usaremos todos, ya que eso nos da para 110 caracteres y en la descripción seguramente pondremos menos. Una vez tengamos el offset del espacio, lo copiamos y en el Item Editor, lo pegamos en la cajita de texto donde pone Description Pointer.
***Lo que viene ahora es muy importante hacerlo bien, pues si no nos cargaremos la tabla de objetos en un periquete. Una vez pegado el offset le damos a Repoint. Guardamos el objeto dando a Save. Volvemos a dar a Repoint y escribimos la descripción del objeto, sin sobrepasar obviamente el número de caracteres que nos marca la herramienta. Para los que se pregunten por el símbolo ª sustituye a la ñ en el Item Editor***

Una vez hecho eso pondremos el índice que corresponda a ese objeto según la lista, en este caso 53, y le damos a guardar.

Nos quedará algo como esto:


La línea roja que he puesto es para que os sirva de guía al escribir la descripción de vuestro objeto. Más allá de la línea la descripción se saldría de la caja en el juego. Es el límite en Fire Red, en Ruby es menor.

Y diréis, vale, pero esto aún está muy soso. Pues sí, tenéis toda la razón, pero eso va a cambiar en un instante. Es el turno de introducir la imagen del objeto. Así que abrimos unLZ-GBA y FSF.

**Nota: Vamos a tomar ahora unos offsets que será interesante tener apuntados aparte por cualquier cosa que pudiera ocurrir. Personalmente o recomiendo tener un archivo de Bloc de Notas en donde apuntéis nombre, offset de la imagen y offset de la paleta de cada objeto que introduzcáis, para poder editarlo en cualquier momento.

Con nuestra herramienta FSF buscaremos un espacio de unos 1000 bytes o un poco más para estar seguros. Copiamos el offset que nos da y lo guardamos. Con el unLZ abrimos nuestra ROM y le damos a Import y seleccionamos nuestra imagen preparada,y una vez hecho le damos a Write to ROM y en la ventanita que se nos abre desmarcaremos todas las opciones y marcaremos la opción de Export Image, y en el recuadro que dice Image Offset pegaremos el espacio de 1000 bytes que buscamos con el FSF. Le damos a OK y ya tenemos la imagen, pero claro ahora falta su paleta. Hacemos lo mismo, Write to ROM, y esta vez después de desmarcar todas las opciones, solo marcaremos la de Export Palette. Con el FSF volveremos a buscar un espacio de 1000 bytes disponible (no le deis a FIND NEXT tras haber buscado el anterior. Tenéis que buscar de nuevo pues ahora ese espacio está ocupado) y lo copiamos. Lo ponemos en la caja del unLZ de Palette Offset y le damos a OK. Bien, y está la imagen del item con su paleta y hemos acabado con unLZ.

Ahora volvemos a Item Editor y en donde pone Image Offset y Palette Offset introducimos los offset que acabamos de conseguir con el FSF y hemos usado en el unLZ (para eso hay que guardarlos xD). Le damos a Repoint y Save.

Por último, debemos de cambiar el Field Usage Code Pointer del objeto para que tenga el mismo que las piedras evolutivas del juego. Deberemos de poner el Pointer A1751.

Nos quedará algo más o menos así:


Como curiosidad os diré que si en la imagen de la Piedra Alba ponéis la paleta de la Baya Enigma queda un efecto muy chulo:


Para una vista más detallada de los pasos a seguir con el unLZ os remitiré al tutorial del que aprendí, de Gut_Bro en Zonecircus : Agregar nuevos Items » ZoneCircus!
Bien, una vez hayamos creado el item es hora de darle la funcionalidad de Piedra Evolutiva. Para ello vamos a usar mucho el HxD, así que vamos a darle mucho cariño a esta herramienta tan útil. Este tutorial está basado en el que ha hecho KarateKid552, que es éste: [Tutorial] [GBA] How to Create New Evolutionary Stones: Step by Step - PHO - Pokémon Hackers Online

AXVE- 0x1FCDE4
AXPE- 0x1FCD74
BPRE- 0x2528BC
BPGE- 0x252898
BPEE- 0x31E58C

Estos son los offsets que ha encontrado Karatekid552, del cual he seguido el tutorial antes de hacer este (os lo dejaré al final, pero creo que el mío va a estar mejor explicado xD)

Por si no usáis ninguno de estos juegos, podéis encontrar vosotros mismos el offset donde empieza la tabla de objetos del juego. Si buscáis este fragmento de código HEX en el HxD

Código:
00 00 00 00 04 00 14 00 00 00 10 00 00 00 00 00 08 00 00 00 00 00 04 00 00 00 00 00 20 00 00 00 00 00 02 00 00 00 00 00 3F 04 00 FF 00 00 00 00 04 00 FF 00 00 00 00 04 00 C8 00 00 00 00 04 00 32 00 00 00 3F 00 00 00 00 00 00 44 00 FE 00 00 00 00 44 00 FF 00 00 00 00
Después creáis un pointer a la dirección que marca el HxD donde empieza ese fragmento et voilà.
De los offsets de ahí arriba el que nos interesa a nosotros para este tutorial es el de BPRE que corresponde a la ROM Fire Red USA. Lo llamaremos OffsetA para abreviar.

A partir de ahora a no ser que se diga lo contrario, vamos a trabajar en Hexadecimal. Tenedlo en cuenta antes de usar la calculadora que no queremos equivocarnos en esto.

1.- Miraremos el número de índice de nuestro objeto (en el Item Editor sale en decimal) y lo pasaremos a HEX con la calculadora. En nuestro caso hemos editado el ítem de índice decimal 53, por lo que al pasarlo a HEX quedará como 35. Ahora de este número le vamos a restar el número de índice de la poción, que es D. Por lo tanto en la calculadora escribimos 35 - D, que nos resulta 28.

2.- Ahora este número lo multiplicaremos por 4; en nuestro caso 28*4= A0.

3.- Sumaremos el valor de OffsetA al número que acabamos de obtener; en nuestro caso, 2528BC + A0 = 25295C.

4.- Con el HxD iremos a ese offset (Ctrl + G y escribimos el offset). Llegaremos a una zona llena de bytes 00. Si hemos llegado hasta ahí la cosa va bien.


5.- Ahora tendremos que buscar con el FSF un espacio de 10 bytes, que será de sobra para lo que vamos a hacer. En mi caso me ha salido el offset 800064. Ahora tenemos que convertir ese offset en un pointer. Para ello vamos a separar el offset en parejas de números: 80 00 64. Ahora lo leemos de derecha a izquierda, añadiendo un 08 al final y nos quedará 64 00 80 08. Ya tenemos nuestro pointer.

6.- Ahora en el offset al que habíamos llegado en el paso 4 escribiremos nuestro pointer. Y nuevamente mediante el uso de Ctrl + G iremos al offset libre (recordad que en nuestro caso era 800064.

7.- Aquí lo veremos todo lleno de FF's así que cambiaremos los 10 primero bytes a 00 (10 bytes en decimal, en hexadecimal sería seleccionar un espacio de A bytes y ponerlo todo 00). Una vez hecho vamos a tomar de nuevo la calculadora y al offset donde empezaba nuestro espacio libre le sumaremos 4, para llegar al offset que nos interesa mediante Ctrl + G. (Puede parecer una tontería, pero así nos aseguramos de hacerlo bien).

En nuestro caso sería 800064 + 4 = 800068 y ahí ponemos un 80 en lugar de 00. Nos quedará algo así:


Una vez hecho esto guardamos en el HxD listo. Con el YAPE o cualquier editor de evoluciones ponemos el Pokémon que queramos evolucionar con nuestro nuevo objeto y ya solo nos falta el último paso.

**NOTA: Este paso es fundamental que no se os olvide, ya que si no lo hacéis, el objeto no hará las veces de piedra; simplemente os devolverá al menú de pausa cuando lo uséis.

Bien, ahora lo que hay que hacer es abrir la ROM con nuestra nueva piedra evolutiva con la herramienta Item Manager. Seleccionamos nuestra piedra y le damos al símbolo de las dos flechitas para pasar a la segunda parte de las opciones. Ahí marcamos en Type, la opción 01 Out-Of-Battle. Os dejo unas imágenes para que lo veáis mejor:


Para los incredulines os dejo aquí un vídeo de esto funcionando a tope

(Aunque el nombre del prota en el vídeo sea KARL, lo he hecho yo. Es que si le das al elegir el nombre, VALE, sin haber escrito nada, te pone uno aleatorio y me salió ese xD. PERO SOY YO!!!)




Para los vaguetes que queráis un script que os de el objeto que acabamos de crear en este tutorial aquí os lo dejo:

Script


[CODE]#dynamic 0x800000

#org @inicio
lock
faceplayer
checkflag 0x500
if 0x1 goto @hablado
msgbox @msg1 0x6
giveitem 0x(Índice del item en HEX) 0x(Cantidad del ítem en HEX) 0x0
setflag 0x500
release
end

#org @hablado
msgbox @msg2 0x6
release
end

#org @msg1
= Mensaje1

#org @msg2
= Mensaje2


Créditos:
A todos los que me ha aguantado e intentado ayudar mientras conseguía hacer funcionar esto, que vosotros sabéis quienes sois xD.

A Gut_Bro por el tutorial que seguí para aprender a crear objetos desde cero: Agregar nuevos Items » ZoneCircus!

A KaretKid552 por ayudarme y por el tutorial original: [Tutorial] [GBA] How to Create New Evolutionary Stones: Step by Step - PHO - Pokémon Hackers Online
  #2  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
O.O
Q-qu-que es estoo???
me viene de perlas, enserio, me viene de perlas.

Ademas todo bien explicado y con imagenes..

Un tutorial digno de mencion, muchas gracias colega
  #3  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Ya está subido el vídeo. Tutorial completo 100%
  #4  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Estoy deseando llegar a ciudad celeste para poner todo esto en práctica ya ajajajajaj

Gran tuto tio, servira a muchos, entre ellos yo, eres un grande sigue trayendo cosas molonas!
Gracias: BLAx501!
Si no sigues al Pokémon Verde Hierba, entonces eres un mierda!!


Gracias a todos!

MIS HACKS FAVORITOS DE WAH:

  #5  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Muchísimas gracias
Lo usaré seguro
Muchas gracias, además con imágenes y con video
Salu2, gran aporte.

PD: Princesosy princesas, y reinas? xD
Gracias: BLAx501!

¡Jarcors!

  #6  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Gran tutorial BLAx, seguro que servirá a muchos rom-hackers pues es una manera de hacer aún más realista la evolución de los Pokémon que evolucionan de esta forma.

Perfectamente explicado tanto con palabras como con imágenes, que siempre ayudan muchísimo para aprender.

Magnífico aporte.
Gracias: BLAx501!
Habrá que ir buscando una firma...
  #7  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Blax, creo que te ganarás un Premio Oscar
con este tuto, excelentemente explicado...

Lo probaré haber si me sale...

Solo una duda:
¿Tiene que ser obligatoriamente en una rom limpia?
y si es hací, ¿Por qué?

Espero que me respondas.

Saludos
Gracias: BLAx501!
  #8  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Dicho por Sceptile9 Ver mensaje
Blax, creo que te ganarás un Premio Oscar
con este tuto, excelentemente explicado...

Lo probaré haber si me sale...

Solo una duda:
¿Tiene que ser obligatoriamente en una rom limpia?
y si es hací, ¿Por qué?

Espero que me respondas.

Saludos
Pues te contesto ya mismito xD. No es necesario hacerlo en una ROM limpia. Lo que me refería es que estuviera sin MUGS y esas cosas xD. Lo único a tener en cuenta es que los únicos espacios donde se podrán crear piedras evolutivas/cambio de forma para los Pokémon son los que van desde la Poción hasta la Baya Aranja, que es donde se engloban los objetos consumibles fuera (y algunos dentro) de la batalla en la tabla de objetos del juego.

P.S. Premios por redacción molan más los Pulitzer xD, que los Óscar solo son al mejor guión y esos ya los ganaré con la historia de mi hack(?)
Gracias: MegaSceptile9
  #9  
23/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Wow, pero si ha Blax le ha dado un ataque de tutoriales xD
Muy buen tutorial, me va a servir, sin duda. Gracias por postearlo, es algo que faltaba por el foro xD
Gracias: BLAx501!


"La no intervención, la autodeterminación como expresión de la libre voluntad de los pueblos, excluye beligerancias inconsistentes y reñidas con el total respeto que mantenemos a la soberanía de las naciones."



Enamorat de Aaróncis i de la sobirana República
  #10  
24/03/2014
Predeterminado Respuesta: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero
Está muy bueno, perdona por tardar tanto en responderlo xD.

Dá lugar a muchas cosas, y me ha dado una gran, gran idea para mi Crisis jeje :3
¡Muchas gracias por compartir con nosotros las cosa que vas aprendiendo!

Sigue asi compañero!
Gracias: BLAx501!

Retirado del RomHacking




Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.


Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 19:46.
Skin Afternoon por Sage