mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-05-11 05:14:21 -05:00
240 lines
3.9 KiB
ArmAsm
240 lines
3.9 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
thumb_func_start InitScriptContext
|
|
InitScriptContext: ; 0x0203FD18
|
|
push {r3, r4}
|
|
mov r3, #0
|
|
strb r3, [r0, #1]
|
|
str r3, [r0, #8]
|
|
strb r3, [r0]
|
|
strb r3, [r0, #3]
|
|
str r3, [r0, #4]
|
|
str r1, [r0, #0x5c]
|
|
str r2, [r0, #0x60]
|
|
add r1, r0, #0
|
|
add r4, r3, #0
|
|
_0203FD2E:
|
|
add r3, r3, #1
|
|
str r4, [r1, #0x64]
|
|
add r1, r1, #4
|
|
cmp r3, #4
|
|
blo _0203FD2E
|
|
add r2, r0, #0
|
|
mov r1, #0
|
|
_0203FD3C:
|
|
add r4, r4, #1
|
|
str r1, [r2, #0xc]
|
|
add r2, r2, #4
|
|
cmp r4, #0x14
|
|
blo _0203FD3C
|
|
str r1, [r0, #0x74]
|
|
pop {r3, r4}
|
|
bx lr
|
|
thumb_func_end InitScriptContext
|
|
|
|
thumb_func_start SetupBytecodeScript
|
|
SetupBytecodeScript: ; 0x0203FD4C
|
|
str r1, [r0, #8]
|
|
mov r1, #1
|
|
strb r1, [r0, #1]
|
|
add r0, r1, #0
|
|
bx lr
|
|
.balign 4, 0
|
|
thumb_func_end SetupBytecodeScript
|
|
|
|
thumb_func_start SetupNativeScript
|
|
SetupNativeScript: ; 0x0203FD58
|
|
mov r2, #2
|
|
strb r2, [r0, #1]
|
|
str r1, [r0, #4]
|
|
bx lr
|
|
thumb_func_end SetupNativeScript
|
|
|
|
thumb_func_start StopScript
|
|
StopScript: ; 0x0203FD60
|
|
mov r1, #0
|
|
strb r1, [r0, #1]
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
thumb_func_end StopScript
|
|
|
|
thumb_func_start sub_0203FD68
|
|
sub_0203FD68: ; 0x0203FD68
|
|
str r1, [r0, #0x74]
|
|
bx lr
|
|
thumb_func_end sub_0203FD68
|
|
|
|
thumb_func_start RunScriptCommand
|
|
RunScriptCommand: ; 0x0203FD6C
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
ldrb r1, [r4, #1]
|
|
cmp r1, #0
|
|
bne _0203FD7A
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0203FD7A:
|
|
beq _0203FD86
|
|
cmp r1, #1
|
|
beq _0203FDA2
|
|
cmp r1, #2
|
|
beq _0203FD8A
|
|
b _0203FDD4
|
|
_0203FD86:
|
|
mov r0, #0
|
|
pop {r4, pc}
|
|
_0203FD8A:
|
|
ldr r1, [r4, #4]
|
|
cmp r1, #0
|
|
beq _0203FD9E
|
|
blx r1
|
|
cmp r0, #1
|
|
bne _0203FD9A
|
|
mov r0, #1
|
|
strb r0, [r4, #1]
|
|
_0203FD9A:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
_0203FD9E:
|
|
mov r0, #1
|
|
strb r0, [r4, #1]
|
|
_0203FDA2:
|
|
ldr r0, [r4, #8]
|
|
cmp r0, #0
|
|
bne _0203FDAE
|
|
mov r0, #0
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_0203FDAE:
|
|
add r0, r4, #0
|
|
bl ScriptReadHalfword
|
|
add r1, r0, #0
|
|
ldr r0, [r4, #0x60]
|
|
cmp r1, r0
|
|
blo _0203FDC6
|
|
bl GF_AssertFail
|
|
mov r0, #0
|
|
strb r0, [r4, #1]
|
|
pop {r4, pc}
|
|
_0203FDC6:
|
|
ldr r2, [r4, #0x5c]
|
|
lsl r1, r1, #2
|
|
ldr r1, [r2, r1]
|
|
add r0, r4, #0
|
|
blx r1
|
|
cmp r0, #1
|
|
bne _0203FDA2
|
|
_0203FDD4:
|
|
mov r0, #1
|
|
pop {r4, pc}
|
|
thumb_func_end RunScriptCommand
|
|
|
|
thumb_func_start ScriptPush
|
|
ScriptPush: ; 0x0203FDD8
|
|
ldrb r3, [r0]
|
|
add r2, r3, #1
|
|
cmp r2, #0x14
|
|
blt _0203FDE4
|
|
mov r0, #1
|
|
bx lr
|
|
_0203FDE4:
|
|
lsl r2, r3, #2
|
|
add r2, r0, r2
|
|
str r1, [r2, #0xc]
|
|
ldrb r1, [r0]
|
|
add r1, r1, #1
|
|
strb r1, [r0]
|
|
mov r0, #0
|
|
bx lr
|
|
thumb_func_end ScriptPush
|
|
|
|
thumb_func_start ScriptPop
|
|
ScriptPop: ; 0x0203FDF4
|
|
ldrb r1, [r0]
|
|
cmp r1, #0
|
|
bne _0203FDFE
|
|
mov r0, #0
|
|
bx lr
|
|
_0203FDFE:
|
|
sub r1, r1, #1
|
|
strb r1, [r0]
|
|
ldrb r1, [r0]
|
|
lsl r1, r1, #2
|
|
add r0, r0, r1
|
|
ldr r0, [r0, #0xc]
|
|
bx lr
|
|
thumb_func_end ScriptPop
|
|
|
|
thumb_func_start ScriptJump
|
|
ScriptJump: ; 0x0203FE0C
|
|
str r1, [r0, #8]
|
|
bx lr
|
|
thumb_func_end ScriptJump
|
|
|
|
thumb_func_start ScriptCall
|
|
ScriptCall: ; 0x0203FE10
|
|
push {r3, r4, r5, lr}
|
|
add r5, r0, #0
|
|
add r4, r1, #0
|
|
ldr r1, [r5, #8]
|
|
bl ScriptPush
|
|
str r4, [r5, #8]
|
|
pop {r3, r4, r5, pc}
|
|
thumb_func_end ScriptCall
|
|
|
|
thumb_func_start ScriptReturn
|
|
ScriptReturn: ; 0x0203FE20
|
|
push {r4, lr}
|
|
add r4, r0, #0
|
|
bl ScriptPop
|
|
str r0, [r4, #8]
|
|
pop {r4, pc}
|
|
thumb_func_end ScriptReturn
|
|
|
|
thumb_func_start ScriptReadHalfword
|
|
ScriptReadHalfword: ; 0x0203FE2C
|
|
ldr r1, [r0, #8]
|
|
add r3, r1, #1
|
|
str r3, [r0, #8]
|
|
ldrb r2, [r1]
|
|
add r1, r3, #1
|
|
str r1, [r0, #8]
|
|
ldrb r0, [r3]
|
|
lsl r0, r0, #8
|
|
add r0, r2, r0
|
|
lsl r0, r0, #0x10
|
|
lsr r0, r0, #0x10
|
|
bx lr
|
|
thumb_func_end ScriptReadHalfword
|
|
|
|
thumb_func_start ScriptReadWord
|
|
ScriptReadWord: ; 0x0203FE44
|
|
push {r4, r5}
|
|
ldr r1, [r0, #8]
|
|
add r2, r1, #1
|
|
str r2, [r0, #8]
|
|
ldrb r3, [r1]
|
|
add r1, r2, #1
|
|
add r5, r1, #1
|
|
str r1, [r0, #8]
|
|
ldrb r2, [r2]
|
|
add r4, r5, #1
|
|
str r5, [r0, #8]
|
|
ldrb r1, [r1]
|
|
str r4, [r0, #8]
|
|
ldrb r0, [r5]
|
|
mov r4, #0
|
|
add r0, r4, r0
|
|
lsl r0, r0, #8
|
|
add r0, r0, r1
|
|
lsl r0, r0, #8
|
|
add r0, r0, r2
|
|
lsl r0, r0, #8
|
|
add r0, r0, r3
|
|
pop {r4, r5}
|
|
bx lr
|
|
thumb_func_end ScriptReadWord
|