之后为了省空位及美观→_→稍微整理一下就是成品了
.text
.align 2
.thumb
.thumb_func
.global forme_change
main:
push {r0-r4,lr}
ldr r4, partystart
ldr r1, var
ldrh r1, [r1]
mov r2, #0x64
mul r1, r2
add r4, r1
mov r0, r4
get_species:
mov r1, #0xb
bl decrypt
ldr r1, var
ldrh r1, [r1,#0x2]
cmp r0, r1
bne exit
change_species:
mov r0, r4
mov r1, #0xb
ldr r2, var
add r2, #0x4
bl encrypt
mov r0, r4
bl statrecalc
exit:
pop {r0-r4,pc}
encrypt:
ldr r3, encrypter
bx r3
decrypt:
ldr r3, decrypter
bx r3
statrecalc:
ldr r3, statrec
bx r3
.align
encrypter:.word 0x0804037D
decrypter:.word 0x0803FBE9
partystart:.word 0x02024284
statrec:.word 0x0803E47D
var:.word 0x020370C0
变数8004是位置
变数8005是判断种族,
符合情况时根据变数8006替换种族。
至于怎么用就不解释了→_→
.text
.align 2
.thumb
.thumb_func
.global forme_change
main:
push {r0-r4,lr}
ldr r4, partystart
ldr r1, var
ldrh r1, [r1]
mov r2, #0x64
mul r1, r2
add r4, r1
mov r0, r4
get_species:
mov r1, #0xb
bl decrypt
ldr r1, var
ldrh r1, [r1,#0x2]
cmp r0, r1
bne exit
change_species:
mov r0, r4
mov r1, #0xb
ldr r2, var
add r2, #0x4
bl encrypt
mov r0, r4
bl statrecalc
exit:
pop {r0-r4,pc}
encrypt:
ldr r3, encrypter
bx r3
decrypt:
ldr r3, decrypter
bx r3
statrecalc:
ldr r3, statrec
bx r3
.align
encrypter:.word 0x0804037D
decrypter:.word 0x0803FBE9
partystart:.word 0x02024284
statrec:.word 0x0803E47D
var:.word 0x020370C0
变数8004是位置
变数8005是判断种族,
符合情况时根据变数8006替换种族。
至于怎么用就不解释了→_→



米
米
尔










