diff options
author | YamaArashi <shadow962@live.com> | 2016-09-19 23:49:22 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-09-19 23:49:22 -0700 |
commit | 0b2a61e5d84e8a9950004c8d76ad8556e334f6c4 (patch) | |
tree | 9c6c31de37ba0dbcee99b8093f07d127d1de81e6 | |
parent | 573fa4cd845aae6d95719812e0fa39de2ffb07a9 (diff) |
WIP decompilation of script functions
-rw-r--r-- | asm/rom_8065394.s | 2605 | ||||
-rw-r--r-- | data/data2.s | 3 | ||||
-rw-r--r-- | data/script_cmd_table.s | 398 | ||||
-rw-r--r-- | ewram_syms.txt | 8 | ||||
-rw-r--r-- | include/fieldmap.h | 37 | ||||
-rw-r--r-- | include/global.h | 33 | ||||
-rw-r--r-- | include/script.h | 43 | ||||
-rw-r--r-- | iwram_syms.txt | 5 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/scrcmd.c | 380 | ||||
-rw-r--r-- | src/script.c | 369 |
11 files changed, 1534 insertions, 2349 deletions
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s index 11f80f448..dff86d9e9 100644 --- a/asm/rom_8065394.s +++ b/asm/rom_8065394.s @@ -5,1701 +5,8 @@ .text - thumb_func_start script_env_init -script_env_init: @ 8065394 - push {lr} - adds r3, r0, 0 - movs r0, 0 - strb r0, [r3, 0x1] - str r0, [r3, 0x8] - strb r0, [r3] - str r0, [r3, 0x4] - str r1, [r3, 0x5C] - str r2, [r3, 0x60] - movs r2, 0 - movs r1, 0x3 - adds r0, r3, 0 - adds r0, 0x70 -_080653AE: - str r2, [r0] - subs r0, 0x4 - subs r1, 0x1 - cmp r1, 0 - bge _080653AE - adds r1, r3, 0 - adds r1, 0xC - movs r2, 0 - adds r0, r3, 0 - adds r0, 0x58 -_080653C2: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _080653C2 - pop {r0} - bx r0 - thumb_func_end script_env_init - - thumb_func_start script_setup_bytecode_script -script_setup_bytecode_script: @ 80653D0 - str r1, [r0, 0x8] - movs r1, 0x1 - strb r1, [r0, 0x1] - movs r0, 0x1 - bx lr - thumb_func_end script_setup_bytecode_script - - thumb_func_start script_setup_asm_script -script_setup_asm_script: @ 80653DC - movs r2, 0x2 - strb r2, [r0, 0x1] - str r1, [r0, 0x4] - bx lr - thumb_func_end script_setup_asm_script - - thumb_func_start script_stop -script_stop: @ 80653E4 - movs r1, 0 - strb r1, [r0, 0x1] - str r1, [r0, 0x8] - bx lr - thumb_func_end script_stop - - thumb_func_start sub_80653EC -sub_80653EC: @ 80653EC - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _080653FA -_080653F6: - movs r0, 0 - b _0806546C -_080653FA: - ldrb r0, [r4, 0x1] - cmp r0, 0x1 - beq _08065432 - cmp r0, 0x1 - bgt _0806540A - cmp r0, 0 - beq _080653F6 - b _0806546A -_0806540A: - cmp r0, 0x2 - bne _0806546A - ldr r0, [r4, 0x4] - cmp r0, 0 - beq _0806542E - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806546A - strb r0, [r4, 0x1] - b _0806546A -_08065424: - strb r2, [r4, 0x1] - b _080653F6 -_08065428: - movs r0, 0 - strb r0, [r4, 0x1] - b _0806546C -_0806542E: - movs r0, 0x1 - strb r0, [r4, 0x1] -_08065432: - ldr r2, [r4, 0x8] - cmp r2, 0 - beq _08065424 - ldr r0, _08065444 - ldr r0, [r0] - cmp r2, r0 - bne _08065448 -_08065440: - swi 0x2 - b _08065440 - .align 2, 0 -_08065444: .4byte gUnknown_083762D8 -_08065448: - ldrb r1, [r2] - adds r0, r2, 0x1 - str r0, [r4, 0x8] - lsls r1, 2 - ldr r0, [r4, 0x5C] - adds r1, r0, r1 - ldr r0, [r4, 0x60] - cmp r1, r0 - bcs _08065428 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08065432 -_0806546A: - movs r0, 0x1 -_0806546C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80653EC - - thumb_func_start script_stack_push -script_stack_push: @ 8065474 - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldrb r1, [r2] - adds r0, r1, 0x1 - cmp r0, 0x13 - bgt _08065496 - lsls r0, r1, 2 - adds r1, r2, 0 - adds r1, 0xC - adds r1, r0 - str r3, [r1] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r0, 0 - b _08065498 -_08065496: - movs r0, 0x1 -_08065498: - pop {r1} - bx r1 - thumb_func_end script_stack_push - - thumb_func_start script_stack_pop -script_stack_pop: @ 806549C - push {lr} - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0 - beq _080654B8 - subs r0, 0x1 - strb r0, [r2] - ldrb r1, [r2] - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1 - ldr r0, [r0] - b _080654BA -_080654B8: - movs r0, 0 -_080654BA: - pop {r1} - bx r1 - thumb_func_end script_stack_pop - - thumb_func_start script_jump -script_jump: @ 80654C0 - str r1, [r0, 0x8] - bx lr - thumb_func_end script_jump - - thumb_func_start script_call -script_call: @ 80654C4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r1, [r4, 0x8] - bl script_stack_push - str r5, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end script_call - - thumb_func_start script_return -script_return: @ 80654D8 - push {r4,lr} - adds r4, r0, 0 - bl script_stack_pop - str r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end script_return - - thumb_func_start script_read_halfword -script_read_halfword: @ 80654E8 - adds r3, r0, 0 - ldr r2, [r3, 0x8] - ldrb r0, [r2] - adds r2, 0x1 - str r2, [r3, 0x8] - ldrb r1, [r2] - lsls r1, 8 - orrs r0, r1 - adds r2, 0x1 - str r2, [r3, 0x8] - bx lr - thumb_func_end script_read_halfword - - thumb_func_start script_read_word -script_read_word: @ 8065500 - push {r4-r6,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r5, [r0] - adds r2, r0, 0x1 - str r2, [r3, 0x8] - ldrb r4, [r0, 0x1] - adds r1, r2, 0x1 - str r1, [r3, 0x8] - ldrb r0, [r2, 0x1] - adds r1, 0x1 - str r1, [r3, 0x8] - lsls r0, 8 - adds r0, r4 - lsls r0, 8 - adds r0, r5 - lsls r0, 8 - adds r0, r6 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end script_read_word - - thumb_func_start script_env_2_enable -script_env_2_enable: @ 8065530 - ldr r1, _08065538 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_08065538: .4byte 0x030006a4 - thumb_func_end script_env_2_enable - - thumb_func_start script_env_2_disable -script_env_2_disable: @ 806553C - ldr r1, _08065544 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08065544: .4byte 0x030006a4 - thumb_func_end script_env_2_disable - - thumb_func_start script_env_2_is_enabled -script_env_2_is_enabled: @ 8065548 - ldr r0, _08065550 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08065550: .4byte 0x030006a4 - thumb_func_end script_env_2_is_enabled - - thumb_func_start script_env_1_init -script_env_1_init: @ 8065554 - push {lr} - ldr r0, _0806556C - ldr r1, _08065570 - ldr r2, _08065574 - bl script_env_init - ldr r1, _08065578 - movs r0, 0x2 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0806556C: .4byte 0x030005b8 -_08065570: .4byte gScriptCmdTable -_08065574: .4byte gScriptCmdTableEnd -_08065578: .4byte 0x030005b0 - thumb_func_end script_env_1_init - - thumb_func_start script_env_2_run_current_script -script_env_2_run_current_script: @ 806557C - push {r4,lr} - ldr r4, _080655A0 - ldrb r0, [r4] - cmp r0, 0x2 - beq _080655B0 - cmp r0, 0x1 - beq _080655B0 - bl script_env_2_enable - ldr r0, _080655A4 - bl sub_80653EC - lsls r0, 24 - cmp r0, 0 - beq _080655A8 - movs r0, 0x1 - b _080655B2 - .align 2, 0 -_080655A0: .4byte 0x030005b0 -_080655A4: .4byte 0x030005b8 -_080655A8: - movs r0, 0x2 - strb r0, [r4] - bl script_env_2_disable -_080655B0: - movs r0, 0 -_080655B2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end script_env_2_run_current_script - - thumb_func_start script_env_1_execute_new_script -script_env_1_execute_new_script: @ 80655B8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080655E0 - ldr r1, _080655E4 - ldr r2, _080655E8 - adds r0, r4, 0 - bl script_env_init - adds r0, r4, 0 - adds r1, r5, 0 - bl script_setup_bytecode_script - bl script_env_2_enable - ldr r1, _080655EC - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080655E0: .4byte 0x030005b8 -_080655E4: .4byte gScriptCmdTable -_080655E8: .4byte gScriptCmdTableEnd -_080655EC: .4byte 0x030005b0 - thumb_func_end script_env_1_execute_new_script - - thumb_func_start sub_80655F0 -sub_80655F0: @ 80655F0 - ldr r1, _080655F8 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_080655F8: .4byte 0x030005b0 - thumb_func_end sub_80655F0 - - thumb_func_start script_env_2_enable_and_set_ctx_running -script_env_2_enable_and_set_ctx_running: @ 80655FC - push {lr} - ldr r1, _0806560C - movs r0, 0 - strb r0, [r1] - bl script_env_2_enable - pop {r0} - bx r0 - .align 2, 0 -_0806560C: .4byte 0x030005b0 - thumb_func_end script_env_2_enable_and_set_ctx_running - - thumb_func_start script_env_2_execute_new_script -script_env_2_execute_new_script: @ 8065610 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0806563C - ldr r1, _08065640 - ldr r2, _08065644 - adds r0, r4, 0 - bl script_env_init - adds r0, r4, 0 - adds r1, r5, 0 - bl script_setup_bytecode_script -_08065628: - ldr r0, _0806563C - bl sub_80653EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08065628 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806563C: .4byte 0x03000630 -_08065640: .4byte gScriptCmdTable -_08065644: .4byte gScriptCmdTableEnd - thumb_func_end script_env_2_execute_new_script - - thumb_func_start mapheader_get_tagged_pointer -mapheader_get_tagged_pointer: @ 8065648 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08065660 - ldr r2, [r0, 0x8] - cmp r2, 0 - beq _0806565C -_08065656: - ldrb r0, [r2] - cmp r0, 0 - bne _08065664 -_0806565C: - movs r0, 0 - b _08065682 - .align 2, 0 -_08065660: .4byte 0x0202e828 -_08065664: - cmp r0, r1 - beq _0806566C - adds r2, 0x5 - b _08065656 -_0806566C: - adds r2, 0x1 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - adds r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - adds r0, r1 -_08065682: - pop {r1} - bx r1 - thumb_func_end mapheader_get_tagged_pointer - - thumb_func_start mapheader_run_script_by_tag -mapheader_run_script_by_tag: @ 8065688 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl mapheader_get_tagged_pointer - cmp r0, 0 - beq _0806569A - bl script_env_2_execute_new_script -_0806569A: - pop {r0} - bx r0 - thumb_func_end mapheader_run_script_by_tag - - thumb_func_start mapheader_get_first_match_from_tagged_ptr_list -mapheader_get_first_match_from_tagged_ptr_list: @ 80656A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - bl mapheader_get_tagged_pointer - adds r6, r0, 0 - cmp r6, 0 - beq _080656BC -_080656B0: - ldrb r1, [r6] - ldrb r0, [r6, 0x1] - lsls r0, 8 - orrs r1, r0 - cmp r1, 0 - bne _080656C0 -_080656BC: - movs r0, 0 - b _080656FA -_080656C0: - adds r6, 0x2 - ldrb r5, [r6] - ldrb r0, [r6, 0x1] - lsls r0, 8 - orrs r5, r0 - adds r6, 0x2 - adds r0, r1, 0 - bl VarGet - adds r4, r0, 0 - adds r0, r5, 0 - bl VarGet - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - beq _080656E6 - adds r6, 0x4 - b _080656B0 -_080656E6: - ldrb r0, [r6] - ldrb r1, [r6, 0x1] - lsls r1, 8 - adds r0, r1 - ldrb r1, [r6, 0x2] - lsls r1, 16 - adds r0, r1 - ldrb r1, [r6, 0x3] - lsls r1, 24 - adds r0, r1 -_080656FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end mapheader_get_first_match_from_tagged_ptr_list - - thumb_func_start mapheader_run_script_with_tag_x1 -mapheader_run_script_with_tag_x1: @ 8065700 - push {lr} - movs r0, 0x1 - bl mapheader_run_script_by_tag - pop {r0} - bx r0 - thumb_func_end mapheader_run_script_with_tag_x1 - - thumb_func_start mapheader_run_script_with_tag_x3 -mapheader_run_script_with_tag_x3: @ 806570C - push {lr} - movs r0, 0x3 - bl mapheader_run_script_by_tag - pop {r0} - bx r0 - thumb_func_end mapheader_run_script_with_tag_x3 - - thumb_func_start mapheader_run_script_with_tag_x5 -mapheader_run_script_with_tag_x5: @ 8065718 - push {lr} - movs r0, 0x5 - bl mapheader_run_script_by_tag - pop {r0} - bx r0 - thumb_func_end mapheader_run_script_with_tag_x5 - - thumb_func_start mapheader_run_script_with_tag_x6 -mapheader_run_script_with_tag_x6: @ 8065724 - push {lr} - movs r0, 0x6 - bl mapheader_run_script_by_tag - pop {r0} - bx r0 - thumb_func_end mapheader_run_script_with_tag_x6 - - thumb_func_start mapheader_run_first_tag2_script_list_match -mapheader_run_first_tag2_script_list_match: @ 8065730 - push {lr} - movs r0, 0x2 - bl mapheader_get_first_match_from_tagged_ptr_list - cmp r0, 0 - beq _08065744 - bl script_env_1_execute_new_script - movs r0, 0x1 - b _08065746 -_08065744: - movs r0, 0 -_08065746: - pop {r1} - bx r1 - thumb_func_end mapheader_run_first_tag2_script_list_match - - thumb_func_start mapheader_run_first_tag4_script_list_match -mapheader_run_first_tag4_script_list_match: @ 806574C - push {lr} - movs r0, 0x4 - bl mapheader_get_first_match_from_tagged_ptr_list - cmp r0, 0 - beq _0806575C - bl script_env_2_execute_new_script -_0806575C: - pop {r0} - bx r0 - thumb_func_end mapheader_run_first_tag4_script_list_match - - thumb_func_start sub_8065760 -sub_8065760: @ 8065760 - push {r4,lr} - movs r2, 0 - movs r1, 0 - ldr r4, _08065780 - ldr r3, _08065784 -_0806576A: - adds r0, r1, r3 - ldrb r0, [r0] - adds r2, r0 - adds r1, 0x1 - cmp r1, r4 - bls _0806576A - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08065780: .4byte 0x000003e7 -_08065784: .4byte 0x02028dc8 - thumb_func_end sub_8065760 - - thumb_func_start killram -killram: @ 8065788 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r1, _080657A0 - ldr r2, _080657A4 - mov r0, sp - bl CpuSet - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080657A0: .4byte 0x02028dc4 -_080657A4: .4byte 0x050000fb - thumb_func_end killram - - thumb_func_start sub_80657A8 -sub_80657A8: @ 80657A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - ldr r0, [sp, 0x1C] - lsls r1, 16 - lsrs r1, 16 - mov r8, r1 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080657F4 - bl killram - ldr r0, _080657F8 - cmp r8, r0 - bhi _080657FC - movs r0, 0x33 - strb r0, [r4] - strb r7, [r4, 0x1] - strb r6, [r4, 0x2] - strb r5, [r4, 0x3] - adds r0, r4, 0x4 - mov r1, r9 - mov r2, r8 - bl memcpy - bl sub_8065760 - subs r1, r4, 0x4 - str r0, [r1] - movs r0, 0x1 - b _080657FE - .align 2, 0 -_080657F4: .4byte 0x02028dc8 -_080657F8: .4byte 0x000003e3 -_080657FC: - movs r0, 0 -_080657FE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80657A8 - - thumb_func_start sub_806580C -sub_806580C: @ 806580C - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r3, r0, 24 - ldr r4, _08065854 - ldr r6, _08065858 - movs r0, 0 - str r0, [r6] - ldrb r0, [r4] - cmp r0, 0x33 - bne _08065864 - ldrb r1, [r4, 0x1] - ldr r0, _0806585C - adds r2, r4, r0 - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08065864 - ldrb r1, [r4, 0x2] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _08065864 - ldrb r0, [r4, 0x3] - cmp r0, r3 - bne _08065864 - bl sub_8065760 - subs r1, r4, 0x4 - ldr r1, [r1] - cmp r0, r1 - bne _08065860 - str r5, [r6] - adds r0, r4, 0x4 - b _08065866 - .align 2, 0 -_08065854: .4byte 0x02028dc8 -_08065858: .4byte 0x0202e8ac -_0806585C: .4byte 0xffffc96c -_08065860: - bl killram -_08065864: - adds r0, r5, 0 -_08065866: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_806580C - - thumb_func_start s00_nop -s00_nop: @ 806586C - movs r0, 0 - bx lr - thumb_func_end s00_nop - - thumb_func_start sub_8065870 -sub_8065870: @ 8065870 - movs r0, 0 - bx lr - thumb_func_end sub_8065870 - - thumb_func_start s02_end -s02_end: @ 8065874 - push {lr} - bl script_stop - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s02_end - - thumb_func_start s24_execute_ASM_2 -s24_execute_ASM_2: @ 8065880 - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - adds r1, r0, 0 - adds r0, r4, 0 - bl script_setup_asm_script - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s24_execute_ASM_2 - - thumb_func_start sub_8065898 -sub_8065898: @ 8065898 - push {lr} - bl script_read_halfword - lsls r0, 16 - ldr r1, _080658B4 - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080658B4: .4byte gSpecials - thumb_func_end sub_8065898 - - thumb_func_start sub_80658B8 -sub_80658B8: @ 80658B8 - push {r4-r6,lr} - adds r5, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r6, r0, 0 - ldr r4, _080658E8 - adds r0, r5, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - strh r0, [r6] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080658E8: .4byte gSpecials - thumb_func_end sub_80658B8 - - thumb_func_start sub_80658EC -sub_80658EC: @ 80658EC - push {lr} - bl script_read_word - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80658EC - - thumb_func_start sub_80658FC -sub_80658FC: @ 80658FC - push {lr} - bl sub_80655F0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80658FC - - thumb_func_start s05_goto -s05_goto: @ 8065908 - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - adds r1, r0, 0 - adds r0, r4, 0 - bl script_jump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s05_goto - - thumb_func_start s03_return -s03_return: @ 8065920 - push {lr} - bl script_return - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s03_return - - thumb_func_start s04_call -s04_call: @ 806592C - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - adds r1, r0, 0 - adds r0, r4, 0 - bl script_call - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s04_call - - thumb_func_start s06_if_jump -s06_if_jump: @ 8065944 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl script_read_word - adds r2, r0, 0 - ldr r1, _0806597C - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08065972 - adds r0, r5, 0 - adds r1, r2, 0 - bl script_jump -_08065972: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0806597C: .4byte gUnknown_083762DC - thumb_func_end s06_if_jump - - thumb_func_start s07_if_call -s07_if_call: @ 8065980 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl script_read_word - adds r2, r0, 0 - ldr r1, _080659B8 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080659AE - adds r0, r5, 0 - adds r1, r2, 0 - bl script_call -_080659AE: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080659B8: .4byte gUnknown_083762DC - thumb_func_end s07_if_call - - thumb_func_start sB8_set_virtual_address -sB8_set_virtual_address: @ 80659BC - push {r4,lr} - ldr r4, [r0, 0x8] - subs r4, 0x1 - bl script_read_word - ldr r1, _080659D4 - subs r0, r4 - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080659D4: .4byte 0x0202e8b0 - thumb_func_end sB8_set_virtual_address - - thumb_func_start sB9_virtual_jump -sB9_virtual_jump: @ 80659D8 - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - adds r1, r0, 0 - ldr r0, _080659F8 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl script_jump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080659F8: .4byte 0x0202e8b0 - thumb_func_end sB9_virtual_jump - - thumb_func_start sBA_virtual_call -sBA_virtual_call: @ 80659FC - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - adds r1, r0, 0 - ldr r0, _08065A1C - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl script_call - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08065A1C: .4byte 0x0202e8b0 - thumb_func_end sBA_virtual_call - - thumb_func_start sBB_virtual_if_jump -sBB_virtual_if_jump: @ 8065A20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl script_read_word - ldr r1, _08065A5C - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _08065A60 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08065A52 - adds r0, r5, 0 - adds r1, r2, 0 - bl script_jump -_08065A52: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08065A5C: .4byte 0x0202e8b0 -_08065A60: .4byte gUnknown_083762DC - thumb_func_end sBB_virtual_if_jump - - thumb_func_start sBC_virtual_if_call -sBC_virtual_if_call: @ 8065A64 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl script_read_word - ldr r1, _08065AA0 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, _08065AA4 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08065A96 - adds r0, r5, 0 - adds r1, r2, 0 - bl script_call -_08065A96: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08065AA0: .4byte 0x0202e8b0 -_08065AA4: .4byte gUnknown_083762DC - thumb_func_end sBC_virtual_if_call - - thumb_func_start s08_jumpstd -s08_jumpstd: @ 8065AA8 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _08065AD0 - adds r1, r0 - ldr r0, _08065AD4 - cmp r1, r0 - bcs _08065AC8 - ldr r1, [r1] - adds r0, r2, 0 - bl script_jump -_08065AC8: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08065AD0: .4byte gStdScripts -_08065AD4: .4byte gStdScripts_End - thumb_func_end s08_jumpstd - - thumb_func_start s09_callstd -s09_callstd: @ 8065AD8 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, _08065B00 - adds r1, r0 - ldr r0, _08065B04 - cmp r1, r0 - bcs _08065AF8 - ldr r1, [r1] - adds r0, r2, 0 - bl script_call -_08065AF8: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08065B00: .4byte gStdScripts -_08065B04: .4byte gStdScripts_End - thumb_func_end s09_callstd - - thumb_func_start s0A_jumpstd_if -s0A_jumpstd_if: @ 8065B08 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _08065B48 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08065B40 - lsls r0, r4, 2 - ldr r1, _08065B4C - adds r1, r0, r1 - ldr r0, _08065B50 - cmp r1, r0 - bcs _08065B40 - ldr r1, [r1] - adds r0, r3, 0 - bl script_jump -_08065B40: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08065B48: .4byte gUnknown_083762DC -_08065B4C: .4byte gStdScripts -_08065B50: .4byte gStdScripts_End - thumb_func_end s0A_jumpstd_if - - thumb_func_start s0B_callstd_if -s0B_callstd_if: @ 8065B54 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, _08065B94 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08065B8C - lsls r0, r4, 2 - ldr r1, _08065B98 - adds r1, r0, r1 - ldr r0, _08065B9C - cmp r1, r0 - bcs _08065B8C - ldr r1, [r1] - adds r0, r3, 0 - bl script_call -_08065B8C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08065B94: .4byte gUnknown_083762DC -_08065B98: .4byte gStdScripts -_08065B9C: .4byte gStdScripts_End - thumb_func_end s0B_callstd_if - - thumb_func_start s0C_restore_execution_after_sCF -s0C_restore_execution_after_sCF: @ 8065BA0 - push {lr} - ldr r1, _08065BB0 - ldr r1, [r1] - bl script_jump - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08065BB0: .4byte 0x0202e8ac - thumb_func_end s0C_restore_execution_after_sCF - - thumb_func_start s0D_endscript_killram -s0D_endscript_killram: @ 8065BB4 - push {r4,lr} - adds r4, r0, 0 - bl killram - adds r0, r4, 0 - bl script_stop - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s0D_endscript_killram - - thumb_func_start s0E_set_byte -s0E_set_byte: @ 8065BCC - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_8126160 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s0E_set_byte - - thumb_func_start s0F_u32_var_to_const -s0F_u32_var_to_const: @ 8065BE4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl script_read_word - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s0F_u32_var_to_const - - thumb_func_start s12_u32_var_to_ptr -s12_u32_var_to_ptr: @ 8065C08 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl script_read_word - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s12_u32_var_to_ptr - - thumb_func_start s11_u8_ptr_to_const -s11_u8_ptr_to_const: @ 8065C2C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl script_read_word - strb r4, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s11_u8_ptr_to_const - - thumb_func_start sub_8065C44 -sub_8065C44: @ 8065C44 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r2, r0, 0 - adds r2, 0x64 - adds r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_8065C44 - - thumb_func_start s13_u8_var_to_ptr -s13_u8_var_to_ptr: @ 8065C60 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl script_read_word - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s13_u8_var_to_ptr - - thumb_func_start s14_u32_var_to_var -s14_u32_var_to_var: @ 8065C84 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r0, 0x64 - adds r3, r0, r3 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, 0 - bx lr - thumb_func_end s14_u32_var_to_var - - thumb_func_start s15_u8_ptr_to_ptr -s15_u8_ptr_to_ptr: @ 8065CA4 - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_word - adds r5, r0, 0 - adds r0, r4, 0 - bl script_read_word - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s15_u8_ptr_to_ptr - - thumb_func_start s16_u16_gvar_to_const -s16_u16_gvar_to_const: @ 8065CC0 - push {r4,r5,lr} - adds r5, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl script_read_halfword - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s16_u16_gvar_to_const - - thumb_func_start s19_u16_gvar_gvar -s19_u16_gvar_gvar: @ 8065CE4 - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s19_u16_gvar_gvar - - thumb_func_start s1A_u16_gvar_gvar -s1A_u16_gvar_gvar: @ 8065D10 - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s1A_u16_gvar_gvar - - thumb_func_start compare_012 -compare_012: @ 8065D3C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, r1 - bcs _08065D4E - movs r0, 0 - b _08065D58 -_08065D4E: - cmp r0, r1 - beq _08065D56 - movs r0, 0x2 - b _08065D58 -_08065D56: - movs r0, 0x1 -_08065D58: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start s1B_cmp_u8_var_var -s1B_cmp_u8_var_var: @ 8065D5C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - lsls r0, 2 - adds r3, r4, 0 - adds r3, 0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r3, r1 - ldrb r1, [r3] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1B_cmp_u8_var_var - - thumb_func_start s1C_cmp_u8_var_const -s1C_cmp_u8_var_const: @ 8065D8C - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1C_cmp_u8_var_const - - thumb_func_start s1D_cmp_u8_var_ptr -s1D_cmp_u8_var_ptr: @ 8065DB4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r5, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - adds r0, r4, 0 - bl script_read_word - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s1D_cmp_u8_var_ptr - - thumb_func_start s1E_cmp_u8_ptr_var -s1E_cmp_u8_ptr_var: @ 8065DE0 - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - ldrb r0, [r0] - ldr r3, [r4, 0x8] - ldrb r2, [r3] - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x64 - adds r1, r2 - ldrb r1, [r1] - adds r3, 0x1 - str r3, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1E_cmp_u8_ptr_var - - thumb_func_start s1F_cmp_u8_ptr_const -s1F_cmp_u8_ptr_const: @ 8065E0C - push {r4,lr} - adds r4, r0, 0 - bl script_read_word - ldrb r0, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1F_cmp_u8_ptr_const - - thumb_func_start s20_cmp_u8_ptr_ptr -s20_cmp_u8_ptr_ptr: @ 8065E2C - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_word - ldrb r5, [r0] - adds r0, r4, 0 - bl script_read_word - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s20_cmp_u8_ptr_ptr - - thumb_func_start s21_cmp_u16_gvar_const -s21_cmp_u16_gvar_const: @ 8065E50 - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, 0 - bl script_read_halfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s21_cmp_u16_gvar_const - - thumb_func_start s22_cmp_u16_gvar_gvar -s22_cmp_u16_gvar_gvar: @ 8065E80 - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s22_cmp_u16_gvar_gvar - - thumb_func_start s17_u16_gvar_add_const -s17_u16_gvar_add_const: @ 8065EB4 - push {r4,r5,lr} - adds r5, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl script_read_halfword - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s17_u16_gvar_add_const - - thumb_func_start sub_8065EDC -sub_8065EDC: @ 8065EDC - push {r4,r5,lr} - adds r4, r0, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8065EDC - - thumb_func_start s8F_get_random_val -s8F_get_random_val: @ 8065F0C - push {r4,r5,lr} - bl script_read_halfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, _08065F3C - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08065F3C: .4byte 0x0202e8dc - thumb_func_end s8F_get_random_val - - thumb_func_start sub_8065F40 -sub_8065F40: @ 8065F40 + thumb_func_start ScrCmd_additem +ScrCmd_additem: @ 8065F40 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1729,10 +36,10 @@ sub_8065F40: @ 8065F40 bx r1 .align 2, 0 _08065F80: .4byte 0x0202e8dc - thumb_func_end sub_8065F40 + thumb_func_end ScrCmd_additem - thumb_func_start sub_8065F84 -sub_8065F84: @ 8065F84 + thumb_func_start ScrCmd_removeitem +ScrCmd_removeitem: @ 8065F84 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1762,10 +69,10 @@ sub_8065F84: @ 8065F84 bx r1 .align 2, 0 _08065FC4: .4byte 0x0202e8dc - thumb_func_end sub_8065F84 + thumb_func_end ScrCmd_removeitem - thumb_func_start sub_8065FC8 -sub_8065FC8: @ 8065FC8 + thumb_func_start ScrCmd_checkitemspace +ScrCmd_checkitemspace: @ 8065FC8 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1795,10 +102,10 @@ sub_8065FC8: @ 8065FC8 bx r1 .align 2, 0 _08066008: .4byte 0x0202e8dc - thumb_func_end sub_8065FC8 + thumb_func_end ScrCmd_checkitemspace - thumb_func_start sub_806600C -sub_806600C: @ 806600C + thumb_func_start ScrCmd_checkitem +ScrCmd_checkitem: @ 806600C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1828,10 +135,10 @@ sub_806600C: @ 806600C bx r1 .align 2, 0 _0806604C: .4byte 0x0202e8dc - thumb_func_end sub_806600C + thumb_func_end ScrCmd_checkitem - thumb_func_start s48_get_item_type -s48_get_item_type: @ 8066050 + thumb_func_start ScrCmd_checkitemtype +ScrCmd_checkitemtype: @ 8066050 push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -1850,10 +157,10 @@ s48_get_item_type: @ 8066050 bx r1 .align 2, 0 _08066078: .4byte 0x0202e8dc - thumb_func_end s48_get_item_type + thumb_func_end ScrCmd_checkitemtype - thumb_func_start sub_806607C -sub_806607C: @ 806607C + thumb_func_start ScrCmd_addpcitem +ScrCmd_addpcitem: @ 806607C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1883,10 +190,10 @@ sub_806607C: @ 806607C bx r1 .align 2, 0 _080660BC: .4byte 0x0202e8dc - thumb_func_end sub_806607C + thumb_func_end ScrCmd_addpcitem - thumb_func_start sub_80660C0 -sub_80660C0: @ 80660C0 + thumb_func_start ScrCmd_checkpcitem +ScrCmd_checkpcitem: @ 80660C0 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -1916,10 +223,10 @@ sub_80660C0: @ 80660C0 bx r1 .align 2, 0 _08066100: .4byte 0x0202e8dc - thumb_func_end sub_80660C0 + thumb_func_end ScrCmd_checkpcitem - thumb_func_start sub_8066104 -sub_8066104: @ 8066104 + thumb_func_start ScrCmd_adddecor +ScrCmd_adddecor: @ 8066104 push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -1938,10 +245,10 @@ sub_8066104: @ 8066104 bx r1 .align 2, 0 _0806612C: .4byte 0x0202e8dc - thumb_func_end sub_8066104 + thumb_func_end ScrCmd_adddecor - thumb_func_start sub_8066130 -sub_8066130: @ 8066130 + thumb_func_start ScrCmd_removedecor +ScrCmd_removedecor: @ 8066130 push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -1960,10 +267,10 @@ sub_8066130: @ 8066130 bx r1 .align 2, 0 _08066158: .4byte 0x0202e8dc - thumb_func_end sub_8066130 + thumb_func_end ScrCmd_removedecor - thumb_func_start sub_806615C -sub_806615C: @ 806615C + thumb_func_start ScrCmd_checkdecor +ScrCmd_checkdecor: @ 806615C push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -1982,10 +289,10 @@ sub_806615C: @ 806615C bx r1 .align 2, 0 _08066184: .4byte 0x0202e8dc - thumb_func_end sub_806615C + thumb_func_end ScrCmd_checkdecor - thumb_func_start sub_8066188 -sub_8066188: @ 8066188 + thumb_func_start ScrCmd_testdecor +ScrCmd_testdecor: @ 8066188 push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -2004,10 +311,10 @@ sub_8066188: @ 8066188 bx r1 .align 2, 0 _080661B0: .4byte 0x0202e8dc - thumb_func_end sub_8066188 + thumb_func_end ScrCmd_testdecor - thumb_func_start s29_flag_set -s29_flag_set: @ 80661B4 + thumb_func_start ScrCmd_setflag +ScrCmd_setflag: @ 80661B4 push {lr} bl script_read_halfword lsls r0, 16 @@ -2016,10 +323,10 @@ s29_flag_set: @ 80661B4 movs r0, 0 pop {r1} bx r1 - thumb_func_end s29_flag_set + thumb_func_end ScrCmd_setflag - thumb_func_start s2A_flag_clear -s2A_flag_clear: @ 80661C8 + thumb_func_start ScrCmd_clearflag +ScrCmd_clearflag: @ 80661C8 push {lr} bl script_read_halfword lsls r0, 16 @@ -2028,10 +335,10 @@ s2A_flag_clear: @ 80661C8 movs r0, 0 pop {r1} bx r1 - thumb_func_end s2A_flag_clear + thumb_func_end ScrCmd_clearflag - thumb_func_start s2B_flag_check -s2B_flag_check: @ 80661DC + thumb_func_start ScrCmd_checkflag +ScrCmd_checkflag: @ 80661DC push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -2043,10 +350,10 @@ s2B_flag_check: @ 80661DC pop {r4} pop {r1} bx r1 - thumb_func_end s2B_flag_check + thumb_func_end ScrCmd_checkflag - thumb_func_start sC3_unknown -sC3_unknown: @ 80661F8 + thumb_func_start ScrCmd_inccounter +ScrCmd_inccounter: @ 80661F8 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -2057,10 +364,10 @@ sC3_unknown: @ 80661F8 movs r0, 0 pop {r1} bx r1 - thumb_func_end sC3_unknown + thumb_func_end ScrCmd_inccounter - thumb_func_start s9A_unknown -s9A_unknown: @ 8066210 + thumb_func_start ScrCmd_lighten +ScrCmd_lighten: @ 8066210 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -2072,10 +379,10 @@ s9A_unknown: @ 8066210 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end s9A_unknown + thumb_func_end ScrCmd_lighten - thumb_func_start sub_806622C -sub_806622C: @ 806622C + thumb_func_start ScrCmd_darken +ScrCmd_darken: @ 806622C push {lr} bl script_read_halfword lsls r0, 16 @@ -2087,7 +394,7 @@ sub_806622C: @ 806622C movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_806622C + thumb_func_end ScrCmd_darken thumb_func_start sub_8066248 sub_8066248: @ 8066248 @@ -2109,8 +416,8 @@ _08066262: bx r1 thumb_func_end sub_8066248 - thumb_func_start s97_screen_special_effect -s97_screen_special_effect: @ 8066268 + thumb_func_start ScrCmd_fadescreen +ScrCmd_fadescreen: @ 8066268 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x8] @@ -2128,10 +435,10 @@ s97_screen_special_effect: @ 8066268 bx r1 .align 2, 0 _0806628C: .4byte sub_8066248 - thumb_func_end s97_screen_special_effect + thumb_func_end ScrCmd_fadescreen - thumb_func_start sub_8066290 -sub_8066290: @ 8066290 + thumb_func_start ScrCmd_fadescreendelay +ScrCmd_fadescreendelay: @ 8066290 push {r4,lr} adds r4, r0, 0 ldr r2, [r4, 0x8] @@ -2151,7 +458,7 @@ sub_8066290: @ 8066290 bx r1 .align 2, 0 _080662B8: .4byte sub_8066248 - thumb_func_end sub_8066290 + thumb_func_end ScrCmd_fadescreendelay thumb_func_start s28_pause_asm s28_pause_asm: @ 80662BC @@ -2174,8 +481,8 @@ _080662D6: bx r1 thumb_func_end s28_pause_asm - thumb_func_start s28_pause -s28_pause: @ 80662DC + thumb_func_start ScrCmd_pause +ScrCmd_pause: @ 80662DC push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -2191,10 +498,10 @@ s28_pause: @ 80662DC .align 2, 0 _080662F8: .4byte 0x0202e8b4 _080662FC: .4byte s28_pause_asm - thumb_func_end s28_pause + thumb_func_end ScrCmd_pause - thumb_func_start s2C_unknown -s2C_unknown: @ 8066300 + thumb_func_start ScrCmd_compareflags +ScrCmd_compareflags: @ 8066300 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -2218,19 +525,19 @@ s2C_unknown: @ 8066300 pop {r4,r5} pop {r1} bx r1 - thumb_func_end s2C_unknown + thumb_func_end ScrCmd_compareflags - thumb_func_start s2D_unknown -s2D_unknown: @ 8066338 + thumb_func_start ScrCmd_checkdailyflags +ScrCmd_checkdailyflags: @ 8066338 push {lr} bl InTrainerHill movs r0, 0 pop {r1} bx r1 - thumb_func_end s2D_unknown + thumb_func_end ScrCmd_checkdailyflags - thumb_func_start s2E_unknown -s2E_unknown: @ 8066344 + thumb_func_start ScrCmd_resetvars +ScrCmd_resetvars: @ 8066344 push {lr} bl RtcCalcLocalTime ldr r2, _0806636C @@ -2254,10 +561,10 @@ _0806636C: .4byte 0x0202e8c4 _08066370: .4byte 0x03004038 _08066374: .4byte 0x0202e8c6 _08066378: .4byte 0x0202e8c8 - thumb_func_end s2E_unknown + thumb_func_end ScrCmd_resetvars - thumb_func_start sA4_set_weather_data -sA4_set_weather_data: @ 806637C + thumb_func_start ScrCmd_setweather +ScrCmd_setweather: @ 806637C push {lr} bl script_read_halfword lsls r0, 16 @@ -2269,28 +576,28 @@ sA4_set_weather_data: @ 806637C movs r0, 0 pop {r1} bx r1 - thumb_func_end sA4_set_weather_data + thumb_func_end ScrCmd_setweather - thumb_func_start sA3_set_standard_weather_data -sA3_set_standard_weather_data: @ 8066398 + thumb_func_start ScrCmd_resetweather +ScrCmd_resetweather: @ 8066398 push {lr} bl sub_80806E4 movs r0, 0 pop {r1} bx r1 - thumb_func_end sA3_set_standard_weather_data + thumb_func_end ScrCmd_resetweather - thumb_func_start sub_80663A4 -sub_80663A4: @ 80663A4 + thumb_func_start ScrCmd_doweather +ScrCmd_doweather: @ 80663A4 push {lr} bl sub_808073C movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_80663A4 + thumb_func_end ScrCmd_doweather - thumb_func_start sA6_activate_per_step_callback_eg_ash -sA6_activate_per_step_callback_eg_ash: @ 80663B0 + thumb_func_start ScrCmd_tileeffect +ScrCmd_tileeffect: @ 80663B0 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -2301,10 +608,10 @@ sA6_activate_per_step_callback_eg_ash: @ 80663B0 movs r0, 0 pop {r1} bx r1 - thumb_func_end sA6_activate_per_step_callback_eg_ash + thumb_func_end ScrCmd_tileeffect - thumb_func_start sub_80663C8 -sub_80663C8: @ 80663C8 + thumb_func_start ScrCmd_setmapfooter +ScrCmd_setmapfooter: @ 80663C8 push {lr} bl script_read_halfword lsls r0, 16 @@ -2316,10 +623,10 @@ sub_80663C8: @ 80663C8 movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_80663C8 + thumb_func_end ScrCmd_setmapfooter - thumb_func_start s39_warp_sfx -s39_warp_sfx: @ 80663E4 + thumb_func_start ScrCmd_warp +ScrCmd_warp: @ 80663E4 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2380,10 +687,10 @@ s39_warp_sfx: @ 80663E4 pop {r4-r6} pop {r1} bx r1 - thumb_func_end s39_warp_sfx + thumb_func_end ScrCmd_warp - thumb_func_start s3A_warp_new_music -s3A_warp_new_music: @ 806646C + thumb_func_start ScrCmd_warpmuted +ScrCmd_warpmuted: @ 806646C push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2444,10 +751,10 @@ s3A_warp_new_music: @ 806646C pop {r4-r6} pop {r1} bx r1 - thumb_func_end s3A_warp_new_music + thumb_func_end ScrCmd_warpmuted - thumb_func_start s3B_warp_keep_music -s3B_warp_keep_music: @ 80664F4 + thumb_func_start ScrCmd_warpwalk +ScrCmd_warpwalk: @ 80664F4 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2508,10 +815,10 @@ s3B_warp_keep_music: @ 80664F4 pop {r4-r6} pop {r1} bx r1 - thumb_func_end s3B_warp_keep_music + thumb_func_end ScrCmd_warpwalk - thumb_func_start sub_806657C -sub_806657C: @ 806657C + thumb_func_start ScrCmd_warphole +ScrCmd_warphole: @ 806657C push {r4-r6,lr} sub sp, 0x8 ldr r1, [r0, 0x8] @@ -2567,10 +874,10 @@ _080665DE: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_806657C + thumb_func_end ScrCmd_warphole - thumb_func_start s3D_warp_v4 -s3D_warp_v4: @ 80665F0 + thumb_func_start ScrCmd_warpteleport +ScrCmd_warpteleport: @ 80665F0 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2631,10 +938,10 @@ s3D_warp_v4: @ 80665F0 pop {r4-r6} pop {r1} bx r1 - thumb_func_end s3D_warp_v4 + thumb_func_end ScrCmd_warpteleport - thumb_func_start s3E_set_new_map -s3E_set_new_map: @ 8066678 + thumb_func_start ScrCmd_warp3 +ScrCmd_warp3: @ 8066678 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2693,10 +1000,10 @@ s3E_set_new_map: @ 8066678 pop {r4-r6} pop {r1} bx r1 - thumb_func_end s3E_set_new_map + thumb_func_end ScrCmd_warp3 - thumb_func_start s3F_set_new_map_DMA -s3F_set_new_map_DMA: @ 80666F8 + thumb_func_start ScrCmd_warpplace +ScrCmd_warpplace: @ 80666F8 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2757,10 +1064,10 @@ s3F_set_new_map_DMA: @ 80666F8 pop {r4-r6} pop {r1} bx r1 - thumb_func_end s3F_set_new_map_DMA + thumb_func_end ScrCmd_warpplace - thumb_func_start sub_806677C -sub_806677C: @ 806677C + thumb_func_start ScrCmd_warp4 +ScrCmd_warp4: @ 806677C push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2819,10 +1126,10 @@ sub_806677C: @ 806677C pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_806677C + thumb_func_end ScrCmd_warp4 - thumb_func_start sub_80667FC -sub_80667FC: @ 80667FC + thumb_func_start ScrCmd_warp5 +ScrCmd_warp5: @ 80667FC push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2881,10 +1188,10 @@ sub_80667FC: @ 80667FC pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_80667FC + thumb_func_end ScrCmd_warp5 - thumb_func_start sC4_unknown -sC4_unknown: @ 806687C + thumb_func_start ScrCmd_warp6 +ScrCmd_warp6: @ 806687C push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -2943,10 +1250,10 @@ sC4_unknown: @ 806687C pop {r4-r6} pop {r1} bx r1 - thumb_func_end sC4_unknown + thumb_func_end ScrCmd_warp6 - thumb_func_start sub_80668FC -sub_80668FC: @ 80668FC + thumb_func_start ScrCmd_getplayerxy +ScrCmd_getplayerxy: @ 80668FC push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword @@ -2970,10 +1277,10 @@ sub_80668FC: @ 80668FC bx r1 .align 2, 0 _08066930: .4byte 0x02025734 - thumb_func_end sub_80668FC + thumb_func_end ScrCmd_getplayerxy - thumb_func_start s43_get_player_party_count -s43_get_player_party_count: @ 8066934 + thumb_func_start ScrCmd_countpokemon +ScrCmd_countpokemon: @ 8066934 push {r4,lr} ldr r4, _0806694C bl CalculatePlayerPartyCount @@ -2986,10 +1293,10 @@ s43_get_player_party_count: @ 8066934 bx r1 .align 2, 0 _0806694C: .4byte 0x0202e8dc - thumb_func_end s43_get_player_party_count + thumb_func_end ScrCmd_countpokemon - thumb_func_start s2F_music_play -s2F_music_play: @ 8066950 + thumb_func_start ScrCmd_playsfx +ScrCmd_playsfx: @ 8066950 push {lr} bl script_read_halfword lsls r0, 16 @@ -2998,7 +1305,7 @@ s2F_music_play: @ 8066950 movs r0, 0 pop {r1} bx r1 - thumb_func_end s2F_music_play + thumb_func_end ScrCmd_playsfx thumb_func_start s30_music_check_asm s30_music_check_asm: @ 8066964 @@ -3016,8 +1323,8 @@ _08066976: bx r1 thumb_func_end s30_music_check_asm - thumb_func_start sub_806697C -sub_806697C: @ 806697C + thumb_func_start ScrCmd_checksound +ScrCmd_checksound: @ 806697C push {lr} ldr r1, _0806698C bl script_setup_asm_script @@ -3026,10 +1333,10 @@ sub_806697C: @ 806697C bx r1 .align 2, 0 _0806698C: .4byte s30_music_check_asm - thumb_func_end sub_806697C + thumb_func_end ScrCmd_checksound - thumb_func_start s31_fanfare_play -s31_fanfare_play: @ 8066990 + thumb_func_start ScrCmd_fanfare +ScrCmd_fanfare: @ 8066990 push {lr} bl script_read_halfword lsls r0, 16 @@ -3038,7 +1345,7 @@ s31_fanfare_play: @ 8066990 movs r0, 0 pop {r1} bx r1 - thumb_func_end s31_fanfare_play + thumb_func_end ScrCmd_fanfare thumb_func_start s32_fanfare_wait_asm s32_fanfare_wait_asm: @ 80669A4 @@ -3050,8 +1357,8 @@ s32_fanfare_wait_asm: @ 80669A4 bx r1 thumb_func_end s32_fanfare_wait_asm - thumb_func_start sub_80669B4 -sub_80669B4: @ 80669B4 + thumb_func_start ScrCmd_waitfanfare +ScrCmd_waitfanfare: @ 80669B4 push {lr} ldr r1, _080669C4 bl script_setup_asm_script @@ -3060,10 +1367,10 @@ sub_80669B4: @ 80669B4 bx r1 .align 2, 0 _080669C4: .4byte s32_fanfare_wait_asm - thumb_func_end sub_80669B4 + thumb_func_end ScrCmd_waitfanfare - thumb_func_start s33_play_music -s33_play_music: @ 80669C8 + thumb_func_start ScrCmd_playmusic +ScrCmd_playmusic: @ 80669C8 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword @@ -3085,10 +1392,10 @@ _080669E8: pop {r4,r5} pop {r1} bx r1 - thumb_func_end s33_play_music + thumb_func_end ScrCmd_playmusic - thumb_func_start s34_unknown -s34_unknown: @ 80669F8 + thumb_func_start ScrCmd_playmusicbattle +ScrCmd_playmusicbattle: @ 80669F8 push {lr} bl script_read_halfword lsls r0, 16 @@ -3097,19 +1404,19 @@ s34_unknown: @ 80669F8 movs r0, 0 pop {r1} bx r1 - thumb_func_end s34_unknown + thumb_func_end ScrCmd_playmusicbattle - thumb_func_start s35_fade_to_default -s35_fade_to_default: @ 8066A0C + thumb_func_start ScrCmd_fadedefault +ScrCmd_fadedefault: @ 8066A0C push {lr} bl sub_8053F84 movs r0, 0 pop {r1} bx r1 - thumb_func_end s35_fade_to_default + thumb_func_end ScrCmd_fadedefault - thumb_func_start s36_fade_to_music -s36_fade_to_music: @ 8066A18 + thumb_func_start ScrCmd_fademusic +ScrCmd_fademusic: @ 8066A18 push {lr} bl script_read_halfword lsls r0, 16 @@ -3118,10 +1425,10 @@ s36_fade_to_music: @ 8066A18 movs r0, 0 pop {r1} bx r1 - thumb_func_end s36_fade_to_music + thumb_func_end ScrCmd_fademusic - thumb_func_start s37_fadeout -s37_fadeout: @ 8066A2C + thumb_func_start ScrCmd_fadeout +ScrCmd_fadeout: @ 8066A2C push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] @@ -3147,10 +1454,10 @@ _08066A4C: bx r1 .align 2, 0 _08066A5C: .4byte sub_8074FD0 - thumb_func_end s37_fadeout + thumb_func_end ScrCmd_fadeout - thumb_func_start s38_fadein -s38_fadein: @ 8066A60 + thumb_func_start ScrCmd_fadein +ScrCmd_fadein: @ 8066A60 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -3169,10 +1476,10 @@ _08066A7E: movs r0, 0 pop {r1} bx r1 - thumb_func_end s38_fadein + thumb_func_end ScrCmd_fadein - thumb_func_start s4F_execute_movement -s4F_execute_movement: @ 8066A84 + thumb_func_start ScrCmd_move +ScrCmd_move: @ 8066A84 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -3200,10 +1507,10 @@ s4F_execute_movement: @ 8066A84 .align 2, 0 _08066ABC: .4byte 0x02025734 _08066AC0: .4byte 0x0202e8b6 - thumb_func_end s4F_execute_movement + thumb_func_end ScrCmd_move - thumb_func_start s50_execute_movement_remote -s50_execute_movement_remote: @ 8066AC4 + thumb_func_start ScrCmd_movecoords +ScrCmd_movecoords: @ 8066AC4 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -3234,7 +1541,7 @@ s50_execute_movement_remote: @ 8066AC4 bx r1 .align 2, 0 _08066B04: .4byte 0x0202e8b6 - thumb_func_end s50_execute_movement_remote + thumb_func_end ScrCmd_movecoords thumb_func_start s51a_0806B288 s51a_0806B288: @ 8066B08 @@ -3256,8 +1563,8 @@ _08066B28: .4byte 0x0202e8ba _08066B2C: .4byte 0x0202e8b8 thumb_func_end s51a_0806B288 - thumb_func_start s51_waitmove -s51_waitmove: @ 8066B30 + thumb_func_start ScrCmd_waitmove +ScrCmd_waitmove: @ 8066B30 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3293,10 +1600,10 @@ _08066B74: .4byte 0x0202e8b8 _08066B78: .4byte 0x02025734 _08066B7C: .4byte 0x0202e8ba _08066B80: .4byte s51a_0806B288 - thumb_func_end s51_waitmove + thumb_func_end ScrCmd_waitmove - thumb_func_start s52_waitmove_remote -s52_waitmove_remote: @ 8066B84 + thumb_func_start ScrCmd_waitmovexy +ScrCmd_waitmovexy: @ 8066B84 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3333,10 +1640,10 @@ _08066BC8: .4byte 0x0202e8b6 _08066BCC: .4byte 0x0202e8b8 _08066BD0: .4byte 0x0202e8ba _08066BD4: .4byte s51a_0806B288 - thumb_func_end s52_waitmove_remote + thumb_func_end ScrCmd_waitmovexy - thumb_func_start sub_8066BD8 -sub_8066BD8: @ 8066BD8 + thumb_func_start ScrCmd_disappear +ScrCmd_disappear: @ 8066BD8 push {lr} bl script_read_halfword lsls r0, 16 @@ -3353,10 +1660,10 @@ sub_8066BD8: @ 8066BD8 bx r1 .align 2, 0 _08066BFC: .4byte 0x02025734 - thumb_func_end sub_8066BD8 + thumb_func_end ScrCmd_disappear - thumb_func_start s54_hide_sprite_set_coords -s54_hide_sprite_set_coords: @ 8066C00 + thumb_func_start ScrCmd_disappearxy +ScrCmd_disappearxy: @ 8066C00 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3377,10 +1684,10 @@ s54_hide_sprite_set_coords: @ 8066C00 pop {r4} pop {r1} bx r1 - thumb_func_end s54_hide_sprite_set_coords + thumb_func_end ScrCmd_disappearxy - thumb_func_start sub_8066C30 -sub_8066C30: @ 8066C30 + thumb_func_start ScrCmd_reappear +ScrCmd_reappear: @ 8066C30 push {lr} bl script_read_halfword lsls r0, 16 @@ -3397,10 +1704,10 @@ sub_8066C30: @ 8066C30 bx r1 .align 2, 0 _08066C54: .4byte 0x02025734 - thumb_func_end sub_8066C30 + thumb_func_end ScrCmd_reappear - thumb_func_start s56_show_sprite_set_coords -s56_show_sprite_set_coords: @ 8066C58 + thumb_func_start ScrCmd_reappearxy +ScrCmd_reappearxy: @ 8066C58 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3421,10 +1728,10 @@ s56_show_sprite_set_coords: @ 8066C58 pop {r4} pop {r1} bx r1 - thumb_func_end s56_show_sprite_set_coords + thumb_func_end ScrCmd_reappearxy - thumb_func_start s57_move_sprites -s57_move_sprites: @ 8066C88 + thumb_func_start ScrCmd_movesprite +ScrCmd_movesprite: @ 8066C88 push {r4-r6,lr} sub sp, 0x4 adds r6, r0, 0 @@ -3468,10 +1775,10 @@ s57_move_sprites: @ 8066C88 bx r1 .align 2, 0 _08066CE8: .4byte 0x02025734 - thumb_func_end s57_move_sprites + thumb_func_end ScrCmd_movesprite - thumb_func_start s63_new_sprite_location_permanent -s63_new_sprite_location_permanent: @ 8066CEC + thumb_func_start ScrCmd_movespriteperm +ScrCmd_movespriteperm: @ 8066CEC push {r4-r6,lr} adds r6, r0, 0 bl script_read_halfword @@ -3508,10 +1815,10 @@ s63_new_sprite_location_permanent: @ 8066CEC pop {r4-r6} pop {r1} bx r1 - thumb_func_end s63_new_sprite_location_permanent + thumb_func_end ScrCmd_movespriteperm - thumb_func_start s64_set_sprite_top_left_corner -s64_set_sprite_top_left_corner: @ 8066D44 + thumb_func_start ScrCmd_moveoffscreen +ScrCmd_moveoffscreen: @ 8066D44 push {lr} bl script_read_halfword lsls r0, 16 @@ -3528,10 +1835,10 @@ s64_set_sprite_top_left_corner: @ 8066D44 bx r1 .align 2, 0 _08066D68: .4byte 0x02025734 - thumb_func_end s64_set_sprite_top_left_corner + thumb_func_end ScrCmd_moveoffscreen - thumb_func_start s58_npc_f1_clear_x20 -s58_npc_f1_clear_x20: @ 8066D6C + thumb_func_start ScrCmd_spritevisible +ScrCmd_spritevisible: @ 8066D6C push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3553,10 +1860,10 @@ s58_npc_f1_clear_x20: @ 8066D6C pop {r4} pop {r1} bx r1 - thumb_func_end s58_npc_f1_clear_x20 + thumb_func_end ScrCmd_spritevisible - thumb_func_start s59_npc_f1_set_x20 -s59_npc_f1_set_x20: @ 8066D9C + thumb_func_start ScrCmd_spriteinvisible +ScrCmd_spriteinvisible: @ 8066D9C push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3578,10 +1885,10 @@ s59_npc_f1_set_x20: @ 8066D9C pop {r4} pop {r1} bx r1 - thumb_func_end s59_npc_f1_set_x20 + thumb_func_end ScrCmd_spriteinvisible - thumb_func_start sA8_unknown -sA8_unknown: @ 8066DCC + thumb_func_start ScrCmd_spritelevelup +ScrCmd_spritelevelup: @ 8066DCC push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -3608,10 +1915,10 @@ sA8_unknown: @ 8066DCC pop {r4,r5} pop {r1} bx r1 - thumb_func_end sA8_unknown + thumb_func_end ScrCmd_spritelevelup - thumb_func_start sA9_unknown -sA9_unknown: @ 8066E08 + thumb_func_start ScrCmd_restorespritelevel +ScrCmd_restorespritelevel: @ 8066E08 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3632,10 +1939,10 @@ sA9_unknown: @ 8066E08 pop {r4} pop {r1} bx r1 - thumb_func_end sA9_unknown + thumb_func_end ScrCmd_restorespritelevel - thumb_func_start s5A_face_player -s5A_face_player: @ 8066E38 + thumb_func_start ScrCmd_faceplayer +ScrCmd_faceplayer: @ 8066E38 push {r4,lr} ldr r2, _08066E68 ldr r0, _08066E6C @@ -3662,10 +1969,10 @@ _08066E60: .align 2, 0 _08066E68: .4byte 0x030048a0 _08066E6C: .4byte 0x03004ae0 - thumb_func_end s5A_face_player + thumb_func_end ScrCmd_faceplayer - thumb_func_start s5B_npc_set_direction -s5B_npc_set_direction: @ 8066E70 + thumb_func_start ScrCmd_spriteface +ScrCmd_spriteface: @ 8066E70 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3688,10 +1995,10 @@ s5B_npc_set_direction: @ 8066E70 bx r1 .align 2, 0 _08066EA0: .4byte 0x02025734 - thumb_func_end s5B_npc_set_direction + thumb_func_end ScrCmd_spriteface - thumb_func_start s65_set_sprite_behaviour -s65_set_sprite_behaviour: @ 8066EA4 + thumb_func_start ScrCmd_spritebehave +ScrCmd_spritebehave: @ 8066EA4 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -3709,10 +2016,10 @@ s65_set_sprite_behaviour: @ 8066EA4 pop {r4} pop {r1} bx r1 - thumb_func_end s65_set_sprite_behaviour + thumb_func_end ScrCmd_spritebehave - thumb_func_start sAA_create_new_sprite -sAA_create_new_sprite: @ 8066ECC + thumb_func_start ScrCmd_createvsprite +ScrCmd_createvsprite: @ 8066ECC push {r4-r6,lr} mov r6, r8 push {r6} @@ -3764,10 +2071,10 @@ sAA_create_new_sprite: @ 8066ECC pop {r4-r6} pop {r1} bx r1 - thumb_func_end sAA_create_new_sprite + thumb_func_end ScrCmd_createvsprite - thumb_func_start sAB_unknown -sAB_unknown: @ 8066F3C + thumb_func_start ScrCmd_vspriteface +ScrCmd_vspriteface: @ 8066F3C push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] @@ -3781,10 +2088,10 @@ sAB_unknown: @ 8066F3C movs r0, 0 pop {r1} bx r1 - thumb_func_end sAB_unknown + thumb_func_end ScrCmd_vspriteface - thumb_func_start sub_8066F58 -sub_8066F58: @ 8066F58 + thumb_func_start ScrCmd_lockall +ScrCmd_lockall: @ 8066F58 push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active @@ -3804,10 +2111,10 @@ _08066F7A: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8066F58 + thumb_func_end ScrCmd_lockall - thumb_func_start sub_8066F80 -sub_8066F80: @ 8066F80 + thumb_func_start ScrCmd_lock +ScrCmd_lock: @ 8066F80 push {r4,lr} adds r4, r0, 0 bl is_c1_link_related_active @@ -3849,10 +2156,10 @@ _08066FCE: bx r1 .align 2, 0 _08066FD4: .4byte sub_8064CFC - thumb_func_end sub_8066F80 + thumb_func_end ScrCmd_lock - thumb_func_start s6B_release -s6B_release: @ 8066FD8 + thumb_func_start ScrCmd_releaseall +ScrCmd_releaseall: @ 8066FD8 push {lr} bl textbox_close movs r0, 0xFF @@ -3875,10 +2182,10 @@ s6B_release: @ 8066FD8 bx r1 .align 2, 0 _0806700C: .4byte 0x030048a0 - thumb_func_end s6B_release + thumb_func_end ScrCmd_releaseall - thumb_func_start s6C_release_2 -s6C_release_2: @ 8067010 + thumb_func_start ScrCmd_release +ScrCmd_release: @ 8067010 push {r4,lr} bl textbox_close ldr r4, _08067060 @@ -3916,10 +2223,10 @@ _08067032: .align 2, 0 _08067060: .4byte 0x030048a0 _08067064: .4byte 0x03004ae0 - thumb_func_end s6C_release_2 + thumb_func_end ScrCmd_release - thumb_func_start s67_execute_box -s67_execute_box: @ 8067068 + thumb_func_start ScrCmd_message +ScrCmd_message: @ 8067068 push {r4,lr} adds r4, r0, 0 bl script_read_word @@ -3932,10 +2239,10 @@ _08067076: pop {r4} pop {r1} bx r1 - thumb_func_end s67_execute_box + thumb_func_end ScrCmd_message - thumb_func_start s9B_unknown -s9B_unknown: @ 8067084 + thumb_func_start ScrCmd_message2 +ScrCmd_message2: @ 8067084 push {r4,lr} adds r4, r0, 0 bl script_read_word @@ -3948,10 +2255,10 @@ _08067092: pop {r4} pop {r1} bx r1 - thumb_func_end s9B_unknown + thumb_func_end ScrCmd_message2 - thumb_func_start sub_80670A0 -sub_80670A0: @ 80670A0 + thumb_func_start ScrCmd_waittext +ScrCmd_waittext: @ 80670A0 push {lr} ldr r1, _080670B0 bl script_setup_asm_script @@ -3960,16 +2267,16 @@ sub_80670A0: @ 80670A0 bx r1 .align 2, 0 _080670B0: .4byte sub_8064C84 - thumb_func_end sub_80670A0 + thumb_func_end ScrCmd_waittext - thumb_func_start s68_close_box -s68_close_box: @ 80670B4 + thumb_func_start ScrCmd_closebutton +ScrCmd_closebutton: @ 80670B4 push {lr} bl textbox_close movs r0, 0 pop {r1} bx r1 - thumb_func_end s68_close_box + thumb_func_end ScrCmd_closebutton thumb_func_start sub_80670C0 sub_80670C0: @ 80670C0 @@ -3995,8 +2302,8 @@ _080670E2: bx r1 thumb_func_end sub_80670C0 - thumb_func_start sub_80670E8 -sub_80670E8: @ 80670E8 + thumb_func_start ScrCmd_waitbutton +ScrCmd_waitbutton: @ 80670E8 push {lr} ldr r1, _080670F8 bl script_setup_asm_script @@ -4005,10 +2312,10 @@ sub_80670E8: @ 80670E8 bx r1 .align 2, 0 _080670F8: .4byte sub_80670C0 - thumb_func_end sub_80670E8 + thumb_func_end ScrCmd_waitbutton - thumb_func_start s6E_yes_no -s6E_yes_no: @ 80670FC + thumb_func_start ScrCmd_yesnobox +ScrCmd_yesnobox: @ 80670FC push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] @@ -4031,10 +2338,10 @@ _0806711E: _08067124: pop {r1} bx r1 - thumb_func_end s6E_yes_no + thumb_func_end ScrCmd_yesnobox - thumb_func_start sub_8067128 -sub_8067128: @ 8067128 + thumb_func_start ScrCmd_multichoice +ScrCmd_multichoice: @ 8067128 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] @@ -4064,10 +2371,10 @@ _0806715C: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8067128 + thumb_func_end ScrCmd_multichoice - thumb_func_start sub_8067164 -sub_8067164: @ 8067164 + thumb_func_start ScrCmd_multichoicedef +ScrCmd_multichoicedef: @ 8067164 push {r4-r6,lr} mov r6, r8 push {r6} @@ -4108,10 +2415,10 @@ _080671A8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8067164 + thumb_func_end ScrCmd_multichoicedef - thumb_func_start sub_80671B4 -sub_80671B4: @ 80671B4 + thumb_func_start ScrCmd_showbox +ScrCmd_showbox: @ 80671B4 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] @@ -4132,10 +2439,10 @@ sub_80671B4: @ 80671B4 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80671B4 + thumb_func_end ScrCmd_showbox - thumb_func_start sub_80671E0 -sub_80671E0: @ 80671E0 + thumb_func_start ScrCmd_multichoicerow +ScrCmd_multichoicerow: @ 80671E0 push {r4-r6,lr} mov r6, r8 push {r6} @@ -4176,10 +2483,10 @@ _08067224: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_80671E0 + thumb_func_end ScrCmd_multichoicerow - thumb_func_start sub_8067230 -sub_8067230: @ 8067230 + thumb_func_start ScrCmd_hidebox +ScrCmd_hidebox: @ 8067230 push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] @@ -4200,10 +2507,10 @@ sub_8067230: @ 8067230 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8067230 + thumb_func_end ScrCmd_hidebox - thumb_func_start s6F_multichoice -s6F_multichoice: @ 806725C + thumb_func_start ScrCmd_clearbox +ScrCmd_clearbox: @ 806725C push {r4,r5,lr} ldr r2, [r0, 0x8] ldrb r5, [r2] @@ -4233,10 +2540,10 @@ _08067290: pop {r4,r5} pop {r1} bx r1 - thumb_func_end s6F_multichoice + thumb_func_end ScrCmd_clearbox - thumb_func_start sub_8067298 -sub_8067298: @ 8067298 + thumb_func_start ScrCmd_showpokepic +ScrCmd_showpokepic: @ 8067298 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -4257,10 +2564,10 @@ sub_8067298: @ 8067298 pop {r4} pop {r1} bx r1 - thumb_func_end sub_8067298 + thumb_func_end ScrCmd_showpokepic - thumb_func_start s76_close_picture_box -s76_close_picture_box: @ 80672C8 + thumb_func_start ScrCmd_hidepokepic +ScrCmd_hidepokepic: @ 80672C8 push {r4,lr} adds r4, r0, 0 bl picbox_close @@ -4277,10 +2584,10 @@ _080672E2: pop {r4} pop {r1} bx r1 - thumb_func_end s76_close_picture_box + thumb_func_end ScrCmd_hidepokepic - thumb_func_start s77_showcontestwinner -s77_showcontestwinner: @ 80672E8 + thumb_func_start ScrCmd_showcontestwinner +ScrCmd_showcontestwinner: @ 80672E8 push {lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -4296,10 +2603,10 @@ _080672FC: movs r0, 0x1 pop {r1} bx r1 - thumb_func_end s77_showcontestwinner + thumb_func_end ScrCmd_showcontestwinner - thumb_func_start sub_806730C -sub_806730C: @ 806730C + thumb_func_start ScrCmd_braillemsg +ScrCmd_braillemsg: @ 806730C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -4339,10 +2646,10 @@ sub_806730C: @ 806730C bx r1 .align 2, 0 _08067360: .4byte 0x020234cc - thumb_func_end sub_806730C + thumb_func_end ScrCmd_braillemsg - thumb_func_start sBD_virtual_message -sBD_virtual_message: @ 8067364 + thumb_func_start ScrCmd_vtext +ScrCmd_vtext: @ 8067364 push {lr} bl script_read_word ldr r1, _0806737C @@ -4354,10 +2661,10 @@ sBD_virtual_message: @ 8067364 bx r1 .align 2, 0 _0806737C: .4byte 0x0202e8b0 - thumb_func_end sBD_virtual_message + thumb_func_end ScrCmd_vtext - thumb_func_start s7D_load_pokename -s7D_load_pokename: @ 8067380 + thumb_func_start ScrCmd_bufferpoke +ScrCmd_bufferpoke: @ 8067380 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4386,10 +2693,10 @@ s7D_load_pokename: @ 8067380 .align 2, 0 _080673B8: .4byte gUnknown_083762F0 _080673BC: .4byte gSpeciesNames - thumb_func_end s7D_load_pokename + thumb_func_end ScrCmd_bufferpoke - thumb_func_start s7E_load_first_pokenames -s7E_load_first_pokenames: @ 80673C0 + thumb_func_start ScrCmd_bufferfirstpoke +ScrCmd_bufferfirstpoke: @ 80673C0 push {r4,lr} ldr r1, [r0, 0x8] ldrb r2, [r1] @@ -4423,10 +2730,10 @@ s7E_load_first_pokenames: @ 80673C0 _08067400: .4byte gUnknown_083762F0 _08067404: .4byte 0x03004360 _08067408: .4byte gSpeciesNames - thumb_func_end s7E_load_first_pokenames + thumb_func_end ScrCmd_bufferfirstpoke - thumb_func_start s7F_load_pokename_team -s7F_load_pokename_team: @ 806740C + thumb_func_start ScrCmd_bufferpartypoke +ScrCmd_bufferpartypoke: @ 806740C push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4458,10 +2765,10 @@ s7F_load_pokename_team: @ 806740C .align 2, 0 _0806744C: .4byte 0x03004360 _08067450: .4byte gUnknown_083762F0 - thumb_func_end s7F_load_pokename_team + thumb_func_end ScrCmd_bufferpartypoke - thumb_func_start s80_load_item_name -s80_load_item_name: @ 8067454 + thumb_func_start ScrCmd_bufferitem +ScrCmd_bufferitem: @ 8067454 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4484,10 +2791,10 @@ s80_load_item_name: @ 8067454 bx r1 .align 2, 0 _08067484: .4byte gUnknown_083762F0 - thumb_func_end s80_load_item_name + thumb_func_end ScrCmd_bufferitem - thumb_func_start sub_8067488 -sub_8067488: @ 8067488 + thumb_func_start ScrCmd_bufferdecor +ScrCmd_bufferdecor: @ 8067488 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4514,10 +2821,10 @@ sub_8067488: @ 8067488 .align 2, 0 _080674BC: .4byte gUnknown_083762F0 _080674C0: .4byte gDecorations + 0x1 - thumb_func_end sub_8067488 + thumb_func_end ScrCmd_bufferdecor - thumb_func_start s82_load_item_name -s82_load_item_name: @ 80674C4 + thumb_func_start ScrCmd_bufferattack +ScrCmd_bufferattack: @ 80674C4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4546,10 +2853,10 @@ s82_load_item_name: @ 80674C4 .align 2, 0 _080674FC: .4byte gUnknown_083762F0 _08067500: .4byte gMoveNames - thumb_func_end s82_load_item_name + thumb_func_end ScrCmd_bufferattack - thumb_func_start s83_load_textvar_var -s83_load_textvar_var: @ 8067504 + thumb_func_start ScrCmd_buffernum +ScrCmd_buffernum: @ 8067504 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] @@ -4580,10 +2887,10 @@ s83_load_textvar_var: @ 8067504 bx r1 .align 2, 0 _08067544: .4byte gUnknown_083762F0 - thumb_func_end s83_load_textvar_var + thumb_func_end ScrCmd_buffernum - thumb_func_start s84_load_textvar_std_expression -s84_load_textvar_std_expression: @ 8067548 + thumb_func_start ScrCmd_bufferstd +ScrCmd_bufferstd: @ 8067548 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4611,10 +2918,10 @@ s84_load_textvar_std_expression: @ 8067548 .align 2, 0 _08067580: .4byte gUnknown_083762F0 _08067584: .4byte gUnknown_083CE048 - thumb_func_end s84_load_textvar_std_expression + thumb_func_end ScrCmd_bufferstd - thumb_func_start s85_load_textvar_pointer -s85_load_textvar_pointer: @ 8067588 + thumb_func_start ScrCmd_buffertext +ScrCmd_buffertext: @ 8067588 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4633,10 +2940,10 @@ s85_load_textvar_pointer: @ 8067588 bx r1 .align 2, 0 _080675AC: .4byte gUnknown_083762F0 - thumb_func_end s85_load_textvar_pointer + thumb_func_end ScrCmd_buffertext - thumb_func_start sBE_virtual_load_text -sBE_virtual_load_text: @ 80675B0 + thumb_func_start ScrCmd_vloadptr +ScrCmd_vloadptr: @ 80675B0 push {lr} bl script_read_word adds r1, r0, 0 @@ -4651,10 +2958,10 @@ sBE_virtual_load_text: @ 80675B0 .align 2, 0 _080675CC: .4byte 0x0202e8b0 _080675D0: .4byte 0x020234cc - thumb_func_end sBE_virtual_load_text + thumb_func_end ScrCmd_vloadptr - thumb_func_start sBF_virtual_load_textbuffer -sBF_virtual_load_textbuffer: @ 80675D4 + thumb_func_start ScrCmd_vbuffer +ScrCmd_vbuffer: @ 80675D4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4677,10 +2984,10 @@ sBF_virtual_load_textbuffer: @ 80675D4 .align 2, 0 _08067600: .4byte 0x0202e8b0 _08067604: .4byte gUnknown_083762F0 - thumb_func_end sBF_virtual_load_textbuffer + thumb_func_end ScrCmd_vbuffer - thumb_func_start s79_give_pokemon -s79_give_pokemon: @ 8067608 + thumb_func_start ScrCmd_givepokemon +ScrCmd_givepokemon: @ 8067608 push {r4-r6,lr} mov r6, r9 mov r5, r8 @@ -4737,10 +3044,10 @@ s79_give_pokemon: @ 8067608 bx r1 .align 2, 0 _08067684: .4byte 0x0202e8dc - thumb_func_end s79_give_pokemon + thumb_func_end ScrCmd_givepokemon - thumb_func_start s7A_create_egg -s7A_create_egg: @ 8067688 + thumb_func_start ScrCmd_giveegg +ScrCmd_giveegg: @ 8067688 push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -4759,10 +3066,10 @@ s7A_create_egg: @ 8067688 bx r1 .align 2, 0 _080676B0: .4byte 0x0202e8dc - thumb_func_end s7A_create_egg + thumb_func_end ScrCmd_giveegg - thumb_func_start s7B_change_pokedata_AP -s7B_change_pokedata_AP: @ 80676B4 + thumb_func_start ScrCmd_setpokemove +ScrCmd_setpokemove: @ 80676B4 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] @@ -4782,10 +3089,10 @@ s7B_change_pokedata_AP: @ 80676B4 pop {r4,r5} pop {r1} bx r1 - thumb_func_end s7B_change_pokedata_AP + thumb_func_end ScrCmd_setpokemove - thumb_func_start sub_80676E0 -sub_80676E0: @ 80676E0 + thumb_func_start ScrCmd_checkattack +ScrCmd_checkattack: @ 80676E0 push {r4-r7,lr} bl script_read_halfword lsls r0, 16 @@ -4845,10 +3152,10 @@ _0806774E: bx r1 .align 2, 0 _08067758: .4byte 0x03004360 - thumb_func_end sub_80676E0 + thumb_func_end ScrCmd_checkattack - thumb_func_start sub_806775C -sub_806775C: @ 806775C + thumb_func_start ScrCmd_givemoney +ScrCmd_givemoney: @ 806775C push {r4,lr} adds r4, r0, 0 bl script_read_word @@ -4869,10 +3176,10 @@ _0806777A: bx r1 .align 2, 0 _08067784: .4byte 0x02025bc4 - thumb_func_end sub_806775C + thumb_func_end ScrCmd_givemoney - thumb_func_start sub_8067788 -sub_8067788: @ 8067788 + thumb_func_start ScrCmd_paymoney +ScrCmd_paymoney: @ 8067788 push {r4,lr} adds r4, r0, 0 bl script_read_word @@ -4893,10 +3200,10 @@ _080677A6: bx r1 .align 2, 0 _080677B0: .4byte 0x02025bc4 - thumb_func_end sub_8067788 + thumb_func_end ScrCmd_paymoney - thumb_func_start s92_check_money -s92_check_money: @ 80677B4 + thumb_func_start ScrCmd_checkmoney +ScrCmd_checkmoney: @ 80677B4 push {r4,lr} adds r4, r0, 0 bl script_read_word @@ -4926,10 +3233,10 @@ _080677E2: .align 2, 0 _080677EC: .4byte 0x0202e8dc _080677F0: .4byte 0x02025734 - thumb_func_end s92_check_money + thumb_func_end ScrCmd_checkmoney - thumb_func_start sub_80677F4 -sub_80677F4: @ 80677F4 + thumb_func_start ScrCmd_showmoney +ScrCmd_showmoney: @ 80677F4 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -4958,10 +3265,10 @@ _08067820: bx r1 .align 2, 0 _08067828: .4byte 0x02025734 - thumb_func_end sub_80677F4 + thumb_func_end ScrCmd_showmoney - thumb_func_start sub_806782C -sub_806782C: @ 806782C + thumb_func_start ScrCmd_hidemoney +ScrCmd_hidemoney: @ 806782C push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] @@ -4975,10 +3282,10 @@ sub_806782C: @ 806782C movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_806782C + thumb_func_end ScrCmd_hidemoney - thumb_func_start sub_8067848 -sub_8067848: @ 8067848 + thumb_func_start ScrCmd_updatemoney +ScrCmd_updatemoney: @ 8067848 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -5007,10 +3314,10 @@ _08067874: bx r1 .align 2, 0 _0806787C: .4byte 0x02025734 - thumb_func_end sub_8067848 + thumb_func_end ScrCmd_updatemoney - thumb_func_start sub_8067880 -sub_8067880: @ 8067880 + thumb_func_start ScrCmd_showcoins +ScrCmd_showcoins: @ 8067880 push {lr} ldr r3, [r0, 0x8] ldrb r1, [r3] @@ -5030,10 +3337,10 @@ sub_8067880: @ 8067880 .align 2, 0 _080678A4: .4byte 0x02025734 _080678A8: .4byte 0x00000494 - thumb_func_end sub_8067880 + thumb_func_end ScrCmd_showcoins - thumb_func_start sub_80678AC -sub_80678AC: @ 80678AC + thumb_func_start ScrCmd_hidecoins +ScrCmd_hidecoins: @ 80678AC push {lr} ldr r2, [r0, 0x8] ldrb r3, [r2] @@ -5047,10 +3354,10 @@ sub_80678AC: @ 80678AC movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_80678AC + thumb_func_end ScrCmd_hidecoins - thumb_func_start sub_80678C8 -sub_80678C8: @ 80678C8 + thumb_func_start ScrCmd_updatecoins +ScrCmd_updatecoins: @ 80678C8 push {lr} ldr r3, [r0, 0x8] ldrb r1, [r3] @@ -5070,10 +3377,10 @@ sub_80678C8: @ 80678C8 .align 2, 0 _080678EC: .4byte 0x02025734 _080678F0: .4byte 0x00000494 - thumb_func_end sub_80678C8 + thumb_func_end ScrCmd_updatecoins - thumb_func_start s5C_trainer_battle_configure_and_start -s5C_trainer_battle_configure_and_start: @ 80678F4 + thumb_func_start ScrCmd_trainerbattle +ScrCmd_trainerbattle: @ 80678F4 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x8] @@ -5083,19 +3390,19 @@ s5C_trainer_battle_configure_and_start: @ 80678F4 pop {r4} pop {r1} bx r1 - thumb_func_end s5C_trainer_battle_configure_and_start + thumb_func_end ScrCmd_trainerbattle - thumb_func_start sub_8067908 -sub_8067908: @ 8067908 + thumb_func_start ScrCmd_reptrainerbattle +ScrCmd_reptrainerbattle: @ 8067908 push {lr} bl sub_80825E4 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_8067908 + thumb_func_end ScrCmd_reptrainerbattle - thumb_func_start sub_8067914 -sub_8067914: @ 8067914 + thumb_func_start ScrCmd_endtrainerbattle +ScrCmd_endtrainerbattle: @ 8067914 push {r4,lr} adds r4, r0, 0 bl sub_80826E8 @@ -5104,10 +3411,10 @@ sub_8067914: @ 8067914 pop {r4} pop {r1} bx r1 - thumb_func_end sub_8067914 + thumb_func_end ScrCmd_endtrainerbattle - thumb_func_start sub_8067928 -sub_8067928: @ 8067928 + thumb_func_start ScrCmd_endtrainerbattle2 +ScrCmd_endtrainerbattle2: @ 8067928 push {r4,lr} adds r4, r0, 0 bl sub_8082700 @@ -5116,10 +3423,10 @@ sub_8067928: @ 8067928 pop {r4} pop {r1} bx r1 - thumb_func_end sub_8067928 + thumb_func_end ScrCmd_endtrainerbattle2 - thumb_func_start s60_check_trainer_flag -s60_check_trainer_flag: @ 806793C + thumb_func_start ScrCmd_checktrainerflag +ScrCmd_checktrainerflag: @ 806793C push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -5134,10 +3441,10 @@ s60_check_trainer_flag: @ 806793C pop {r4} pop {r1} bx r1 - thumb_func_end s60_check_trainer_flag + thumb_func_end ScrCmd_checktrainerflag - thumb_func_start s61_set_trainer_flag -s61_set_trainer_flag: @ 8067960 + thumb_func_start ScrCmd_cleartrainerflag +ScrCmd_cleartrainerflag: @ 8067960 push {lr} bl script_read_halfword lsls r0, 16 @@ -5149,10 +3456,10 @@ s61_set_trainer_flag: @ 8067960 movs r0, 0 pop {r1} bx r1 - thumb_func_end s61_set_trainer_flag + thumb_func_end ScrCmd_cleartrainerflag - thumb_func_start s62_unset_trainer_flag -s62_unset_trainer_flag: @ 806797C + thumb_func_start ScrCmd_settrainerflag +ScrCmd_settrainerflag: @ 806797C push {lr} bl script_read_halfword lsls r0, 16 @@ -5164,10 +3471,10 @@ s62_unset_trainer_flag: @ 806797C movs r0, 0 pop {r1} bx r1 - thumb_func_end s62_unset_trainer_flag + thumb_func_end ScrCmd_settrainerflag - thumb_func_start sB6_load_battle -sB6_load_battle: @ 8067998 + thumb_func_start ScrCmd_setwildbattle +ScrCmd_setwildbattle: @ 8067998 push {r4-r6,lr} adds r4, r0, 0 bl script_read_halfword @@ -5190,20 +3497,20 @@ sB6_load_battle: @ 8067998 pop {r4-r6} pop {r1} bx r1 - thumb_func_end sB6_load_battle + thumb_func_end ScrCmd_setwildbattle - thumb_func_start sub_80679CC -sub_80679CC: @ 80679CC + thumb_func_start ScrCmd_dowildbattle +ScrCmd_dowildbattle: @ 80679CC push {lr} bl sub_8081B3C bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_80679CC + thumb_func_end ScrCmd_dowildbattle - thumb_func_start s86_pokemart -s86_pokemart: @ 80679DC + thumb_func_start ScrCmd_pokemart +ScrCmd_pokemart: @ 80679DC push {lr} bl script_read_word bl CreatePokemartMenu @@ -5211,10 +3518,10 @@ s86_pokemart: @ 80679DC movs r0, 0x1 pop {r1} bx r1 - thumb_func_end s86_pokemart + thumb_func_end ScrCmd_pokemart - thumb_func_start s87_pokemartdecor -s87_pokemartdecor: @ 80679F0 + thumb_func_start ScrCmd_pokemartdecor +ScrCmd_pokemartdecor: @ 80679F0 push {lr} bl script_read_word bl CreateDecorationShop1Menu @@ -5222,10 +3529,10 @@ s87_pokemartdecor: @ 80679F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end s87_pokemartdecor + thumb_func_end ScrCmd_pokemartdecor - thumb_func_start s88_pokemartbp -s88_pokemartbp: @ 8067A04 + thumb_func_start ScrCmd_pokemartbp +ScrCmd_pokemartbp: @ 8067A04 push {lr} bl script_read_word bl CreateDecorationShop2Menu @@ -5233,10 +3540,10 @@ s88_pokemartbp: @ 8067A04 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end s88_pokemartbp + thumb_func_end ScrCmd_pokemartbp - thumb_func_start s89_open_casino_game1 -s89_open_casino_game1: @ 8067A18 + thumb_func_start ScrCmd_pokecasino +ScrCmd_pokecasino: @ 8067A18 push {lr} bl script_read_halfword lsls r0, 16 @@ -5252,10 +3559,10 @@ s89_open_casino_game1: @ 8067A18 bx r1 .align 2, 0 _08067A3C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end s89_open_casino_game1 + thumb_func_end ScrCmd_pokecasino - thumb_func_start berry_script_cmd -berry_script_cmd: @ 8067A40 + thumb_func_start ScrCmd_event_8a +ScrCmd_event_8a: @ 8067A40 push {r4,r5,lr} ldr r1, [r0, 0x8] ldrb r5, [r1] @@ -5286,10 +3593,10 @@ _08067A74: pop {r4,r5} pop {r1} bx r1 - thumb_func_end berry_script_cmd + thumb_func_end ScrCmd_event_8a - thumb_func_start sub_8067A7C -sub_8067A7C: @ 8067A7C + thumb_func_start ScrCmd_event_96 +ScrCmd_event_96: @ 8067A7C push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -5308,40 +3615,40 @@ sub_8067A7C: @ 8067A7C bx r1 .align 2, 0 _08067AA4: .4byte 0x0202e8dc - thumb_func_end sub_8067A7C + thumb_func_end ScrCmd_event_96 - thumb_func_start sub_8067AA8 -sub_8067AA8: @ 8067AA8 + thumb_func_start ScrCmd_choosecontestpkmn +ScrCmd_choosecontestpkmn: @ 8067AA8 push {lr} bl sub_80F99CC bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_8067AA8 + thumb_func_end ScrCmd_choosecontestpkmn - thumb_func_start sub_8067AB8 -sub_8067AB8: @ 8067AB8 + thumb_func_start ScrCmd_startcontest +ScrCmd_startcontest: @ 8067AB8 push {lr} bl sub_80C48C8 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_8067AB8 + thumb_func_end ScrCmd_startcontest - thumb_func_start sub_8067AC8 -sub_8067AC8: @ 8067AC8 + thumb_func_start ScrCmd_showcontestresults +ScrCmd_showcontestresults: @ 8067AC8 push {lr} bl sub_80C4940 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_8067AC8 + thumb_func_end ScrCmd_showcontestresults - thumb_func_start sub_8067AD8 -sub_8067AD8: @ 8067AD8 + thumb_func_start ScrCmd_contestlinktransfer +ScrCmd_contestlinktransfer: @ 8067AD8 push {lr} ldr r0, _08067AEC ldrb r0, [r0] @@ -5352,10 +3659,10 @@ sub_8067AD8: @ 8067AD8 bx r1 .align 2, 0 _08067AEC: .4byte 0x0203869c - thumb_func_end sub_8067AD8 + thumb_func_end ScrCmd_contestlinktransfer - thumb_func_start s9C_execute_HM -s9C_execute_HM: @ 8067AF0 + thumb_func_start ScrCmd_doanimation +ScrCmd_doanimation: @ 8067AF0 push {lr} bl script_read_halfword lsls r0, 16 @@ -5373,10 +3680,10 @@ s9C_execute_HM: @ 8067AF0 bx r1 .align 2, 0 _08067B14: .4byte 0x0202e8bc - thumb_func_end s9C_execute_HM + thumb_func_end ScrCmd_doanimation - thumb_func_start s9D_set_HM_animation_data -s9D_set_HM_animation_data: @ 8067B18 + thumb_func_start ScrCmd_setanimation +ScrCmd_setanimation: @ 8067B18 push {r4,lr} ldr r1, [r0, 0x8] ldrb r4, [r1] @@ -5398,7 +3705,7 @@ s9D_set_HM_animation_data: @ 8067B18 bx r1 .align 2, 0 _08067B44: .4byte 0x0202ff84 - thumb_func_end s9D_set_HM_animation_data + thumb_func_end ScrCmd_setanimation thumb_func_start sub_8067B48 sub_8067B48: @ 8067B48 @@ -5420,8 +3727,8 @@ _08067B62: bx r1 thumb_func_end sub_8067B48 - thumb_func_start s9E_checkarray_HM_animation -s9E_checkarray_HM_animation: @ 8067B68 + thumb_func_start ScrCmd_checkanimation +ScrCmd_checkanimation: @ 8067B68 push {r4,lr} adds r4, r0, 0 bl script_read_halfword @@ -5440,10 +3747,10 @@ s9E_checkarray_HM_animation: @ 8067B68 .align 2, 0 _08067B8C: .4byte 0x0202e8bc _08067B90: .4byte sub_8067B48 - thumb_func_end s9E_checkarray_HM_animation + thumb_func_end ScrCmd_checkanimation - thumb_func_start sub_8067B94 -sub_8067B94: @ 8067B94 + thumb_func_start ScrCmd_sethealplace +ScrCmd_sethealplace: @ 8067B94 push {lr} bl script_read_halfword lsls r0, 16 @@ -5455,10 +3762,10 @@ sub_8067B94: @ 8067B94 movs r0, 0 pop {r1} bx r1 - thumb_func_end sub_8067B94 + thumb_func_end ScrCmd_sethealplace - thumb_func_start sub_8067BB0 -sub_8067BB0: @ 8067BB0 + thumb_func_start ScrCmd_checkgender +ScrCmd_checkgender: @ 8067BB0 ldr r0, _08067BBC ldr r1, _08067BC0 ldrb r1, [r1, 0x8] @@ -5468,10 +3775,10 @@ sub_8067BB0: @ 8067BB0 .align 2, 0 _08067BBC: .4byte 0x0202e8dc _08067BC0: .4byte gSaveBlock2 - thumb_func_end sub_8067BB0 + thumb_func_end ScrCmd_checkgender - thumb_func_start sA1_play_cry -sA1_play_cry: @ 8067BC4 + thumb_func_start ScrCmd_pokecry +ScrCmd_pokecry: @ 8067BC4 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -5495,10 +3802,10 @@ sA1_play_cry: @ 8067BC4 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sA1_play_cry + thumb_func_end ScrCmd_pokecry - thumb_func_start sub_8067BFC -sub_8067BFC: @ 8067BFC + thumb_func_start ScrCmd_waitpokecry +ScrCmd_waitpokecry: @ 8067BFC push {lr} ldr r1, _08067C0C bl script_setup_asm_script @@ -5507,10 +3814,10 @@ sub_8067BFC: @ 8067BFC bx r1 .align 2, 0 _08067C0C: .4byte sub_8075374 - thumb_func_end sub_8067BFC + thumb_func_end ScrCmd_waitpokecry - thumb_func_start sA2_setmaptile -sA2_setmaptile: @ 8067C10 + thumb_func_start ScrCmd_setmaptile +ScrCmd_setmaptile: @ 8067C10 push {r4-r7,lr} adds r4, r0, 0 bl script_read_halfword @@ -5566,10 +3873,10 @@ _08067C86: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sA2_setmaptile + thumb_func_end ScrCmd_setmaptile - thumb_func_start sAC_open_door -sAC_open_door: @ 8067C90 + thumb_func_start ScrCmd_setdooropened +ScrCmd_setdooropened: @ 8067C90 push {r4,r5,lr} adds r4, r0, 0 bl script_read_halfword @@ -5606,10 +3913,10 @@ sAC_open_door: @ 8067C90 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sAC_open_door + thumb_func_end ScrCmd_setdooropened - thumb_func_start sub_8067CE8 -sub_8067CE8: @ 8067CE8 + thumb_func_start ScrCmd_setdoorclosed +ScrCmd_setdoorclosed: @ 8067CE8 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -5639,7 +3946,7 @@ sub_8067CE8: @ 8067CE8 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8067CE8 + thumb_func_end ScrCmd_setdoorclosed thumb_func_start sub_8067D2C sub_8067D2C: @ 8067D2C @@ -5657,8 +3964,8 @@ _08067D3E: bx r1 thumb_func_end sub_8067D2C - thumb_func_start sub_8067D44 -sub_8067D44: @ 8067D44 + thumb_func_start ScrCmd_doorchange +ScrCmd_doorchange: @ 8067D44 push {lr} ldr r1, _08067D54 bl script_setup_asm_script @@ -5667,10 +3974,10 @@ sub_8067D44: @ 8067D44 bx r1 .align 2, 0 _08067D54: .4byte sub_8067D2C - thumb_func_end sub_8067D44 + thumb_func_end ScrCmd_doorchange - thumb_func_start sub_8067D58 -sub_8067D58: @ 8067D58 + thumb_func_start ScrCmd_setdooropened2 +ScrCmd_setdooropened2: @ 8067D58 push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -5700,10 +4007,10 @@ sub_8067D58: @ 8067D58 pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8067D58 + thumb_func_end ScrCmd_setdooropened2 - thumb_func_start sub_8067D9C -sub_8067D9C: @ 8067D9C + thumb_func_start ScrCmd_setdoorclosed2 +ScrCmd_setdoorclosed2: @ 8067D9C push {r4,r5,lr} adds r5, r0, 0 bl script_read_halfword @@ -5733,10 +4040,10 @@ sub_8067D9C: @ 8067D9C pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8067D9C + thumb_func_end ScrCmd_setdoorclosed2 - thumb_func_start sub_8067DE0 -sub_8067DE0: @ 8067DE0 + thumb_func_start ScrCmd_event_b1 +ScrCmd_event_b1: @ 8067DE0 push {r4-r6,lr} mov r6, r8 push {r6} @@ -5784,20 +4091,20 @@ sub_8067DE0: @ 8067DE0 pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8067DE0 + thumb_func_end ScrCmd_event_b1 - thumb_func_start sub_8067E4C -sub_8067E4C: @ 8067E4C + thumb_func_start ScrCmd_event_b2 +ScrCmd_event_b2: @ 8067E4C push {lr} bl sub_810E824 bl sub_80655F0 movs r0, 0x1 pop {r1} bx r1 - thumb_func_end sub_8067E4C + thumb_func_end ScrCmd_event_b2 - thumb_func_start sB3_get_coin_amount -sB3_get_coin_amount: @ 8067E5C + thumb_func_start ScrCmd_checkcoins +ScrCmd_checkcoins: @ 8067E5C push {r4,lr} bl script_read_halfword lsls r0, 16 @@ -5810,10 +4117,10 @@ sB3_get_coin_amount: @ 8067E5C pop {r4} pop {r1} bx r1 - thumb_func_end sB3_get_coin_amount + thumb_func_end ScrCmd_checkcoins - thumb_func_start sub_8067E7C -sub_8067E7C: @ 8067E7C + thumb_func_start ScrCmd_givecoins +ScrCmd_givecoins: @ 8067E7C push {lr} bl script_read_halfword lsls r0, 16 @@ -5841,10 +4148,10 @@ _08067EA8: bx r1 .align 2, 0 _08067EB0: .4byte 0x0202e8dc - thumb_func_end sub_8067E7C + thumb_func_end ScrCmd_givecoins - thumb_func_start sub_8067EB4 -sub_8067EB4: @ 8067EB4 + thumb_func_start ScrCmd_removecoins +ScrCmd_removecoins: @ 8067EB4 push {lr} bl script_read_halfword lsls r0, 16 @@ -5872,7 +4179,7 @@ _08067EE0: bx r1 .align 2, 0 _08067EE8: .4byte 0x0202e8dc - thumb_func_end sub_8067EB4 + thumb_func_end ScrCmd_removecoins thumb_func_start sub_8067EEC sub_8067EEC: @ 8067EEC diff --git a/data/data2.s b/data/data2.s index a555f2e3e..0f92d4ab9 100644 --- a/data/data2.s +++ b/data/data2.s @@ -7062,8 +7062,9 @@ gUnknown_083761F0:: @ 83761F0 gMessageBoxTilemap:: @ 8376290 .incbin "graphics/text_window/message_box_map.bin" + .align 2 gUnknown_083762D8:: @ 83762D8 - .space 4 + .4byte NULL gUnknown_083762DC:: @ 83762DC .incbin "baserom.gba", 0x003762dc, 0x14 diff --git a/data/script_cmd_table.s b/data/script_cmd_table.s index 696b20f40..a68f2ca8d 100644 --- a/data/script_cmd_table.s +++ b/data/script_cmd_table.s @@ -1,203 +1,203 @@ .align 2 gScriptCmdTable:: @ 814AE30 - .4byte s00_nop - .4byte sub_8065870 - .4byte s02_end - .4byte s03_return - .4byte s04_call - .4byte s05_goto - .4byte s06_if_jump - .4byte s07_if_call - .4byte s08_jumpstd - .4byte s09_callstd - .4byte s0A_jumpstd_if - .4byte s0B_callstd_if - .4byte s0C_restore_execution_after_sCF - .4byte s0D_endscript_killram - .4byte s0E_set_byte - .4byte s0F_u32_var_to_const - .4byte sub_8065C44 - .4byte s11_u8_ptr_to_const - .4byte s12_u32_var_to_ptr - .4byte s13_u8_var_to_ptr - .4byte s14_u32_var_to_var - .4byte s15_u8_ptr_to_ptr - .4byte s16_u16_gvar_to_const - .4byte s17_u16_gvar_add_const - .4byte sub_8065EDC - .4byte s19_u16_gvar_gvar - .4byte s1A_u16_gvar_gvar - .4byte s1B_cmp_u8_var_var - .4byte s1C_cmp_u8_var_const - .4byte s1D_cmp_u8_var_ptr - .4byte s1E_cmp_u8_ptr_var - .4byte s1F_cmp_u8_ptr_const - .4byte s20_cmp_u8_ptr_ptr - .4byte s21_cmp_u16_gvar_const - .4byte s22_cmp_u16_gvar_gvar - .4byte sub_80658EC - .4byte s24_execute_ASM_2 - .4byte sub_8065898 - .4byte sub_80658B8 - .4byte sub_80658FC - .4byte s28_pause - .4byte s29_flag_set - .4byte s2A_flag_clear - .4byte s2B_flag_check - .4byte s2C_unknown - .4byte s2D_unknown - .4byte s2E_unknown - .4byte s2F_music_play - .4byte sub_806697C - .4byte s31_fanfare_play - .4byte sub_80669B4 - .4byte s33_play_music - .4byte s34_unknown - .4byte s35_fade_to_default - .4byte s36_fade_to_music - .4byte s37_fadeout - .4byte s38_fadein - .4byte s39_warp_sfx - .4byte s3A_warp_new_music - .4byte s3B_warp_keep_music - .4byte sub_806657C - .4byte s3D_warp_v4 - .4byte s3E_set_new_map - .4byte s3F_set_new_map_DMA - .4byte sub_806677C - .4byte sub_80667FC - .4byte sub_80668FC - .4byte s43_get_player_party_count - .4byte sub_8065F40 - .4byte sub_8065F84 - .4byte sub_8065FC8 - .4byte sub_806600C - .4byte s48_get_item_type - .4byte sub_806607C - .4byte sub_80660C0 - .4byte sub_8066104 - .4byte sub_8066130 - .4byte sub_8066188 - .4byte sub_806615C - .4byte s4F_execute_movement - .4byte s50_execute_movement_remote - .4byte s51_waitmove - .4byte s52_waitmove_remote - .4byte sub_8066BD8 - .4byte s54_hide_sprite_set_coords - .4byte sub_8066C30 - .4byte s56_show_sprite_set_coords - .4byte s57_move_sprites - .4byte s58_npc_f1_clear_x20 - .4byte s59_npc_f1_set_x20 - .4byte s5A_face_player - .4byte s5B_npc_set_direction - .4byte s5C_trainer_battle_configure_and_start - .4byte sub_8067908 - .4byte sub_8067914 - .4byte sub_8067928 - .4byte s60_check_trainer_flag - .4byte s61_set_trainer_flag - .4byte s62_unset_trainer_flag - .4byte s63_new_sprite_location_permanent - .4byte s64_set_sprite_top_left_corner - .4byte s65_set_sprite_behaviour - .4byte sub_80670A0 - .4byte s67_execute_box - .4byte s68_close_box - .4byte sub_8066F58 - .4byte sub_8066F80 - .4byte s6B_release - .4byte s6C_release_2 - .4byte sub_80670E8 - .4byte s6E_yes_no - .4byte sub_8067128 - .4byte sub_8067164 - .4byte sub_80671E0 - .4byte sub_80671B4 - .4byte sub_8067230 - .4byte s6F_multichoice - .4byte sub_8067298 - .4byte s76_close_picture_box - .4byte s77_showcontestwinner - .4byte sub_806730C - .4byte s79_give_pokemon - .4byte s7A_create_egg - .4byte s7B_change_pokedata_AP - .4byte sub_80676E0 - .4byte s7D_load_pokename - .4byte s7E_load_first_pokenames - .4byte s7F_load_pokename_team - .4byte s80_load_item_name - .4byte sub_8067488 - .4byte s82_load_item_name - .4byte s83_load_textvar_var - .4byte s84_load_textvar_std_expression - .4byte s85_load_textvar_pointer - .4byte s86_pokemart - .4byte s87_pokemartdecor - .4byte s88_pokemartbp - .4byte s89_open_casino_game1 - .4byte berry_script_cmd - .4byte sub_8067AA8 - .4byte sub_8067AB8 - .4byte sub_8067AC8 - .4byte sub_8067AD8 - .4byte s8F_get_random_val - .4byte sub_806775C - .4byte sub_8067788 - .4byte s92_check_money - .4byte sub_80677F4 - .4byte sub_806782C - .4byte sub_8067848 - .4byte sub_8067A7C - .4byte s97_screen_special_effect - .4byte sub_8066290 - .4byte sub_806622C - .4byte s9A_unknown - .4byte s9B_unknown - .4byte s9C_execute_HM - .4byte s9D_set_HM_animation_data - .4byte s9E_checkarray_HM_animation - .4byte sub_8067B94 - .4byte sub_8067BB0 - .4byte sA1_play_cry - .4byte sA2_setmaptile - .4byte sA3_set_standard_weather_data - .4byte sA4_set_weather_data - .4byte sub_80663A4 - .4byte sA6_activate_per_step_callback_eg_ash - .4byte sub_80663C8 - .4byte sA8_unknown - .4byte sA9_unknown - .4byte sAA_create_new_sprite - .4byte sAB_unknown - .4byte sAC_open_door - .4byte sub_8067CE8 - .4byte sub_8067D44 - .4byte sub_8067D58 - .4byte sub_8067D9C - .4byte sub_8067DE0 - .4byte sub_8067E4C - .4byte sB3_get_coin_amount - .4byte sub_8067E7C - .4byte sub_8067EB4 - .4byte sB6_load_battle - .4byte sub_80679CC - .4byte sB8_set_virtual_address - .4byte sB9_virtual_jump - .4byte sBA_virtual_call - .4byte sBB_virtual_if_jump - .4byte sBC_virtual_if_call - .4byte sBD_virtual_message - .4byte sBE_virtual_load_text - .4byte sBF_virtual_load_textbuffer - .4byte sub_8067880 - .4byte sub_80678AC - .4byte sub_80678C8 - .4byte sC3_unknown - .4byte sC4_unknown - .4byte sub_8067BFC + .4byte ScrCmd_snop + .4byte ScrCmd_snop1 + .4byte ScrCmd_end + .4byte ScrCmd_return + .4byte ScrCmd_call + .4byte ScrCmd_jump + .4byte ScrCmd_jumpif + .4byte ScrCmd_callif + .4byte ScrCmd_jumpstd + .4byte ScrCmd_callstd + .4byte ScrCmd_jumpstdif + .4byte ScrCmd_callstdif + .4byte ScrCmd_jumpram + .4byte ScrCmd_die + .4byte ScrCmd_setbyte + .4byte ScrCmd_loadptr + .4byte ScrCmd_setbufferbyte + .4byte ScrCmd_writebytetooffset + .4byte ScrCmd_loadbytefrompointer + .4byte ScrCmd_setptrbyte + .4byte ScrCmd_copybuffers + .4byte ScrCmd_copybyte + .4byte ScrCmd_setvar + .4byte ScrCmd_addvar + .4byte ScrCmd_subvar + .4byte ScrCmd_copyvar + .4byte ScrCmd_setorcopyvar + .4byte ScrCmd_comparebuffers + .4byte ScrCmd_comparebuffertobyte + .4byte ScrCmd_comparebuffertoptrbyte + .4byte ScrCmd_compareptrbytetobuffer + .4byte ScrCmd_compareptrbytetobyte + .4byte ScrCmd_compareptrbytes + .4byte ScrCmd_compare + .4byte ScrCmd_comparevars + .4byte ScrCmd_callasm + .4byte ScrCmd_jumpasm + .4byte ScrCmd_special + .4byte ScrCmd_specialval + .4byte ScrCmd_waitstate + .4byte ScrCmd_pause + .4byte ScrCmd_setflag + .4byte ScrCmd_clearflag + .4byte ScrCmd_checkflag + .4byte ScrCmd_compareflags + .4byte ScrCmd_checkdailyflags + .4byte ScrCmd_resetvars + .4byte ScrCmd_playsfx + .4byte ScrCmd_checksound + .4byte ScrCmd_fanfare + .4byte ScrCmd_waitfanfare + .4byte ScrCmd_playmusic + .4byte ScrCmd_playmusicbattle + .4byte ScrCmd_fadedefault + .4byte ScrCmd_fademusic + .4byte ScrCmd_fadeout + .4byte ScrCmd_fadein + .4byte ScrCmd_warp + .4byte ScrCmd_warpmuted + .4byte ScrCmd_warpwalk + .4byte ScrCmd_warphole + .4byte ScrCmd_warpteleport + .4byte ScrCmd_warp3 + .4byte ScrCmd_warpplace + .4byte ScrCmd_warp4 + .4byte ScrCmd_warp5 + .4byte ScrCmd_getplayerxy + .4byte ScrCmd_countpokemon + .4byte ScrCmd_additem + .4byte ScrCmd_removeitem + .4byte ScrCmd_checkitemspace + .4byte ScrCmd_checkitem + .4byte ScrCmd_checkitemtype + .4byte ScrCmd_addpcitem + .4byte ScrCmd_checkpcitem + .4byte ScrCmd_adddecor + .4byte ScrCmd_removedecor + .4byte ScrCmd_testdecor + .4byte ScrCmd_checkdecor + .4byte ScrCmd_move + .4byte ScrCmd_movecoords + .4byte ScrCmd_waitmove + .4byte ScrCmd_waitmovexy + .4byte ScrCmd_disappear + .4byte ScrCmd_disappearxy + .4byte ScrCmd_reappear + .4byte ScrCmd_reappearxy + .4byte ScrCmd_movesprite + .4byte ScrCmd_spritevisible + .4byte ScrCmd_spriteinvisible + .4byte ScrCmd_faceplayer + .4byte ScrCmd_spriteface + .4byte ScrCmd_trainerbattle + .4byte ScrCmd_reptrainerbattle + .4byte ScrCmd_endtrainerbattle + .4byte ScrCmd_endtrainerbattle2 + .4byte ScrCmd_checktrainerflag + .4byte ScrCmd_cleartrainerflag + .4byte ScrCmd_settrainerflag + .4byte ScrCmd_movespriteperm + .4byte ScrCmd_moveoffscreen + .4byte ScrCmd_spritebehave + .4byte ScrCmd_waittext + .4byte ScrCmd_message + .4byte ScrCmd_closebutton + .4byte ScrCmd_lockall + .4byte ScrCmd_lock + .4byte ScrCmd_releaseall + .4byte ScrCmd_release + .4byte ScrCmd_waitbutton + .4byte ScrCmd_yesnobox + .4byte ScrCmd_multichoice + .4byte ScrCmd_multichoicedef + .4byte ScrCmd_multichoicerow + .4byte ScrCmd_showbox + .4byte ScrCmd_hidebox + .4byte ScrCmd_clearbox + .4byte ScrCmd_showpokepic + .4byte ScrCmd_hidepokepic + .4byte ScrCmd_showcontestwinner + .4byte ScrCmd_braillemsg + .4byte ScrCmd_givepokemon + .4byte ScrCmd_giveegg + .4byte ScrCmd_setpokemove + .4byte ScrCmd_checkattack + .4byte ScrCmd_bufferpoke + .4byte ScrCmd_bufferfirstpoke + .4byte ScrCmd_bufferpartypoke + .4byte ScrCmd_bufferitem + .4byte ScrCmd_bufferdecor + .4byte ScrCmd_bufferattack + .4byte ScrCmd_buffernum + .4byte ScrCmd_bufferstd + .4byte ScrCmd_buffertext + .4byte ScrCmd_pokemart + .4byte ScrCmd_pokemartdecor + .4byte ScrCmd_pokemartbp + .4byte ScrCmd_pokecasino + .4byte ScrCmd_event_8a + .4byte ScrCmd_choosecontestpkmn + .4byte ScrCmd_startcontest + .4byte ScrCmd_showcontestresults + .4byte ScrCmd_contestlinktransfer + .4byte ScrCmd_random + .4byte ScrCmd_givemoney + .4byte ScrCmd_paymoney + .4byte ScrCmd_checkmoney + .4byte ScrCmd_showmoney + .4byte ScrCmd_hidemoney + .4byte ScrCmd_updatemoney + .4byte ScrCmd_event_96 + .4byte ScrCmd_fadescreen + .4byte ScrCmd_fadescreendelay + .4byte ScrCmd_darken + .4byte ScrCmd_lighten + .4byte ScrCmd_message2 + .4byte ScrCmd_doanimation + .4byte ScrCmd_setanimation + .4byte ScrCmd_checkanimation + .4byte ScrCmd_sethealplace + .4byte ScrCmd_checkgender + .4byte ScrCmd_pokecry + .4byte ScrCmd_setmaptile + .4byte ScrCmd_resetweather + .4byte ScrCmd_setweather + .4byte ScrCmd_doweather + .4byte ScrCmd_tileeffect + .4byte ScrCmd_setmapfooter + .4byte ScrCmd_spritelevelup + .4byte ScrCmd_restorespritelevel + .4byte ScrCmd_createvsprite + .4byte ScrCmd_vspriteface + .4byte ScrCmd_setdooropened + .4byte ScrCmd_setdoorclosed + .4byte ScrCmd_doorchange + .4byte ScrCmd_setdooropened2 + .4byte ScrCmd_setdoorclosed2 + .4byte ScrCmd_event_b1 + .4byte ScrCmd_event_b2 + .4byte ScrCmd_checkcoins + .4byte ScrCmd_givecoins + .4byte ScrCmd_removecoins + .4byte ScrCmd_setwildbattle + .4byte ScrCmd_dowildbattle + .4byte ScrCmd_setvaddress + .4byte ScrCmd_vjump + .4byte ScrCmd_vcall + .4byte ScrCmd_if5 + .4byte ScrCmd_if6 + .4byte ScrCmd_vtext + .4byte ScrCmd_vloadptr + .4byte ScrCmd_vbuffer + .4byte ScrCmd_showcoins + .4byte ScrCmd_hidecoins + .4byte ScrCmd_updatecoins + .4byte ScrCmd_inccounter + .4byte ScrCmd_warp6 + .4byte ScrCmd_waitpokecry gScriptCmdTableEnd:: - .4byte s00_nop + .4byte ScrCmd_snop diff --git a/ewram_syms.txt b/ewram_syms.txt index e39adbc85..7015c8a5f 100644 --- a/ewram_syms.txt +++ b/ewram_syms.txt @@ -33,6 +33,14 @@ gUnknown_02024E8C = 0x2024E8C; gSaveBlock2 = 0x2024EA4; +gSaveBlock1 = 0x2025734; + +gMapHeader = 0x202E828; + +gUnknown_0202E8AC = 0x202E8AC; +gUnknown_0202E8B0 = 0x202E8B0; +gScriptResult = 0x202E8DC; + gMenuWindow = 0x202E908; gMenuWindowPtr = 0x202E9C8; gMenuMultistepInitState = 0x202E9CC; diff --git a/include/fieldmap.h b/include/fieldmap.h new file mode 100644 index 000000000..1abef38da --- /dev/null +++ b/include/fieldmap.h @@ -0,0 +1,37 @@ +#ifndef GUARD_FIELDMAP_H +#define GUARD_FIELDMAP_H + +typedef void (*TilesetCB)(void); + +struct Tileset +{ + bool8 isCompressed; + bool8 isSecondary; + void *tiles; + void *palettes; + void *metatiles; + void *metatileAttributes; + TilesetCB callback; +}; + +struct MapData +{ + u32 width; + u32 height; + void *border; + void *map; + struct Tileset *primaryTileset; + struct Tileset *secondaryTileset; +}; + +struct MapHeader +{ + struct MapData *mapData; + void *events; + u8 *mapScripts; + // TODO: rest of struct +}; + +extern struct MapHeader gMapHeader; + +#endif // GUARD_FIELDMAP_H diff --git a/include/global.h b/include/global.h index e7e828aec..6fb9e2604 100644 --- a/include/global.h +++ b/include/global.h @@ -72,6 +72,39 @@ struct SecretBaseRecord u8 partyEVs[6]; }; +struct WarpData +{ + s8 mapGroup; + s8 mapNum; + u8 warpId; + s16 x, y; +}; + +struct RamScriptData +{ + u8 magic; + u8 mapGroup; + u8 mapNum; + u8 objectId; + u8 script[995]; +}; + +struct RamScript +{ + u32 checksum; + struct RamScriptData data; +}; + +struct SaveBlock1 +{ + struct Coords16 pos; + struct WarpData location; + u8 filler[0x3684]; + struct RamScript ramScript; +}; + +extern struct SaveBlock1 gSaveBlock1; + struct Time { s16 days; diff --git a/include/script.h b/include/script.h new file mode 100644 index 000000000..d38d176f1 --- /dev/null +++ b/include/script.h @@ -0,0 +1,43 @@ +#ifndef GUARD_SCRIPT_H +#define GUARD_SCRIPT_H + +struct ScriptContext; + +typedef bool8 (*ScrCmdFunc)(struct ScriptContext *); + +struct ScriptContext +{ + u8 stackDepth; + u8 mode; + u8 comparisonResult; + u8 (*nativePtr)(void); + u8 *scriptPtr; + u8 *stack[20]; + ScrCmdFunc *cmdTable; + ScrCmdFunc *cmdTableEnd; + u32 data[4]; +}; + +void script_env_init(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd); +u8 script_setup_bytecode_script(struct ScriptContext *ctx, void *ptr); +void script_setup_asm_script(struct ScriptContext *ctx, void *ptr); +void script_stop(struct ScriptContext *ctx); +u8 sub_80653EC(struct ScriptContext *ctx); +u8 script_stack_push(struct ScriptContext *ctx, u8 *ptr); +u8 *script_stack_pop(struct ScriptContext *ctx); +void script_jump(struct ScriptContext *ctx, u8 *ptr); +void script_call(struct ScriptContext *ctx, u8 *ptr); +void script_return(struct ScriptContext *ctx); +u16 script_read_halfword(struct ScriptContext *ctx); +u32 script_read_word(struct ScriptContext *ctx); +void script_env_2_enable(void); +void script_env_2_disable(void); +bool8 script_env_2_is_enabled(void); +void script_env_1_init(void); +bool8 script_env_2_run_current_script(void); +void script_env_1_execute_new_script(u8 *ptr); +void sub_80655F0(void); +void script_env_2_enable_and_set_ctx_running(); +void script_env_2_execute_new_script(u8 *ptr); + +#endif // GUARD_SCRIPT_H diff --git a/iwram_syms.txt b/iwram_syms.txt index e3171a2a9..d5112541f 100644 --- a/iwram_syms.txt +++ b/iwram_syms.txt @@ -2,6 +2,11 @@ gPlayTimeCounterState = 0x300057C; +sScriptContext1Status = 0x30005B0; +sScriptContext1 = 0x30005B8; +sScriptContext2 = 0x3000630; +sScriptContext2Enabled = 0x30006A4; + /* .bss.code starts at 0x3000F60 */ /* COMMON starts at 0x3001760 */ diff --git a/ld_script.txt b/ld_script.txt index aa9fe040c..0f55dc809 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -88,6 +88,8 @@ SECTIONS { src/play_time.o(.text); asm/rom4.o(.text); src/text_window.o(.text); + src/script.o(.text); + src/scrcmd.o(.text); asm/rom_8065394.o(.text); src/menu.o(.text); asm/rom_8072DF8.o(.text); diff --git a/src/scrcmd.c b/src/scrcmd.c new file mode 100644 index 000000000..def0a4d3a --- /dev/null +++ b/src/scrcmd.c @@ -0,0 +1,380 @@ +#include "global.h" +#include "script.h" +#include "rng.h" + +extern void killram(void); +extern u16 *GetVarPointer(u16); +extern u16 VarGet(u16); +extern void sub_8126160(u8); + +typedef u16 (*SpecialFunc)(void); +typedef void (*NativeFunc)(void); + +extern u32 gUnknown_0202E8AC; +extern u32 gUnknown_0202E8B0; +extern u16 gScriptResult; + +extern SpecialFunc gSpecials[]; +extern u8 *gStdScripts[]; +extern u8 *gStdScripts_End[]; +extern u8 gUnknown_083762DC[6][3]; + +bool8 ScrCmd_snop(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_snop1(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_end(struct ScriptContext *ctx) +{ + script_stop(ctx); + return FALSE; +} + +bool8 ScrCmd_jumpasm(struct ScriptContext *ctx) +{ + u32 addr = script_read_word(ctx); + script_setup_asm_script(ctx, (void *)addr); + return TRUE; +} + +bool8 ScrCmd_special(struct ScriptContext *ctx) +{ + u16 index = script_read_halfword(ctx); + gSpecials[index](); + return FALSE; +} + +bool8 ScrCmd_specialval(struct ScriptContext *ctx) +{ + u16 *var = GetVarPointer(script_read_halfword(ctx)); + *var = gSpecials[script_read_halfword(ctx)](); + return FALSE; +} + +bool8 ScrCmd_callasm(struct ScriptContext *ctx) +{ + NativeFunc func = (NativeFunc)script_read_word(ctx); + func(); + return FALSE; +} + +bool8 ScrCmd_waitstate(struct ScriptContext *ctx) +{ + sub_80655F0(); + return TRUE; +} + +bool8 ScrCmd_jump(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)script_read_word(ctx); + script_jump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_return(struct ScriptContext *ctx) +{ + script_return(ctx); + return FALSE; +} + +bool8 ScrCmd_call(struct ScriptContext *ctx) +{ + + u8 *ptr = (u8 *)script_read_word(ctx); + script_call(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_jumpif(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 *ptr = (u8 *)script_read_word(ctx); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + script_jump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_callif(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 *ptr = (u8 *)script_read_word(ctx); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + script_call(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_setvaddress(struct ScriptContext *ctx) +{ + u32 addr1 = (u32)ctx->scriptPtr - 1; + u32 addr2 = script_read_word(ctx); + gUnknown_0202E8B0 = addr2 - addr1; + return FALSE; +} + +bool8 ScrCmd_vjump(struct ScriptContext *ctx) +{ + u32 addr = script_read_word(ctx); + script_jump(ctx, (u8 *)(addr - gUnknown_0202E8B0)); + return FALSE; +} + +bool8 ScrCmd_vcall(struct ScriptContext *ctx) +{ + u32 addr = script_read_word(ctx); + script_call(ctx, (u8 *)(addr - gUnknown_0202E8B0)); + return FALSE; +} + +bool8 ScrCmd_if5(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 *ptr = (u8 *)(script_read_word(ctx) - gUnknown_0202E8B0); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + script_jump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_if6(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 *ptr = (u8 *)(script_read_word(ctx) - gUnknown_0202E8B0); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + script_call(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_jumpstd(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + script_jump(ctx, *ptr); + return FALSE; +} + +bool8 ScrCmd_callstd(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + script_call(ctx, *ptr); + return FALSE; +} + +bool8 ScrCmd_jumpstdif(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 index = *(ctx->scriptPtr++); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + { + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + script_jump(ctx, *ptr); + } + return FALSE; +} + +bool8 ScrCmd_callstdif(struct ScriptContext *ctx) +{ + u8 condition = *(ctx->scriptPtr++); + u8 index = *(ctx->scriptPtr++); + if (gUnknown_083762DC[condition][ctx->comparisonResult] == 1) + { + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + script_call(ctx, *ptr); + } + return FALSE; +} + +bool8 ScrCmd_jumpram(struct ScriptContext *ctx) +{ + script_jump(ctx, (u8 *)gUnknown_0202E8AC); + return FALSE; +} + +bool8 ScrCmd_die(struct ScriptContext *ctx) +{ + killram(); + script_stop(ctx); + return TRUE; +} + +bool8 ScrCmd_setbyte(struct ScriptContext *ctx) +{ + u8 value = *(ctx->scriptPtr++); + sub_8126160(value); + return FALSE; +} + +bool8 ScrCmd_loadptr(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + ctx->data[index] = script_read_word(ctx); + return FALSE; +} + +bool8 ScrCmd_loadbytefrompointer(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + ctx->data[index] = *(u8 *)script_read_word(ctx); + return FALSE; +} + +bool8 ScrCmd_writebytetooffset(struct ScriptContext *ctx) +{ + u8 value = *(ctx->scriptPtr++); + *(u8 *)script_read_word(ctx) = value; + return FALSE; +} + +bool8 ScrCmd_setbufferbyte(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + ctx->data[index] = *(ctx->scriptPtr++); + return FALSE; +} + +bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx) +{ + u8 index = *(ctx->scriptPtr++); + *(u8 *)script_read_word(ctx) = ctx->data[index]; + return FALSE; +} + +bool8 ScrCmd_copybuffers(struct ScriptContext *ctx) +{ + u8 destIndex = *(ctx->scriptPtr++); + u8 srcIndex = *(ctx->scriptPtr++); + ctx->data[destIndex] = ctx->data[srcIndex]; + return FALSE; +} + +bool8 ScrCmd_copybyte(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)script_read_word(ctx); + *ptr = *(u8 *)script_read_word(ctx); + return FALSE; +} + +bool8 ScrCmd_setvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(script_read_halfword(ctx)); + *ptr = script_read_halfword(ctx); + return FALSE; +} + +bool8 ScrCmd_copyvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(script_read_halfword(ctx)); + *ptr = *GetVarPointer(script_read_halfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(script_read_halfword(ctx)); + *ptr = VarGet(script_read_halfword(ctx)); + return FALSE; +} + +u8 compare_012(u16 a1, u16 a2) +{ + if (a1 < a2) + return 0; + + if (a1 == a2) + return 1; + + return 2; +} + +bool8 ScrCmd_comparebuffers(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[*(ctx->scriptPtr++)]; + u8 value2 = ctx->data[*(ctx->scriptPtr++)]; + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_comparebuffertobyte(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[*(ctx->scriptPtr++)]; + u8 value2 = *(ctx->scriptPtr++); + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_comparebuffertoptrbyte(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[*(ctx->scriptPtr++)]; + u8 value2 = *(u8 *)script_read_word(ctx); + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compareptrbytetobuffer(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)script_read_word(ctx); + u8 value2 = ctx->data[*(ctx->scriptPtr++)]; + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compareptrbytetobyte(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)script_read_word(ctx); + u8 value2 = *(ctx->scriptPtr++); + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compareptrbytes(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)script_read_word(ctx); + u8 value2 = *(u8 *)script_read_word(ctx); + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare(struct ScriptContext *ctx) +{ + u16 value1 = *GetVarPointer(script_read_halfword(ctx)); + u16 value2 = script_read_halfword(ctx); + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_comparevars(struct ScriptContext *ctx) +{ + u16 *ptr1 = GetVarPointer(script_read_halfword(ctx)); + u16 *ptr2 = GetVarPointer(script_read_halfword(ctx)); + ctx->comparisonResult = compare_012(*ptr1, *ptr2); + return FALSE; +} + +bool8 ScrCmd_addvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(script_read_halfword(ctx)); + *ptr += script_read_halfword(ctx); + return FALSE; +} + +bool8 ScrCmd_subvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(script_read_halfword(ctx)); + *ptr -= VarGet(script_read_halfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_random(struct ScriptContext *ctx) +{ + u16 max = VarGet(script_read_halfword(ctx)); + gScriptResult = Random() % max; + return FALSE; +} diff --git a/src/script.c b/src/script.c new file mode 100644 index 000000000..4bb4efdae --- /dev/null +++ b/src/script.c @@ -0,0 +1,369 @@ +#include "global.h" +#include "script.h" +#include "fieldmap.h" + +extern u16 VarGet(u16); + +extern u8 *gUnknown_0202E8AC; +extern u32 gUnknown_0202E8B0; + +extern u8 sScriptContext1Status; // 0x30005B0 +extern struct ScriptContext sScriptContext1; // 0x30005B8 +extern struct ScriptContext sScriptContext2; // 0x3000630 +extern bool8 sScriptContext2Enabled; // 0x30006A4 + +extern ScrCmdFunc gScriptCmdTable[]; +extern ScrCmdFunc gScriptCmdTableEnd[]; +extern void *gUnknown_083762D8; + +void script_env_init(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd) +{ + s32 i; + + ctx->mode = 0; + ctx->scriptPtr = 0; + ctx->stackDepth = 0; + ctx->nativePtr = 0; + ctx->cmdTable = cmdTable; + ctx->cmdTableEnd = cmdTableEnd; + + for (i = 0; i < 4; i++) + ctx->data[i] = 0; + + for (i = 0; i < 20; i++) + ctx->stack[i] = 0; +} + +u8 script_setup_bytecode_script(struct ScriptContext *ctx, void *ptr) +{ + ctx->scriptPtr = ptr; + ctx->mode = 1; + return 1; +} + +void script_setup_asm_script(struct ScriptContext *ctx, void *ptr) +{ + ctx->mode = 2; + ctx->nativePtr = ptr; +} + +void script_stop(struct ScriptContext *ctx) +{ + ctx->mode = 0; + ctx->scriptPtr = 0; +} + +u8 sub_80653EC(struct ScriptContext *ctx) +{ + if (ctx->mode == 0) + return 0; + + switch (ctx->mode) + { + case 0: + return 0; + case 2: + if (ctx->nativePtr) + { + if (ctx->nativePtr() == 1) + ctx->mode = 1; + return 1; + } + ctx->mode = 1; + case 1: + while (1) + { + u8 cmdCode; + ScrCmdFunc *func; + + if (!ctx->scriptPtr) + { + ctx->mode = 0; + return 0; + } + + if (ctx->scriptPtr == gUnknown_083762D8) + { + while (1) + asm("svc 2"); // HALT + } + + cmdCode = *(ctx->scriptPtr); + ctx->scriptPtr++; + func = &ctx->cmdTable[cmdCode]; + + if (func >= ctx->cmdTableEnd) + { + ctx->mode = 0; + return 0; + } + + if ((*func)(ctx) == 1) + return 1; + } + } + + return 1; +} + +u8 script_stack_push(struct ScriptContext *ctx, u8 *ptr) +{ + if (ctx->stackDepth + 1 >= 20) + { + return 1; + } + else + { + ctx->stack[ctx->stackDepth] = ptr; + ctx->stackDepth++; + return 0; + } +} + +u8 *script_stack_pop(struct ScriptContext *ctx) +{ + if (ctx->stackDepth == 0) + return NULL; + + ctx->stackDepth--; + return ctx->stack[ctx->stackDepth]; +} + +void script_jump(struct ScriptContext *ctx, u8 *ptr) +{ + ctx->scriptPtr = ptr; +} + +void script_call(struct ScriptContext *ctx, u8 *ptr) +{ + script_stack_push(ctx, ctx->scriptPtr); + ctx->scriptPtr = ptr; +} + +void script_return(struct ScriptContext *ctx) +{ + ctx->scriptPtr = script_stack_pop(ctx); +} + +u16 script_read_halfword(struct ScriptContext *ctx) +{ + u16 value = *(ctx->scriptPtr++); + value |= *(ctx->scriptPtr++) << 8; + return value; +} + +u32 script_read_word(struct ScriptContext *ctx) +{ + u32 value0 = *(ctx->scriptPtr++); + u32 value1 = *(ctx->scriptPtr++); + u32 value2 = *(ctx->scriptPtr++); + u32 value3 = *(ctx->scriptPtr++); + return (((((value3 << 8) + value2) << 8) + value1) << 8) + value0; +} + +void script_env_2_enable(void) +{ + sScriptContext2Enabled = TRUE; +} + +void script_env_2_disable(void) +{ + sScriptContext2Enabled = FALSE; +} + +bool8 script_env_2_is_enabled(void) +{ + return sScriptContext2Enabled; +} + +void script_env_1_init(void) +{ + script_env_init(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); + sScriptContext1Status = 2; +} + +bool8 script_env_2_run_current_script(void) +{ + if (sScriptContext1Status == 2) + return 0; + + if (sScriptContext1Status == 1) + return 0; + + script_env_2_enable(); + + if (!sub_80653EC(&sScriptContext1)) + { + sScriptContext1Status = 2; + script_env_2_disable(); + return 0; + } + + return 1; +} + +void script_env_1_execute_new_script(u8 *ptr) +{ + script_env_init(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); + script_setup_bytecode_script(&sScriptContext1, ptr); + script_env_2_enable(); + sScriptContext1Status = 0; +} + +void sub_80655F0(void) +{ + sScriptContext1Status = 1; +} + +void script_env_2_enable_and_set_ctx_running() +{ + sScriptContext1Status = 0; + script_env_2_enable(); +} + +void script_env_2_execute_new_script(u8 *ptr) +{ + script_env_init(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd); + script_setup_bytecode_script(&sScriptContext2, ptr); + while (sub_80653EC(&sScriptContext2) == 1) + ; +} + +u8 *mapheader_get_tagged_pointer(u8 tag) +{ + u8 *mapScripts = gMapHeader.mapScripts; + + if (!mapScripts) + return NULL; + + while (1) + { + if (!*mapScripts) + return NULL; + if (*mapScripts == tag) + { + mapScripts++; + return (u8 *)(mapScripts[0] + (mapScripts[1] << 8) + (mapScripts[2] << 16) + (mapScripts[3] << 24)); + } + mapScripts += 5; + } +} + +void mapheader_run_script_by_tag(u8 tag) +{ + u8 *ptr = mapheader_get_tagged_pointer(tag); + if (ptr) + script_env_2_execute_new_script(ptr); +} + +u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) +{ + u8 *ptr = mapheader_get_tagged_pointer(tag); + + if (!ptr) + return NULL; + + while (1) + { + u16 varIndex1; + u16 varIndex2; + varIndex1 = ptr[0] | (ptr[1] << 8); + if (!varIndex1) + return NULL; + ptr += 2; + varIndex2 = ptr[0] | (ptr[1] << 8); + ptr += 2; + if (VarGet(varIndex1) == VarGet(varIndex2)) + return (u8 *)(ptr[0] + (ptr[1] << 8) + (ptr[2] << 16) + (ptr[3] << 24)); + ptr += 4; + } +} + +void mapheader_run_script_with_tag_x1(void) +{ + mapheader_run_script_by_tag(1); +} + +void mapheader_run_script_with_tag_x3(void) +{ + mapheader_run_script_by_tag(3); +} + +void mapheader_run_script_with_tag_x5(void) +{ + mapheader_run_script_by_tag(5); +} + +void mapheader_run_script_with_tag_x6(void) +{ + mapheader_run_script_by_tag(6); +} + +bool8 mapheader_run_first_tag2_script_list_match(void) +{ + u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(2); + + if (!ptr) + return 0; + + script_env_1_execute_new_script(ptr); + return 1; +} + +void mapheader_run_first_tag4_script_list_match() +{ + u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4); + if (ptr) + script_env_2_execute_new_script(ptr); +} + +u32 sub_8065760(void) +{ + u32 i; + u32 sum = 0; + for (i = 0; i < sizeof(struct RamScriptData); i++) + sum += ((u8 *)&gSaveBlock1.ramScript.data)[i]; + return sum; +} + +void killram(void) +{ + CpuFill32(0, &gSaveBlock1.ramScript, sizeof(struct RamScript)); +} + +bool8 sub_80657A8(u8 *a1, u16 a2, u8 a3, u8 a4, u8 a5) +{ + struct RamScriptData *scriptData = &gSaveBlock1.ramScript.data; + + killram(); + + if (a2 > 995) + return FALSE; + + scriptData->magic = 51; + scriptData->mapGroup = a3; + scriptData->mapNum = a4; + scriptData->objectId = a5; + memcpy(scriptData->script, a1, a2); + gSaveBlock1.ramScript.checksum = sub_8065760(); + return TRUE; +} + +u8 *sub_806580C(u8 a1, u8 *a2) +{ + struct RamScriptData *scriptData = &gSaveBlock1.ramScript.data; + gUnknown_0202E8AC = 0; + if (scriptData->magic == 51 + && scriptData->mapGroup == gSaveBlock1.location.mapGroup + && scriptData->mapNum == gSaveBlock1.location.mapNum + && scriptData->objectId == a1) + { + if (sub_8065760() == gSaveBlock1.ramScript.checksum) + { + gUnknown_0202E8AC = a2; + return scriptData->script; + } + killram(); + } + return a2; +} |