MACHINE
Space Cowboy
Hola WaH!
Hace algún tiempo me preguntaba si había alguna manera de poner la Pokédex o la Trainer Card en la Mochila (como un objeto), luego de mirar offsets y pointers en HxD, por fin encontré una manera sencilla para esto.
Función: Encontré los Pointers de las funciones de la PokéDex, Menú Pokémon y la Trainer Card, los cuales funcionan con una Rutina que está en la ROM Original (Fire Red y Emerald).
*Requisitos:
-ROM Fire Red o Emerald (U).
-XSE
-Item Manager (o cualquier otro editor de Objetos)
*Procedimiento:
-Paso N° 1:
-Crearemos un Script, llamando a las siguientes rutinas (callasm 0x8XXXXXX) según la función que queramos:
Fire Red
Emerald
-Yo trabajo con Fire Red, así que usare las rutinas pertenecientes a esta ROM: Utilizare el de la Trainer Card.
Ejemplo de Script:
-Ya tenemos el Script (Muy simple por cierto).
-Ahora lo compilamos con XSE, y copiamos el offset que nos dio.
-Paso N° 2
-Lo siguiente es crear un Objeto para la Trainer Card (En mi caso).
-Abrimos Item Manager, y creamos un Objeto en los espacios vacíos (????????)
-Los Parámetros necesarios son: Nombre, Index Number, Pocket, Type y Field Usage.

-Paso N° 3:
-Ahora, tenemos que insertar en un offset vacío la siguiente rutina (ya esta compilada).
*Créditos a: Darthatron, por crear la rutina.
*Nota: Esta Rutina ASM, es para poner un Script en un Objeto.
*En XX XX XX, colocamos el Offset del Script del Paso N° 1 Convertido en Pointer (En mi caso fue: 800000, entonces quedaría así: 00 00 80 08)
-Paso N° 4
-Volvemos al Item Manager, vamos al objeto que creamos y donde dice Field Usage, reemplazamos por el Offset donde insertamos la Rutina ASM +1 (En mi caso fue: AC75B0, y le sumo 1, quedaría así: 8AC75B1). IMPORTANTE: No debemos quitar el 8 que está al Principio.
Eso es todo, esto puede servir para muchas cosas, solo hay que tener imaginación, e incluso es mas que obvio que lo podemos usar en un Script, para darles muchas utilidades.
Espero les sea Útil. ^^
Mi Resultado:



Hace algún tiempo me preguntaba si había alguna manera de poner la Pokédex o la Trainer Card en la Mochila (como un objeto), luego de mirar offsets y pointers en HxD, por fin encontré una manera sencilla para esto.
Función: Encontré los Pointers de las funciones de la PokéDex, Menú Pokémon y la Trainer Card, los cuales funcionan con una Rutina que está en la ROM Original (Fire Red y Emerald).
*Requisitos:
-ROM Fire Red o Emerald (U).
-XSE
-Item Manager (o cualquier otro editor de Objetos)
*Procedimiento:
-Paso N° 1:
-Crearemos un Script, llamando a las siguientes rutinas (callasm 0x8XXXXXX) según la función que queramos:
Fire Red
Código:
Pokédex: callasm 0x806F411
Menú Pokémon: callasm 0x806F44D
Trainer Card: callasm 0x806F4B5
Código:
Pokédex: callasm 0x809FBB5
Menú Pokémon: callasm 0x809FBF1
PokéNav: callasm 0x809FC59
Trainer Card: callasm 0x809FC8D
Ejemplo de Script:
Código:
#dynamic 0x800000
#org @inicio
callasm 0x806F4B5
end
-Ahora lo compilamos con XSE, y copiamos el offset que nos dio.
-Paso N° 2
-Lo siguiente es crear un Objeto para la Trainer Card (En mi caso).
-Abrimos Item Manager, y creamos un Objeto en los espacios vacíos (????????)

-Los Parámetros necesarios son: Nombre, Index Number, Pocket, Type y Field Usage.


-Paso N° 3:
-Ahora, tenemos que insertar en un offset vacío la siguiente rutina (ya esta compilada).
*Créditos a: Darthatron, por crear la rutina.
*Nota: Esta Rutina ASM, es para poner un Script en un Objeto.
Fire Red
Código:
[CENTER]10 B5 04 1C 78 46 13 30 0C 49 08 60 20 1C 0C 49 00 F0 10 F8 10 BC 01 BC 00 47 10 B5 04 1C 0A 48 05 49 00 F0 07 F8 20 1C 06 49 00 F0 03 F8 10 BC 01 BC 00 47 08 47 C0 46 E5 9A 06 08 98 99 03 02 3D 10 0A 08 09 75 07 08 XX XX XX 08[/CENTER]
Emerald
Código:
[CENTER]10 B5 04 1C 78 46 13 30 0C 49 08 60 20 1C 0C 49 00 F0 10 F8 10 BC 01 BC 00 47 10 B5 04 1C 0A 48 05 49 00 F0 07 F8 20 1C 06 49 00 F0 03 F8 10 BC 01 BC 00 47 08 47 C0 46 F9 8E 09 08 F4 A0 03 02 DD D0 0F 08 9D 90 0A 08 XX XX XX 08[/CENTER]
-Paso N° 4
-Volvemos al Item Manager, vamos al objeto que creamos y donde dice Field Usage, reemplazamos por el Offset donde insertamos la Rutina ASM +1 (En mi caso fue: AC75B0, y le sumo 1, quedaría así: 8AC75B1). IMPORTANTE: No debemos quitar el 8 que está al Principio.
-Guardamos los cambios y probamos-
Eso es todo, esto puede servir para muchas cosas, solo hay que tener imaginación, e incluso es mas que obvio que lo podemos usar en un Script, para darles muchas utilidades.
Espero les sea Útil. ^^
Mi Resultado:



Última edición: