pokeheartgold/asm/script.s

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