Registrarse

[ASM] FR, E | Añadiendo los objetos recios

Lunos

Enfrentando a La Organización
Miembro insignia
Holi. Tutorial simple como es costumbre, en el que aprenderemos a añadir los Objetos Recios a Pokémon Fire Red o Emerald.
Antes de empezar, vamos con los creditos que hoy se van para Chacha Dinosaur/KDS/KDSKardabox por haber creado las rutinas y haberlas compartido justo aqui.
Sin mucho mas que añadir, empecemos.

Requisitos:
-ROM de Pokémon Fire Red v1.0 USA o ROM de Pokémon Emerald USA
-Editor Hexadecimal (como siempre, yo usaré HxD)
-Editor de Objetos (yo usaré el Complete Item Editor de LSA)

Instrucciones:
1) Abrimos nuestra ROM en nuestro Editor Hexadecimal e introduciremos la siguiente rutina dependiendo de nuestra ROM:

Fire Red:
04 B4 40 46 0C 21 00 22 00 F0 1E F8 00 04 00 0C 04 BC AF 28 14 D0 03 1C 00 F0 18 F8 00 06 00 0E 18 28 0B D1 18 1C 00 F0 13 F8 00 06 00 0E 00 28 08 D0 71 1C 81 42 01 D1 92 00 A4 18 05 4B 18 47 05 4B 18 47 05 4B 18 47 05 4B 18 47 05 49 08 47 05 49 08 47 D9 39 04 08 8F 39 04 08 D5 39 04 08 E9 FB 03 08 25 A9 09 08 49 A9 09 08​
Emerald:
04 B4 40 46 0C 21 00 22 00 F0 1E F8 00 04 00 0C 04 BC AF 28 14 D0 03 1C 00 F0 18 F8 00 06 00 0E 18 28 0B D1 18 1C 00 F0 13 F8 00 06 00 0E 00 28 08 D0 71 1C 81 42 01 D1 92 00 A4 18 05 4B 18 47 05 4B 18 47 05 4B 18 47 05 4B 18 47 05 49 08 47 05 49 08 47 25 DC 06 08 DB DB 06 08 21 DC 06 08 19 A5 06 08 DD 74 0D 08 01 75 0D 08​
2) Iremos al siguiente offset y haremos la siguiente modificación, de nuevo, dependiendo de la ROM que estemos usando:

Fire Red
Vamos al offset 43978 y escribimos: 04 1C 54 43 00 49 08 47 XX XX XX 08 00 00 00 00 00 00 00 00 00 00

Emerald
Vamos al offset 6DBC4 y escribimos: 04 1C 54 43 00 49 08 47 XX XX XX 08 00 00 00 00 00 00 00 00 00 00

En ambos casos, XX XX XX es el offset donde insertamos la rutina durante el Paso 1, +1 y convertido en un pointer.

¿A que me refiero con esto? Pues bastante simple.
Al offset donde insertamos la rutina, le sumamos 1, si la insertamos en 800000 este pasa a ser 800001.
Luego a este offset lo convertimos en un pointer y ya.
¿Como se hace? Tomamos el primer par de digitos, lo intercambiamos con el tercero, agregamos un 08 y voilá.
01 00 80 08, ese seria nuestro resultado.

3) Ahora van a su editor de objetos y usan los slots que prefieran para crear los objetos recios.
Nombre, sprite, precio, descripción, todo eso lo ponen a preferencia.
Los puntos importantes son el Primer y el Segundo Byte de los objetos en la Tabla de Objetos.
Por supuesto, eso implica hacer las cosas mediante edición hexadecimal.

Yo dije que el dia de hoy estaria usando Complete Item Editor y a eso me apegaré.
Vamos a nuestro objeto y en la pestaña "Usage" haremos lo siguiente:
En el campo de texto "Hold" escribiremos 18, que es el mismo byte usado por el Macho Brace/Brazal Firme.
En el campo de texto "Value" justo encima de Hold, pondremos un numero del 01 al 06.
Esto definirá al objeto recio.
01 = Power Weight/Pesa Recia | +4 HP EVs
02 = Power Bracer/Brazal Recio | +4 Atk EVs
03 = Power Belt/Cinto Recio | +4 Def EVs
04 = Power Anklet/Franja Recia | +4 Spd EVs
05 = Power Lens/Lente Recia | +4 SpAtk EVs
06 = Power Band/Banda Recia | +4 SpDef EVs
Recuerden que tras hacer un cambio en cualquiera de las pestañas, tenemos que clickear en "Save Changes".

En mi caso, mis objetos quedaron de la siguiente forma.





Como pueden observar, solo me molesté en cambiar el nombre, sus dos bytes y ya.

Aqui una muestra del resultado.
Como pueden observar, usé como complemento una rutina que ya presenté en otro tutorial.


Y eso fue todo.​
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: FR y Em | Otros | Añadiendo los objetos recios

Buenísimo aporte. Ahora que estoy implementando un Frente de batalla me vendrá de lujo este aporte. Gracias por traerlo a Wah
 

Dragonite

But where's your heart
Esto intenté hacerlo en decomp pero desistí, quizá porque era muy novatillo. ¿Y también influye en la crianza?
 

Jaizu

Usuario mítico
Esto intenté hacerlo en decomp pero desistí, quizá porque era muy novatillo. ¿Y también influye en la crianza?
No estoy 100% seguro, pero creo que está implementado en la branch de DizzyEgg, en la branch llamada item_expansion (la cual, por norma general aunque no sea necesariamente un requisito, se suele usar con pokemon_expansion y battle_engine_v2 para tener la experiencia completa)
 
Arriba