Ver Mensaje Individual
  #14  
22/11/2018
Predeterminado Respuesta: [ASM] Checktype
Rojo Fuego, no la he testeado pero supongo que esta bien:

Spoiler


.text
.align 2
.thumb

main:
push {r0-r2, lr}
mov r1, #0x64
ldr r0, var_8004
ldrh r0, [r0]
mul r0, r0, r1
ldr r1, pokemondata
add r0, r0, r1
mov r1, #0xB
ldr r2, pokedecrypt
bl linker
mov r1, #0x1C
mul r0, r0, r1
ldr r1, tablestart
sub r1, r1, #0x1C
add r0, r0, r1
mov r2, r0
ldrb r0, [r0]
ldr r1, var_8005
ldrh r1, [r1]
cmp r0, r1
beq label
mov r0, r2
add r0, r0, #0x1
ldrb r0, [r0]
ldr r1, var_8005
ldrh r1, [r1]
cmp r0, r1
beq label
mov r0, #0x0
ldr r1, var_8005
strh r0, [r1]
b end

label:
mov r0, #0x1
ldr r1, var_8005
strh r0, [r1]
b end

linker:
bx r2

end:
pop {r0-r2, pc}



.align 2
var_8004: .word 0x02036FAC
var_8005: .word 0x02036FAE
tablestart: .word 0x0824FF6E - Modifica si has expandido la tabla tanto en Fire Red como Rojo Fuego
pokemondata: .word 0x020241F4
pokedecrypt: .word 0x0803FAD5


Dicho por Saisar Ver mensaje
Como seria el script base para el checktype?
No se si funcione así:

Spoiler



#dynamic 0x800000

#org @start
countpokemon
compare 0x800D 0x6
if 0x1 goto @continue5
countpokemon
compare 0x800D 0x5
if 0x1 goto @continue4
countpokemon
compare 0x800D 0x4
if 0x1 goto @continue3
countpokemon
compare 0x800D 0x3
if 0x1 goto @continue2
countpokemon
compare 0x800D 0x2
if 0x1 goto @continue1
countpokemon
compare 0x800D 0x1
if 0x1 goto @continue0
release
end

#org @continue0
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @continue1
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @continue2
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @continue3
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @continue4
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @continue5
setvar 0x8004 0x0
setvar 0x8005 0xC
callasm 0x08800001
compare 0x8005 1
if 0x5 goto @noestipoplanta
msgbox @mensajetipoplanta 0x6
end

#org @noestipoplanta
msgbox @mensajenotipoplanta 6 'Esto se ejecuta si no es tipo planta
end

#org @mensajetipoplanta
= Es tipo planta.

#org @mensajenotipoplanta
= No es tipo planta.

Última edición por Versekr Dark; 22/11/2018 a las 14:45