Checkshiny
Este tutorial será algo breve pero no por eso menos interesante. El día de hoy implementaremos en nuestra ROM una especie de comando nuevo, que dado el Pokemon seleccionado del equipo nos mostrará si es shiny o no, devolviendo a una variable un 0 o un 1.
La rutina es la siguiente:
Código:
.text
.align 2
.thumb
main:
push {r0-r2, lr}
ldr r0, =0x02024284
ldr r1, =(0x020370B8+8)
ldrh r1, [r1]
cmp r1, #6
bcs no_shiny
mov r2, #100
mul r1, r2
add r0, r1
ldrh r1, [r0,#6]
ldrh r2, [r0,#4]
eor r2, r1
ldrh r1, [r0,#2]
eor r2, r1
ldrh r1, [r0]
eor r2, r1
ldr r1, =0x020370B8
cmp r2, #8
bcs no_shiny
mov r0, #1
end:
strh r0, [r1]
pop {r0-r2, pc}
no_shiny:
mov r0, #0
b end
Código:
07 B5 0B 48 0B 49 09 88 06 29 0F D2 64 22 51 43 40 18 C1 88 82 88 4A 40 41 88 4A 40 01 88 4A 40 05 49 08 2A 02 D2 01 20 08 80 07 BD 00 20 FB E7 84 42 02 02 C0 70 03 02 B8 70 03 02
Y eso es todo, la verdad es que es un sistema sencillo de usar, como la rutina no es mía no podré mostraros los pasos a seguir para haberla conseguido.Parametros de entrada:
Variable 0x8004: Posición del Pokemon a analizar (0 para el primero y sucesivamente)
Parametros de salida:
Variable 0x8001: 0 para no shiny 1 para shiny
Créditos a @Kate, AliKate por la rutina.
Si hay dudas no dudeis en preguntar sin miedo