Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RAM_ARM9:0201587C ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:0201587C
- RAM_ARM9:0201587C
- RAM_ARM9:0201587C ; void __fastcall initScriptEnvironment(ScriptEnvironment *vm)
- RAM_ARM9:0201587C initScriptEnvironment ; CODE XREF: initEnvironment+6p
- RAM_ARM9:0201587C ; intializeScriptEnvironment+6p
- RAM_ARM9:0201587C 38 B5 PUSH {R3-R5,LR}
- RAM_ARM9:0201587E 05 1C MOVS R5, R0
- RAM_ARM9:02015880 2A 88 LDRH R2, [R5]
- RAM_ARM9:02015882 00 24 MOVS R4, #0
- RAM_ARM9:02015884 68 6A LDR R0, [R5,#ScriptEnvironment.script_stack_ptr] ; dest
- RAM_ARM9:02015886 00 21 MOVS R1, #0 ; data
- RAM_ARM9:02015888 92 00 LSLS R2, R2, #2
- RAM_ARM9:0201588A 2C 62 STR R4, [R5,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:0201588C AC 76 STRB R4, [R5,#ScriptEnvironment.scriptCmpResult]
- RAM_ARM9:0201588E 6C 76 STRB R4, [R5,#ScriptEnvironment.executionState]
- RAM_ARM9:02015890 EC 61 STR R4, [R5,#ScriptEnvironment.funcptr]
- RAM_ARM9:02015892 2C 76 STRB R4, [R5,#ScriptEnvironment.stackPointer]
- RAM_ARM9:02015894 62 F0 9E EF BLX MI_CpuFill8 ; this zeroes out the entire script stack
- RAM_ARM9:02015898 6A 88 LDRH R2, [R5,#2]
- RAM_ARM9:0201589A A8 6A LDR R0, [R5,#ScriptEnvironment.vars] ; dest
- RAM_ARM9:0201589C 00 21 MOVS R1, #0 ; data
- RAM_ARM9:0201589E 92 00 LSLS R2, R2, #2
- RAM_ARM9:020158A0 62 F0 98 EF BLX MI_CpuFill8 ; this zeroes out the environment var area
- RAM_ARM9:020158A4 2C 63 STR R4, [R5,#ScriptEnvironment.script_callback_verifier]
- RAM_ARM9:020158A6 6C 63 STR R4, [R5,#ScriptEnvironment.sys_info]
- RAM_ARM9:020158A8 38 BD POP {R3-R5,PC}
- RAM_ARM9:020158A8 ; End of function initScriptEnvironment
- RAM_ARM9:020158A8
- RAM_ARM9:020158A8 ; ---------------------------------------------------------------------------
- RAM_ARM9:020158AA 00 00 DCW 0
- RAM_ARM9:020158AC
- RAM_ARM9:020158AC ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:020158AC
- RAM_ARM9:020158AC
- RAM_ARM9:020158AC ; void *__fastcall startScriptingVirtualMachine(s16 blkGroupID, ScriptEnvironment *vm)
- RAM_ARM9:020158AC startScriptingVirtualMachine ; CODE XREF: setupScriptingEnvironment+68p
- RAM_ARM9:020158AC
- RAM_ARM9:020158AC marker = -0x18
- RAM_ARM9:020158AC
- RAM_ARM9:020158AC F8 B5 PUSH {R3-R7,LR} ; marker
- RAM_ARM9:020158AE 0D 1C MOVS R5, R1 ; the &vm being passed in here is a local copy on the stack meant for copying to 1 of 4 globally accesible virtual machines
- RAM_ARM9:020158B0 69 88 LDRH R1, [R5,#2] ; virtual machine- script interpreter
- RAM_ARM9:020158B2 10 4B LDR R3, =aVm_c ; "vm.c"
- RAM_ARM9:020158B4 00 22 MOVS R2, #0 ; clearBlock
- RAM_ARM9:020158B6 8C 00 LSLS R4, R1, #2
- RAM_ARM9:020158B8 29 88 LDRH R1, [R5]
- RAM_ARM9:020158BA 3C 34 ADDS R4, #0x3C ; '<'
- RAM_ARM9:020158BC 8E 00 LSLS R6, R1, #2
- RAM_ARM9:020158BE 60 21 MOVS R1, #0x60 ; '`'
- RAM_ARM9:020158C0 00 91 STR R1, [SP,#0x18+marker] ; marker
- RAM_ARM9:020158C2 A1 19 ADDS R1, R4, R6 ; blockLength
- RAM_ARM9:020158C4 24 F0 B0 FC BL allocateBlockFromExpHeap
- RAM_ARM9:020158C8 07 1C MOVS R7, R0
- RAM_ARM9:020158CA 00 21 MOVS R1, #0 ; data
- RAM_ARM9:020158CC A2 19 ADDS R2, R4, R6 ; size
- RAM_ARM9:020158CE 62 F0 82 EF BLX MI_CpuFill8
- RAM_ARM9:020158D2 2B 1C MOVS R3, R5
- RAM_ARM9:020158D4 3A 1C MOVS R2, R7
- RAM_ARM9:020158D6 03 CB LDMIA R3!, {R0,R1} ; block copy of prepared script environment
- RAM_ARM9:020158D8 03 C2 STMIA R2!, {R0,R1}
- RAM_ARM9:020158DA 03 CB LDMIA R3!, {R0,R1}
- RAM_ARM9:020158DC 03 C2 STMIA R2!, {R0,R1}
- RAM_ARM9:020158DE 03 CB LDMIA R3!, {R0,R1}
- RAM_ARM9:020158E0 03 C2 STMIA R2!, {R0,R1}
- RAM_ARM9:020158E2 68 88 LDRH R0, [R5,#2] ; global var max
- RAM_ARM9:020158E4 39 1C MOVS R1, R7
- RAM_ARM9:020158E6 3C 31 ADDS R1, #0x3C ; '<'
- RAM_ARM9:020158E8 80 00 LSLS R0, R0, #2 ; stack max * 4 for alignment(number * size)(stack is 32-bit)
- RAM_ARM9:020158EA B9 62 STR R1, [R7,#0x28] ; store ptr to global var store
- RAM_ARM9:020158EC 08 18 ADDS R0, R1, R0
- RAM_ARM9:020158EE 78 62 STR R0, [R7,#0x24] ; stack ptr
- RAM_ARM9:020158F0 38 1C MOVS R0, R7
- RAM_ARM9:020158F2 F8 BD POP {R3-R7,PC}
- RAM_ARM9:020158F2 ; End of function startScriptingVirtualMachine
- RAM_ARM9:020158F2
- RAM_ARM9:020158F2 ; ---------------------------------------------------------------------------
- RAM_ARM9:020158F4 ; void *off_20158F4
- RAM_ARM9:020158F4 38 A3 09 02 off_20158F4 DCD aVm_c ; DATA XREF: startScriptingVirtualMachine+6r
- RAM_ARM9:020158F4 ; "vm.c"
- RAM_ARM9:020158F8
- RAM_ARM9:020158F8 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:020158F8
- RAM_ARM9:020158F8
- RAM_ARM9:020158F8 ; void __fastcall freeScriptingEnvironment(ScriptEnvironment *vm)
- RAM_ARM9:020158F8 freeScriptingEnvironment ; CODE XREF: freeScriptingAllocations+14p
- RAM_ARM9:020158F8 00 4B LDR R3, =(freeBlock+1)
- RAM_ARM9:020158FA 18 47 BX R3 ; freeBlock
- RAM_ARM9:020158FA ; End of function freeScriptingEnvironment
- RAM_ARM9:020158FA
- RAM_ARM9:020158FA ; ---------------------------------------------------------------------------
- RAM_ARM9:020158FC 79 A2 03 02 off_20158FC DCD freeBlock+1 ; DATA XREF: freeScriptingEnvironmentr
- RAM_ARM9:02015900
- RAM_ARM9:02015900 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015900
- RAM_ARM9:02015900
- RAM_ARM9:02015900 ; void __fastcall initEnvironment(ScriptEnvironment *vm, ScrcmdEnvironment *work)
- RAM_ARM9:02015900 initEnvironment ; CODE XREF: setupScriptingEnvironment+70p
- RAM_ARM9:02015900 38 B5 PUSH {R3-R5,LR}
- RAM_ARM9:02015902 05 1C MOVS R5, R0
- RAM_ARM9:02015904 0C 1C MOVS R4, R1
- RAM_ARM9:02015906 FF F7 B9 FF BL initScriptEnvironment
- RAM_ARM9:0201590A EC 62 STR R4, [R5,#ScriptEnvironment.scrcmd_ptr]
- RAM_ARM9:0201590C 38 BD POP {R3-R5,PC}
- RAM_ARM9:0201590C ; End of function initEnvironment
- RAM_ARM9:0201590C
- RAM_ARM9:0201590C ; ---------------------------------------------------------------------------
- RAM_ARM9:0201590E 00 DCB 0
- RAM_ARM9:0201590F 00 DCB 0
- RAM_ARM9:02015910
- RAM_ARM9:02015910 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015910
- RAM_ARM9:02015910
- RAM_ARM9:02015910 ; void __fastcall intializeScriptEnvironment(ScriptEnvironment *vm, u8 *initial_script_ptr_pos)
- RAM_ARM9:02015910 intializeScriptEnvironment ; CODE XREF: setupScriptingEnvironment+AAp
- RAM_ARM9:02015910 38 B5 PUSH {R3-R5,LR}
- RAM_ARM9:02015912 04 1C MOVS R4, R0
- RAM_ARM9:02015914 0D 1C MOVS R5, R1
- RAM_ARM9:02015916 FF F7 B1 FF BL initScriptEnvironment
- RAM_ARM9:0201591A 01 20 MOVS R0, #1
- RAM_ARM9:0201591C 25 62 STR R5, [R4,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:0201591E 60 76 STRB R0, [R4,#ScriptEnvironment.executionState]
- RAM_ARM9:02015920 38 BD POP {R3-R5,PC}
- RAM_ARM9:02015920 ; End of function intializeScriptEnvironment
- RAM_ARM9:02015920
- RAM_ARM9:02015920 ; ---------------------------------------------------------------------------
- RAM_ARM9:02015922 00 DCB 0
- RAM_ARM9:02015923 00 DCB 0
- RAM_ARM9:02015924
- RAM_ARM9:02015924 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015924
- RAM_ARM9:02015924
- RAM_ARM9:02015924 ; void __fastcall setScriptState_End(ScriptEnvironment *vm)
- RAM_ARM9:02015924 setScriptState_End ; CODE XREF: s0002_endScript+2p
- RAM_ARM9:02015924 ; s001D_endScriptExecution+Cp ...
- RAM_ARM9:02015924 00 21 MOVS R1, #0
- RAM_ARM9:02015926 41 76 STRB R1, [R0,#ScriptEnvironment.executionState]
- RAM_ARM9:02015928 01 62 STR R1, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:0201592A 70 47 BX LR
- RAM_ARM9:0201592A ; End of function setScriptState_End
- RAM_ARM9:0201592A
- RAM_ARM9:0201592C
- RAM_ARM9:0201592C ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:0201592C
- RAM_ARM9:0201592C
- RAM_ARM9:0201592C ; bool __fastcall scriptHandler_main(ScriptEnvironment *vm)
- RAM_ARM9:0201592C scriptHandler_main ; CODE XREF: runAllVirtualMachines+12p
- RAM_ARM9:0201592C ; execute_script+3Ep
- RAM_ARM9:0201592C 70 B5 PUSH {R4-R6,LR}
- RAM_ARM9:0201592E 05 1C MOVS R5, R0
- RAM_ARM9:02015930 69 7E LDRB R1, [R5,#ScriptEnvironment.executionState]
- RAM_ARM9:02015932 00 29 CMP R1, #0
- RAM_ARM9:02015934 04 D0 BEQ script_over
- RAM_ARM9:02015936 01 29 CMP R1, #1
- RAM_ARM9:02015938 13 D0 BEQ script_run
- RAM_ARM9:0201593A 02 29 CMP R1, #2
- RAM_ARM9:0201593C 02 D0 BEQ run_assembly
- RAM_ARM9:0201593E 49 E0 B pause_script_interpreter
- RAM_ARM9:02015940 ; ---------------------------------------------------------------------------
- RAM_ARM9:02015940
- RAM_ARM9:02015940 script_over ; CODE XREF: scriptHandler_main+8j
- RAM_ARM9:02015940 00 20 MOVS R0, #0
- RAM_ARM9:02015942 70 BD POP {R4-R6,PC}
- RAM_ARM9:02015944 ; ---------------------------------------------------------------------------
- RAM_ARM9:02015944
- RAM_ARM9:02015944 run_assembly ; CODE XREF: scriptHandler_main+10j
- RAM_ARM9:02015944 EA 69 LDR R2, [R5,#ScriptEnvironment.funcptr] ; get assembly routine to run
- RAM_ARM9:02015946 00 2A CMP R2, #0 ; is there a routine?
- RAM_ARM9:02015948 09 D0 BEQ swap_asm_to_script ; if not, there may have been a mistake. jump back to script execution
- RAM_ARM9:0201594A E9 6A LDR R1, [R5,#ScriptEnvironment.scrcmd_ptr] ; load script command info struct ptr
- RAM_ARM9:0201594C 90 47 BLX R2
- RAM_ARM9:0201594E 01 28 CMP R0, #1
- RAM_ARM9:02015950 03 D1 BNE exit_success
- RAM_ARM9:02015952 00 20 MOVS R0, #0
- RAM_ARM9:02015954 E8 61 STR R0, [R5,#ScriptEnvironment.funcptr] ; set asm routine ptr to 0 after it runs
- RAM_ARM9:02015956 01 20 MOVS R0, #1
- RAM_ARM9:02015958 68 76 STRB R0, [R5,#ScriptEnvironment.executionState] ; set script handler status back to executing scripts instead of asm
- RAM_ARM9:0201595A
- RAM_ARM9:0201595A exit_success ; CODE XREF: scriptHandler_main+24j
- RAM_ARM9:0201595A 01 20 MOVS R0, #1 ; always exit after running assembly
- RAM_ARM9:0201595C 70 BD POP {R4-R6,PC}
- RAM_ARM9:0201595E ; ---------------------------------------------------------------------------
- RAM_ARM9:0201595E
- RAM_ARM9:0201595E swap_asm_to_script ; CODE XREF: scriptHandler_main+1Cj
- RAM_ARM9:0201595E 01 20 MOVS R0, #1 ; change from r5 + 0x19 = 2 to r5 + 0x19 = 1, so switch to script execution, not assembly execution
- RAM_ARM9:02015960 68 76 STRB R0, [R5,#ScriptEnvironment.executionState]
- RAM_ARM9:02015962
- RAM_ARM9:02015962 script_run ; CODE XREF: scriptHandler_main+Cj
- RAM_ARM9:02015962 ; scriptHandler_main+7Aj ...
- RAM_ARM9:02015962 28 6A LDR R0, [R5,#ScriptEnvironment.script_pos_ptr] ; load ptr to next script command to be read
- RAM_ARM9:02015964 00 28 CMP R0, #0
- RAM_ARM9:02015966 02 D1 BNE script_continue
- RAM_ARM9:02015968 00 20 MOVS R0, #0
- RAM_ARM9:0201596A 68 76 STRB R0, [R5,#ScriptEnvironment.executionState] ; if the next command is 0, set the continuance byte to 0 and exit
- RAM_ARM9:0201596C 70 BD POP {R4-R6,PC}
- RAM_ARM9:0201596E ; ---------------------------------------------------------------------------
- RAM_ARM9:0201596E
- RAM_ARM9:0201596E script_continue ; CODE XREF: scriptHandler_main+3Aj
- RAM_ARM9:0201596E 28 1C MOVS R0, R5 ; vm
- RAM_ARM9:02015970 00 F0 3A F8 BL scriptRead16
- RAM_ARM9:02015974 04 1C MOVS R4, R0
- RAM_ARM9:02015976 A8 68 LDR R0, [R5,#ScriptEnvironment.cmdMax] ; get total scrcmd count(0x2F3)
- RAM_ARM9:02015978 84 42 CMP R4, R0 ; is this command valid?(is it 2F2 or less)
- RAM_ARM9:0201597A 15 D3 BCC verify_scrcmd
- RAM_ARM9:0201597C 6B 69 LDR R3, [R5,#0x14]
- RAM_ARM9:0201597E 9C 42 CMP R4, R3
- RAM_ARM9:02015980 06 D3 BCC loc_2015990
- RAM_ARM9:02015982 28 69 LDR R0, [R5,#0x10]
- RAM_ARM9:02015984 C0 18 ADDS R0, R0, R3
- RAM_ARM9:02015986 84 42 CMP R4, R0
- RAM_ARM9:02015988 02 D2 BCS loc_2015990
- RAM_ARM9:0201598A EA 68 LDR R2, [R5,#0xC]
- RAM_ARM9:0201598C 00 2A CMP R2, #0
- RAM_ARM9:0201598E 02 D1 BNE loc_2015996
- RAM_ARM9:02015990
- RAM_ARM9:02015990 loc_2015990 ; CODE XREF: scriptHandler_main+54j
- RAM_ARM9:02015990 ; scriptHandler_main+5Cj
- RAM_ARM9:02015990 00 20 MOVS R0, #0
- RAM_ARM9:02015992 68 76 STRB R0, [R5,#0x19]
- RAM_ARM9:02015994 70 BD POP {R4-R6,PC}
- RAM_ARM9:02015996 ; ---------------------------------------------------------------------------
- RAM_ARM9:02015996
- RAM_ARM9:02015996 loc_2015996 ; CODE XREF: scriptHandler_main+62j
- RAM_ARM9:02015996 E3 1A SUBS R3, R4, R3
- RAM_ARM9:02015998 9B 00 LSLS R3, R3, #2
- RAM_ARM9:0201599A E9 6A LDR R1, [R5,#ScriptEnvironment.scrcmd_ptr]
- RAM_ARM9:0201599C D2 58 LDR R2, [R2,R3]
- RAM_ARM9:0201599E 28 1C MOVS R0, R5
- RAM_ARM9:020159A0 90 47 BLX R2
- RAM_ARM9:020159A2 01 28 CMP R0, #1
- RAM_ARM9:020159A4 18 D0 BEQ script_done_success
- RAM_ARM9:020159A6 DC E7 B script_run
- RAM_ARM9:020159A8 ; ---------------------------------------------------------------------------
- RAM_ARM9:020159A8
- RAM_ARM9:020159A8 verify_scrcmd ; CODE XREF: scriptHandler_main+4Ej
- RAM_ARM9:020159A8 2E 6B LDR R6, [R5,#ScriptEnvironment.script_callback_verifier]
- RAM_ARM9:020159AA 00 2E CMP R6, #0
- RAM_ARM9:020159AC 09 D0 BEQ execute_scr_cmd
- RAM_ARM9:020159AE E9 6A LDR R1, [R5,#ScriptEnvironment.scrcmd_ptr]
- RAM_ARM9:020159B0 6A 6B LDR R2, [R5,#ScriptEnvironment.sys_info]
- RAM_ARM9:020159B2 28 1C MOVS R0, R5
- RAM_ARM9:020159B4 23 1C MOVS R3, R4
- RAM_ARM9:020159B6 B0 47 BLX R6
- RAM_ARM9:020159B8 00 28 CMP R0, #0
- RAM_ARM9:020159BA 02 D1 BNE execute_scr_cmd
- RAM_ARM9:020159BC 00 20 MOVS R0, #0
- RAM_ARM9:020159BE 68 76 STRB R0, [R5,#ScriptEnvironment.executionState]
- RAM_ARM9:020159C0 70 BD POP {R4-R6,PC}
- RAM_ARM9:020159C2 ; ---------------------------------------------------------------------------
- RAM_ARM9:020159C2
- RAM_ARM9:020159C2 execute_scr_cmd ; CODE XREF: scriptHandler_main+80j
- RAM_ARM9:020159C2 ; scriptHandler_main+8Ej
- RAM_ARM9:020159C2 6B 68 LDR R3, [R5,#ScriptEnvironment.cmdArray] ; load address of script command function array
- RAM_ARM9:020159C4 A2 00 LSLS R2, R4, #2 ; 4-byte alignment
- RAM_ARM9:020159C6 E9 6A LDR R1, [R5,#ScriptEnvironment.scrcmd_ptr] ; load script command info pointer
- RAM_ARM9:020159C8 9A 58 LDR R2, [R3,R2]
- RAM_ARM9:020159CA 28 1C MOVS R0, R5
- RAM_ARM9:020159CC 90 47 BLX R2
- RAM_ARM9:020159CE 01 28 CMP R0, #1 ; did we hit the end of the script? (1 = yes)
- RAM_ARM9:020159D0 02 D0 BEQ script_done_success
- RAM_ARM9:020159D2 C6 E7 B script_run
- RAM_ARM9:020159D4 ; ---------------------------------------------------------------------------
- RAM_ARM9:020159D4
- RAM_ARM9:020159D4 pause_script_interpreter ; CODE XREF: scriptHandler_main+12j
- RAM_ARM9:020159D4 00 20 MOVS R0, #0
- RAM_ARM9:020159D6 68 76 STRB R0, [R5,#ScriptEnvironment.executionState]
- RAM_ARM9:020159D8
- RAM_ARM9:020159D8 script_done_success ; CODE XREF: scriptHandler_main+78j
- RAM_ARM9:020159D8 ; scriptHandler_main+A4j
- RAM_ARM9:020159D8 01 20 MOVS R0, #1
- RAM_ARM9:020159DA 70 BD POP {R4-R6,PC}
- RAM_ARM9:020159DA ; End of function scriptHandler_main
- RAM_ARM9:020159DA
- RAM_ARM9:020159DC
- RAM_ARM9:020159DC ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:020159DC
- RAM_ARM9:020159DC
- RAM_ARM9:020159DC ; ScrcmdEnvironment *__fastcall getScrcmdEnvironment(ScriptEnvironment *vm)
- RAM_ARM9:020159DC getScrcmdEnvironment ; CODE XREF: freeScriptingAllocations+4p
- RAM_ARM9:020159DC ; setScriptCallbackVerifier+4p
- RAM_ARM9:020159DC C0 6A LDR R0, [R0,#ScriptEnvironment.scrcmd_ptr]
- RAM_ARM9:020159DE 70 47 BX LR
- RAM_ARM9:020159DE ; End of function getScrcmdEnvironment
- RAM_ARM9:020159DE
- RAM_ARM9:020159E0
- RAM_ARM9:020159E0 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:020159E0
- RAM_ARM9:020159E0
- RAM_ARM9:020159E0 saveScriptCallbackSysinfo ; CODE XREF: setScriptCallbackVerifier+12p
- RAM_ARM9:020159E0 01 63 STR R1, [R0,#ScriptEnvironment.script_callback_verifier]
- RAM_ARM9:020159E2 42 63 STR R2, [R0,#ScriptEnvironment.sys_info]
- RAM_ARM9:020159E4 70 47 BX LR
- RAM_ARM9:020159E4 ; End of function saveScriptCallbackSysinfo
- RAM_ARM9:020159E4
- RAM_ARM9:020159E4 ; ---------------------------------------------------------------------------
- RAM_ARM9:020159E6 00 DCB 0
- RAM_ARM9:020159E7 00 DCB 0
- RAM_ARM9:020159E8
- RAM_ARM9:020159E8 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:020159E8
- RAM_ARM9:020159E8
- RAM_ARM9:020159E8 ; u16 __fastcall scriptRead16(ScriptEnvironment *vm)
- RAM_ARM9:020159E8 scriptRead16 ; CODE XREF: scriptHandler_main+44p
- RAM_ARM9:020159E8 ; s0003_pauseScriptSysForXTurns+6p ...
- RAM_ARM9:020159E8 02 6A LDR R2, [R0,#ScriptEnvironment.script_pos_ptr] ; load offset of next script command
- RAM_ARM9:020159EA 13 78 LDRB R3, [R2] ; load next byte of script
- RAM_ARM9:020159EC 51 1C ADDS R1, R2, #1 ; add 1 to current script command offset ptr
- RAM_ARM9:020159EE 01 62 STR R1, [R0,#ScriptEnvironment.script_pos_ptr] ; store that pointer back to script info base
- RAM_ARM9:020159F0 52 78 LDRB R2, [R2,#1] ; load next byte of current script command
- RAM_ARM9:020159F2 49 1C ADDS R1, R1, #1 ; add 1 to current script command offset ptr
- RAM_ARM9:020159F4 01 62 STR R1, [R0,#ScriptEnvironment.script_pos_ptr] ; store that pointer back to script info base
- RAM_ARM9:020159F6 10 06 LSLS R0, R2, #0x18
- RAM_ARM9:020159F8 00 0C LSRS R0, R0, #0x10
- RAM_ARM9:020159FA 18 18 ADDS R0, R3, R0
- RAM_ARM9:020159FC 00 04 LSLS R0, R0, #0x10
- RAM_ARM9:020159FE 00 0C LSRS R0, R0, #0x10
- RAM_ARM9:02015A00 70 47 BX LR
- RAM_ARM9:02015A00 ; End of function scriptRead16
- RAM_ARM9:02015A00
- RAM_ARM9:02015A00 ; ---------------------------------------------------------------------------
- RAM_ARM9:02015A02 00 DCB 0
- RAM_ARM9:02015A03 00 DCB 0
- RAM_ARM9:02015A04
- RAM_ARM9:02015A04 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A04
- RAM_ARM9:02015A04
- RAM_ARM9:02015A04 ; u32 __fastcall scriptRead32(ScriptEnvironment *vm)
- RAM_ARM9:02015A04 scriptRead32 ; CODE XREF: setupScriptingEnvironment+BAp
- RAM_ARM9:02015A04 ; s0004_pushPCAndJumpToLeafScript+4p ...
- RAM_ARM9:02015A04 30 B4 PUSH {R4,R5}
- RAM_ARM9:02015A06 02 6A LDR R2, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:02015A08 13 78 LDRB R3, [R2]
- RAM_ARM9:02015A0A 51 1C ADDS R1, R2, #1
- RAM_ARM9:02015A0C 4D 1C ADDS R5, R1, #1
- RAM_ARM9:02015A0E 01 62 STR R1, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:02015A10 52 78 LDRB R2, [R2,#1]
- RAM_ARM9:02015A12 6C 1C ADDS R4, R5, #1
- RAM_ARM9:02015A14 05 62 STR R5, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:02015A16 49 78 LDRB R1, [R1,#1]
- RAM_ARM9:02015A18 04 62 STR R4, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:02015A1A 6D 78 LDRB R5, [R5,#1]
- RAM_ARM9:02015A1C 64 1C ADDS R4, R4, #1
- RAM_ARM9:02015A1E 04 62 STR R4, [R0,#ScriptEnvironment.script_pos_ptr]
- RAM_ARM9:02015A20 00 20 MOVS R0, #0
- RAM_ARM9:02015A22 40 19 ADDS R0, R0, R5
- RAM_ARM9:02015A24 00 02 LSLS R0, R0, #8
- RAM_ARM9:02015A26 40 18 ADDS R0, R0, R1
- RAM_ARM9:02015A28 00 02 LSLS R0, R0, #8
- RAM_ARM9:02015A2A 80 18 ADDS R0, R0, R2
- RAM_ARM9:02015A2C 00 02 LSLS R0, R0, #8
- RAM_ARM9:02015A2E C0 18 ADDS R0, R0, R3
- RAM_ARM9:02015A30 30 BC POP {R4,R5}
- RAM_ARM9:02015A32 70 47 BX LR
- RAM_ARM9:02015A32 ; End of function scriptRead32
- RAM_ARM9:02015A32
- RAM_ARM9:02015A34
- RAM_ARM9:02015A34 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A34
- RAM_ARM9:02015A34
- RAM_ARM9:02015A34 ; void __fastcall pushScriptStack(ScriptEnvironment *vm, u32 val)
- RAM_ARM9:02015A34 pushScriptStack ; CODE XREF: pushProgramCounterAndSetNew+8p
- RAM_ARM9:02015A34 ; s0008_pushParamVarToScriptStack+Cp ...
- RAM_ARM9:02015A34 18 B4 PUSH {R3,R4}
- RAM_ARM9:02015A36 04 7E LDRB R4, [R0,#0x18]
- RAM_ARM9:02015A38 02 88 LDRH R2, [R0]
- RAM_ARM9:02015A3A 63 1C ADDS R3, R4, #1
- RAM_ARM9:02015A3C 93 42 CMP R3, R2
- RAM_ARM9:02015A3E 05 DA BGE loc_2015A4C
- RAM_ARM9:02015A40 43 6A LDR R3, [R0,#0x24]
- RAM_ARM9:02015A42 A2 00 LSLS R2, R4, #2
- RAM_ARM9:02015A44 99 50 STR R1, [R3,R2]
- RAM_ARM9:02015A46 01 7E LDRB R1, [R0,#0x18]
- RAM_ARM9:02015A48 49 1C ADDS R1, R1, #1
- RAM_ARM9:02015A4A 01 76 STRB R1, [R0,#0x18]
- RAM_ARM9:02015A4C
- RAM_ARM9:02015A4C loc_2015A4C ; CODE XREF: pushScriptStack+Aj
- RAM_ARM9:02015A4C 18 BC POP {R3,R4}
- RAM_ARM9:02015A4E 70 47 BX LR
- RAM_ARM9:02015A4E ; End of function pushScriptStack
- RAM_ARM9:02015A4E
- RAM_ARM9:02015A50
- RAM_ARM9:02015A50 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A50
- RAM_ARM9:02015A50
- RAM_ARM9:02015A50 ; u32 __fastcall popScriptStack(ScriptEnvironment *vm)
- RAM_ARM9:02015A50 popScriptStack ; CODE XREF: popStackProgramCounter+4p
- RAM_ARM9:02015A50 ; s0007_popScriptStackDerefParamVar+6p ...
- RAM_ARM9:02015A50 01 7E LDRB R1, [R0,#0x18]
- RAM_ARM9:02015A52 00 29 CMP R1, #0
- RAM_ARM9:02015A54 01 D1 BNE loc_2015A5A
- RAM_ARM9:02015A56 00 20 MOVS R0, #0
- RAM_ARM9:02015A58 70 47 BX LR
- RAM_ARM9:02015A5A ; ---------------------------------------------------------------------------
- RAM_ARM9:02015A5A
- RAM_ARM9:02015A5A loc_2015A5A ; CODE XREF: popScriptStack+4j
- RAM_ARM9:02015A5A 49 1E SUBS R1, R1, #1
- RAM_ARM9:02015A5C 01 76 STRB R1, [R0,#0x18]
- RAM_ARM9:02015A5E 41 6A LDR R1, [R0,#0x24]
- RAM_ARM9:02015A60 00 7E LDRB R0, [R0,#0x18]
- RAM_ARM9:02015A62 80 00 LSLS R0, R0, #2
- RAM_ARM9:02015A64 08 58 LDR R0, [R1,R0]
- RAM_ARM9:02015A66 70 47 BX LR
- RAM_ARM9:02015A66 ; End of function popScriptStack
- RAM_ARM9:02015A66
- RAM_ARM9:02015A68
- RAM_ARM9:02015A68 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A68
- RAM_ARM9:02015A68
- RAM_ARM9:02015A68 ; void __fastcall jumpScrPos(ScriptEnvironment *vm, u32 address)
- RAM_ARM9:02015A68 jumpScrPos ; CODE XREF: s001E_unconditionalJump+10p
- RAM_ARM9:02015A68 ; s001F_conditionalJump+38p
- RAM_ARM9:02015A68 01 62 STR R1, [R0,#0x20]
- RAM_ARM9:02015A6A 70 47 BX LR
- RAM_ARM9:02015A6A ; End of function jumpScrPos
- RAM_ARM9:02015A6A
- RAM_ARM9:02015A6C
- RAM_ARM9:02015A6C ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A6C
- RAM_ARM9:02015A6C
- RAM_ARM9:02015A6C ; void __fastcall pushProgramCounterAndSetNew(ScriptEnvironment *vm, void *pJumpScript)
- RAM_ARM9:02015A6C pushProgramCounterAndSetNew ; CODE XREF: s0004_pushPCAndJumpToLeafScript+10p
- RAM_ARM9:02015A6C ; s0020_conditionalCall+28p
- RAM_ARM9:02015A6C 38 B5 PUSH {R3-R5,LR}
- RAM_ARM9:02015A6E 05 1C MOVS R5, R0
- RAM_ARM9:02015A70 0C 1C MOVS R4, R1
- RAM_ARM9:02015A72 29 6A LDR R1, [R5,#0x20] ; val
- RAM_ARM9:02015A74 FF F7 DE FF BL pushScriptStack
- RAM_ARM9:02015A78 2C 62 STR R4, [R5,#0x20]
- RAM_ARM9:02015A7A 38 BD POP {R3-R5,PC}
- RAM_ARM9:02015A7A ; End of function pushProgramCounterAndSetNew
- RAM_ARM9:02015A7A
- RAM_ARM9:02015A7C
- RAM_ARM9:02015A7C ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A7C
- RAM_ARM9:02015A7C
- RAM_ARM9:02015A7C ; void __fastcall popStackProgramCounter(ScriptEnvironment *vm)
- RAM_ARM9:02015A7C popStackProgramCounter ; CODE XREF: s0005_setStackToProgramCounter+2p
- RAM_ARM9:02015A7C 10 B5 PUSH {R4,LR}
- RAM_ARM9:02015A7E 04 1C MOVS R4, R0
- RAM_ARM9:02015A80 FF F7 E6 FF BL popScriptStack
- RAM_ARM9:02015A84 20 62 STR R0, [R4,#0x20]
- RAM_ARM9:02015A86 10 BD POP {R4,PC}
- RAM_ARM9:02015A86 ; End of function popStackProgramCounter
- RAM_ARM9:02015A86
- RAM_ARM9:02015A88
- RAM_ARM9:02015A88 ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:02015A88
- RAM_ARM9:02015A88
- RAM_ARM9:02015A88 ; void __fastcall setScriptState_Asm(ScriptEnvironment *vm, AsmCall *func_ptr)
- RAM_ARM9:02015A88 setScriptState_Asm ; CODE XREF: s0003_pauseScriptSysForXTurns+16p
- RAM_ARM9:02015A88 ; s001C_callScriptLib+4Ap ...
- RAM_ARM9:02015A88 02 22 MOVS R2, #2
- RAM_ARM9:02015A8A 42 76 STRB R2, [R0,#0x19]
- RAM_ARM9:02015A8C C1 61 STR R1, [R0,#0x1C]
- RAM_ARM9:02015A8E 70 47 BX LR
- RAM_ARM9:02015A8E ; End of function setScriptState_Asm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement