tuts_gba
Thread Id: 26236
Thread Name: GBA | Otros | Crear nuevas piedras evolutivas sin sustituir desde cero (Cualquier ROM de 3ª GEN)
#0
BLAx/Atlas 26580
"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:
[LIST=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.
  • Un editor de objetos como Pokémon Item Editor (para crear el objeto y ponerle las imágenes).
  • Para el paso final, el editor de objetos Item Manager (para hacer que se pueda utilizar la piedra).
  • El genial unLZ-GBA.
  • Un editor de hexadecimal como por ejemplo HxD.
  • 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).
  • Una calculadora de programador (la de Windows hará su función bien aquí).
  • Paciencia.
  • Un cerebro.
  • [/LIST]

    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.

    Iniciado 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

    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 :D

    (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!!!)

    YouTube Video


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



    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
    #1
    Brock 25910
    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
    ;)
    #2
    BLAx/Atlas 26580
    Ya está subido el vídeo. Tutorial completo 100% :D
    #3
    Tito Sayer301 26309
    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!
    #4
    Decidme_un_nick_4315♪Kuchiki 28197
    Muchísimas gracias :D
    Lo usaré seguro :D
    Muchas gracias, además con imágenes y con video :)
    Salu2, gran aporte.

    PD: Princesosy princesas, y reinas? xD
    #5
    Fraxen 25314
    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.
    #6
    Megascep_9 Kuchiki 28187
    O_OBlax, 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:D
    #7
    BLAx/Atlas 26580
    Iniciado por Sceptile9
    O_OBlax, 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:D


    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(?)
    #8
    Franco Kuchiki 25897
    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
    #9
    Cheve_X 15014
    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! :D

    Sigue asi compañero! :)
    #10
    Horus Pen. 24335
    Muy buen tutorial, seguramente lo usarsé. Me gusta tu manera de explicar, en castellano, nada de palabras raras que nadie sabe quesignifican. Además las imágenes ayudan de mucho.

    Saludos.
    #11
    Silver.Exe 28626
    No puedo editar el image offset en item editor D:

    Mira, aquí una imagen:



    Buen tuto igualmente,
    Silver & Ruby
    #12
    BLAx/Atlas 26580
    No se si quedó del todo claro en el tuto, pero os lo recordaré por aquí.

    EL TUTORIAL VALE PARA CUALQUIER ROM DE 3ª GENERACIÓN. Lo único que varía según la base que uses es el offset donde empieza la tabla de objetos y que en R/S no se pueden poner imágenes a los objetos, el resto es igual para todas.
    #13
    milenco 29349
    hola blax, me presento soy milenco y creo que comenzamos con el pie izquierdo:D.
    antes había visto tu tutorial, y como soy nuevo en el rom hacking, y ademas vi tanto numero... me enrede :s
    así que empece a buscar formas mas fáciles de crear piedras evolutivas y llegue a esa herramienta, comencé a probar y después de muchos errores llegue al método que publique en el foro (quería compartirlo con la gente que estaba como yo, que no sabia nada de hex). obviamente las piedras creadas son utilizables pero inestables. así que después de pensar y revisar palabra por palabra de tu tutorial de piedras evolutivas, PUDE CREAR 6 PIEDRAS EVOLUTIVAS!!!! completamente funcionales en cualquier emulador. A simple vista cualquiera se puede enredar con con tanto numero, pero tu tuto es super explicativo y fácil de seguir. así que muchas gracias por hacer que pudiera ver mi error y ademas forzarme a seguir tu tutorial.

    espero puedas seguir guiándome en el futuro, saludos.