Registrarse

[ASM] FR | Lector de EVs e IVs

Lunos

Enfrentando a La Organización
Miembro insignia
Holi. Yo posteé esta duda hace poco mas de 1 año. Pese a que intenté usar los Specials que trae el JPAN's Engine el script que creé no me funcionaba, pedí ayuda en PokeCommunity y nadie me pudo ayudar (ahora que lo pienso detenidamente, quizá debí haberla pedido aqui tambien.. oh bueno, que mas dá), ya pude encontrar la forma mediante una rutina en particular y decidí traerla hasta acá.
Basicamente, el dia de hoy haremos un NPC (u objeto, si quieren) que nos permitirá comprobar textualmente los IVs o los EVs de uno de nuestros Pokémon.

"¡Pero Lunos, ¿tú eres tonto?! ¡Si está el EV-IV Screen!"
Insertalo en Pokémon Vega y disfruta de los bugs.

Antes de comenzar vienen los creditos, como es habitual.
El dia de hoy estos van para FBI para crear la rutina (en qué.. ¿5 minutos?) dentro del servidor de Discord de PokeCommunity, y para @BluRose quien la porteó a Pokémon Emerald despues de que hice el pedido en el Tema de Recursos ASM de PokeCommunity.
Dicho eso, empecemos.

Requisitos:
-ROM de Pokémon Fire Red v1.0 (USA) o ROM de Pokémon Emerald (USA)
-Editor hexadecimal y de texto a preferencia (Como siempre, yo usaré HxD y Notepad)

Instrucciones:

1) Abrimos nuestra ROM en nuestro editor hexadecimal y paso seguido pegaremos mediante Ctrl+B esta Rutina ASM compilada en un offset con espacio libre dependiendo de la ROM que estemos usando.

Fire Red:
Código:
F0 B5 0E 4D 2F 1C 2E 1C 08 35 36 78 0D 20 46 43 1A 36 2D 78 64 20 45 43 09 48 2D 18 00 24 06 2C 0B DA 28 1C 31 1C 09 19 6A 46 06 4B 00 F0 04 F8 38 80 01 34 02 37 F2 E7 18 47 F0 BD B8 70 03 02 84 42 02 02 E9 FB 03 08
Emerald:
Código:
F0 B5 0E 4D 2F 1C 2E 1C 08 35 36 78 0D 20 46 43 1A 36 2D 78 64 20 45 43 09 48 2D 18 00 24 06 2C 0B DA 28 1C 31 1C 09 19 6A 46 06 4B 00 F0 04 F8 38 80 01 34 02 37 F2 E7 18 47 F0 BD D8 75 03 02 EC 44 02 02 19 A5 06 08
Como siempre, yo prefiero apostarle a lo seguro, por lo que sugiero que usen un offset que termine en 0, 4, 8 o C. Yo usé el 71A250 en Fire Red y el E3CF80 en Emerald.

2) Escribimos nuestro script usando un "setvar 0x8000 0x0/0x1" seguido de un "callasm 0x8XXXXXX+1", lo compilamos y lo probamos.

Los puntos a tener en cuenta son:
-El valor de la Variable 0x8000 determina lo que vamos a comprobar, 0x0 para EVs y 0x1 para IVs.

-XXXXXX+1 = Offset donde insertamos la rutina, +1.

-Nuestros EVs/IVs se guardarán en las Variables de la 8000 a la 8005.
El orden es: HP, Ataque, Defensa, Velocidad, Ataque Especial y Defensa Especial.

-Podemos visualizar los EVs e IVs en un msgbox mediante el comando buffernumber.

Si gustan, aqui les dejo el script que yo escribí.
Para que funcione en Emerald reemplazan los callasm, cambian los special 0x9F por special 0xA2 y listo.
Luce asi:


Y asi:


Aqui está la rutina para Fire Red en carne y hueso, por si a alguien le interesa.
Aqui está la de Emerald.
Y eso fue todo.​
 
Última edición:

BagBoy

3D Artist | NDS Hacker
Respuesta: FR | Otros | Lector de EVs e IVs

Yo sí puedo abrirlas.. Tanto la página de la rutina como el script que Lunos usó para hacer el ejemplo, y eso que estoy desde el navegador malo por defecto que viene con el móvil...

Prueba a limpiar las cookies y/o el historial de tu navegador, a ver si funciona. Yo no encuentro ningún problema visualizando la página, vaya..
 

BagBoy

3D Artist | NDS Hacker
Respuesta: FR | Otros | Lector de EVs e IVs

Mi pc esta desvariando... lo unico que me dice es "No se puede acceder a este sitio web" y ya he hecho de todo :(
Bueno, mientras arreglas el pc te la dejo aquí para que salgas del apuro.
.thumb
.align 2

main:
push {r4-r7, lr}
ldr r5, =(0x20370B8)
mov r7, r5
mov r6, r5
add r5, r5, #0x8
ldrb r6, [r6]
mov r0, #0xD
mul r6, r6, r0 @type * 0xD
add r6, r6, #0x1A
ldrb r5, [r5]
mov r0, #0x64
mul r5, r5, r0
ldr r0, =(0x2024284)
add r5, r5, r0 @slot address
mov r4, #0x0

loop:
cmp r4, #0x6
bge end
mov r0, r5
mov r1, r6
add r1, r1, r4
mov r2, SP
ldr r3, =(0x0803FBE9)
bl link_r3
strh r0, [r7]
add r4, r4, #0x1
add r7, r7, #0x2
b loop

link_r3:
bx r3

end:
pop {r4-r7, pc}


.align 2
 

Lunos

Enfrentando a La Organización
Miembro insignia
Respuesta: FR | Otros | Lector de EVs e IVs

Añadida la versión de esta rutina para Pokémon Emerald en el primer post.
Agradecimientos y creditos absolutos por ello para @BluRose <3
 
Arriba