Necesito ayuda con esta rutina para evolucionar un Pokémon basado en una flag enteramente. El problema es que la rutina parece que si comprueba el número de flag y si está activa o no. Si no está funciona y no hace nada. El problema es que al momento de la flag seleccionada estar activa la rom se crashea. Ignoro que pueda estar incorrecto en la rutina.
Este es el código:
Aquí el tuto con guía sobre los métodos evolutivos https://www.pokecommunity.com/showthread.php?t=329357
Cualquier ayuda será bienvenida.
Este es el código:
C:
.text
.align 2
.thumb
.thumb_func
.global setflagevo
main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r5, #0x0
ldr r0, flag_number
ldr r2, flag_routine
ldrh r2, [r2, #0x0]
bl linker
cmp r0, #0x1
bne flagnotset
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
linker:
bx r2
flagnotset:
pop {r0-r7}
ldr r0, noevo
bx r0
.align
flag_number: .word 0x000018FA
flag_routine: .word 0x0806E6D0 +1
levelcheckloc: .word 0x08043017
noevo: .word 0x08043111
Cualquier ayuda será bienvenida.