From 04fa09ec818c0ee780069b1aef63cb9e8f55b68f Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Fri, 16 Sep 2022 10:48:13 -0700 Subject: [PATCH] more decomping --- asm/code_800558C.s | 1286 --------------------------------- asm/code_8005838.s | 1129 +++++++++++++++++++++++++++++ asm/ground_map_1.s | 552 -------------- asm/ground_script.s | 229 ------ asm/makuhita_dojo.s | 43 +- data/data_80DED44.s | 274 ------- data/data_8106F7C.s | 6 +- data/data_8115EB8.s | 4 +- include/dungeon_global_data.h | 2 +- include/menu.h | 2 +- include/rescue_team_info.h | 2 +- ld_script.txt | 8 + src/code_800558C_1.c | 99 +++ src/code_80A26CC.c | 31 +- src/ground_map_2.c | 267 +++++++ src/ground_script.c | 130 ++++ src/makuhita_dojo.c | 20 +- src/makuhita_dojo_1.c | 52 ++ src/pelipper_board.c | 6 + src/pelipper_board_1.c | 4 +- src/rescue_team_info.c | 4 +- src/wonder_mail_3_mid.c | 138 +++- src/wonder_mail_6.c | 67 +- 23 files changed, 1926 insertions(+), 2429 deletions(-) create mode 100644 asm/code_8005838.s create mode 100644 src/code_800558C_1.c create mode 100644 src/ground_map_2.c create mode 100644 src/ground_script.c create mode 100644 src/makuhita_dojo_1.c diff --git a/asm/code_800558C.s b/asm/code_800558C.s index 9ae474ae2..50cc2309b 100644 --- a/asm/code_800558C.s +++ b/asm/code_800558C.s @@ -273,1290 +273,4 @@ _0800575C: bx r0 thumb_func_end sub_8005700 - thumb_func_start sub_8005764 -sub_8005764: - push {lr} - ldr r1, [r1, 0x4] - bl sub_8005770 - pop {r0} - bx r0 - thumb_func_end sub_8005764 - - thumb_func_start sub_8005770 -sub_8005770: - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r2 - adds r7, r3, 0 - movs r5, 0 - adds r0, 0x10 - lsls r6, r0, 4 - adds r4, r1, 0 -_08005782: - adds r0, r6, r5 - adds r1, r4, 0 - mov r2, r8 - adds r3, r7, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x4 - adds r5, 0x1 - cmp r5, 0xF - ble _08005782 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8005770 - - thumb_func_start nullsub_7 -nullsub_7: - bx lr - thumb_func_end nullsub_7 - - thumb_func_start nullsub_8 -nullsub_8: - bx lr - thumb_func_end nullsub_8 - - thumb_func_start nullsub_9 -nullsub_9: - bx lr - thumb_func_end nullsub_9 - - thumb_func_start nullsub_10 -nullsub_10: - bx lr - thumb_func_end nullsub_10 - - thumb_func_start nullsub_144 -nullsub_144: - bx lr - thumb_func_end nullsub_144 - - thumb_func_start nullsub_11 -nullsub_11: - bx lr - thumb_func_end nullsub_11 - - thumb_func_start nullsub_12 -nullsub_12: - bx lr - thumb_func_end nullsub_12 - - thumb_func_start nullsub_13 -nullsub_13: - bx lr - thumb_func_end nullsub_13 - - thumb_func_start nullsub_145 -nullsub_145: - bx lr - thumb_func_end nullsub_145 - - thumb_func_start nullsub_14 -nullsub_14: - bx lr - thumb_func_end nullsub_14 - - thumb_func_start nullsub_146 -nullsub_146: - bx lr - thumb_func_end nullsub_146 - - thumb_func_start nullsub_147 -nullsub_147: - bx lr - thumb_func_end nullsub_147 - - thumb_func_start nullsub_148 -nullsub_148: - bx lr - thumb_func_end nullsub_148 - - thumb_func_start nullsub_149 -nullsub_149: - bx lr - thumb_func_end nullsub_149 - - thumb_func_start sub_80057D8 -sub_80057D8: - movs r0, 0 - bx lr - thumb_func_end sub_80057D8 - - thumb_func_start sub_80057DC -sub_80057DC: - movs r0, 0 - bx lr - thumb_func_end sub_80057DC - - thumb_func_start nullsub_150 -nullsub_150: - bx lr - thumb_func_end nullsub_150 - - thumb_func_start nullsub_151 -nullsub_151: - bx lr - thumb_func_end nullsub_151 - - thumb_func_start sub_80057E8 -sub_80057E8: - ldr r1, _08005814 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _08005818 - movs r2, 0 - str r2, [r0] - ldr r1, _0800581C - movs r0, 0x1 - str r0, [r1] - ldr r0, _08005820 - str r2, [r0] - ldr r0, _08005824 - str r2, [r0] - ldr r0, _08005828 - strb r2, [r0] - ldr r1, _0800582C - ldr r3, _08005830 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08005834 - str r2, [r0] - bx lr - .align 2, 0 -_08005814: .4byte gUnknown_2026E4C -_08005818: .4byte gUnknown_2026E54 -_0800581C: .4byte gUnknown_2026E50 -_08005820: .4byte gUnknown_2026E58 -_08005824: .4byte gUnknown_2026E3C -_08005828: .4byte gUnknown_2026E38 -_0800582C: .4byte gUnknown_2026E4E -_08005830: .4byte 0x0000060c -_08005834: .4byte gUnknown_203B078 - thumb_func_end sub_80057E8 - - thumb_func_start sub_8005838 -sub_8005838: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08005880 - ldrb r0, [r0] - cmp r0, 0 - bne _08005854 - movs r1, 0 -_08005854: - ldr r0, _08005884 - ldr r0, [r0] - ldr r3, _08005888 - cmp r0, 0 - bne _08005860 - ldr r3, _0800588C -_08005860: - ldr r0, _08005890 - ldr r2, [r0] - cmp r2, 0 - bne _0800586A - ldr r2, _08005894 -_0800586A: - ldr r0, _08005898 - str r3, [r0] - cmp r1, 0x5 - bls _08005876 - bl _08006094 -_08005876: - lsls r0, r1, 2 - ldr r1, _0800589C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08005880: .4byte gUnknown_2026E4C -_08005884: .4byte gUnknown_2026E54 -_08005888: .4byte gUnknown_20270E8 -_0800588C: .4byte gUnknown_2026E60 -_08005890: .4byte gUnknown_203B078 -_08005894: .4byte gUnknown_80B83EA -_08005898: .4byte gUnknown_2026E58 -_0800589C: .4byte _080058A0 - .align 2, 0 -_080058A0: - .4byte _080058B8 - .4byte _08005984 - .4byte _08005A98 - .4byte _08005BAC - .4byte _08005D46 - .4byte _08005E58 -_080058B8: - movs r1, 0 - movs r7, 0x9 -_080058BC: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _080058BC - b _08006094 -_08005984: - ldr r1, _08005A94 - movs r7, 0x9 -_08005988: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - blt _08005A90 - b _08005988 -_08005A90: - b _08006094 - .align 2, 0 -_08005A94: .4byte gUnknown_80B816A -_08005A98: - ldr r1, _08005BA8 - movs r7, 0x9 -_08005A9C: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - blt _08005BA4 - b _08005A9C -_08005BA4: - b _08006094 - .align 2, 0 -_08005BA8: .4byte gUnknown_80B802A -_08005BAC: - ldr r0, [r5] - mov r10, r0 - cmp r0, 0 - bge _08005BBA - ldr r0, [r5, 0x8] - cmp r0, 0 - blt _08005BDC -_08005BBA: - ldr r1, [r5, 0x4] - cmp r1, 0 - bge _08005BC6 - ldr r0, [r5, 0xC] - cmp r0, 0 - blt _08005BDC -_08005BC6: - mov r4, r10 - cmp r4, 0xEF - ble _08005BD2 - ldr r0, [r5, 0x8] - cmp r0, 0xEF - bgt _08005BDC -_08005BD2: - cmp r1, 0x9F - ble _08005CA8 - ldr r0, [r5, 0xC] - cmp r0, 0x9F - ble _08005CA8 -_08005BDC: - movs r1, 0xF0 - movs r7, 0x9 -_08005BE0: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08005BE0 - b _08006094 -_08005CA8: - movs r7, 0 - mov r8, r1 - movs r6, 0x80 - lsls r6, 1 - mov r12, r6 - lsls r0, r1, 1 - ldr r1, _08005CCC - subs r6, r1, r0 - mov r9, r10 -_08005CBA: - cmp r8, r7 - ble _08005CD0 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - mov r4, r12 - strh r4, [r3] - b _08005D3A - .align 2, 0 -_08005CCC: .4byte gUnknown_80B8008 -_08005CD0: - ldr r1, [r5, 0xC] - cmp r1, r7 - bgt _08005CE2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - mov r0, r12 - b _08005D38 -_08005CE2: - mov r4, r8 - subs r0, r7, r4 - cmp r0, 0xF - bgt _08005CF0 - movs r0, 0 - ldrsh r1, [r6, r0] - b _08005D00 -_08005CF0: - subs r0, r1, r7 - cmp r0, 0xF - bgt _08005D10 - lsls r0, 1 - ldr r1, _08005D0C - adds r0, r1 - movs r4, 0 - ldrsh r1, [r0, r4] -_08005D00: - mov r0, r9 - adds r4, r0, r1 - ldr r0, [r5, 0x8] - subs r1, r0, r1 - b _08005D14 - .align 2, 0 -_08005D0C: .4byte gUnknown_80B8008 -_08005D10: - mov r4, r10 - ldr r1, [r5, 0x8] -_08005D14: - cmp r4, 0 - bge _08005D1A - movs r4, 0 -_08005D1A: - cmp r4, 0xEF - ble _08005D20 - movs r4, 0xEF -_08005D20: - cmp r1, 0 - bgt _08005D26 - movs r1, 0x1 -_08005D26: - cmp r1, 0xF0 - ble _08005D2C - movs r1, 0xF0 -_08005D2C: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - lsls r0, r1, 8 - orrs r0, r4 -_08005D38: - strh r0, [r3] -_08005D3A: - adds r3, 0x2 - adds r6, 0x2 - adds r7, 0x1 - cmp r7, 0x9F - ble _08005CBA - b _08006094 -_08005D46: - ldr r1, _08005E54 - movs r7, 0xE -_08005D4A: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - blt _08005E52 - b _08005D4A -_08005E52: - b _08006094 - .align 2, 0 -_08005E54: .4byte gUnknown_80B82AA -_08005E58: - ldr r4, _08005FF4 - ldr r5, _08005FF8 - ldr r6, _08005FFC - movs r0, 0x80 - lsls r0, 1 - adds r1, r0, 0 - movs r7, 0xE -_08005E66: - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - ldrh r0, [r2] - strh r0, [r3] - adds r2, 0x2 - adds r3, 0x2 - strh r1, [r3] - adds r3, 0x2 - subs r7, 0x1 - cmp r7, 0 - bge _08005E66 - ldr r4, [r4] - str r4, [sp] - ldr r5, [r5] - str r5, [sp, 0x4] - ldr r6, [r6] - str r6, [sp, 0x8] - adds r1, r6, 0 - cmp r6, 0 - bge _08005F40 - adds r1, 0xFF -_08005F40: - asrs r1, 8 - adds r1, 0x1 - movs r0, 0x80 - lsls r0, 3 - bl __divsi3 - str r0, [sp, 0xC] - ldr r0, [sp, 0x4] - cmp r0, 0 - bge _08005F56 - adds r0, 0xFF -_08005F56: - asrs r4, r0, 8 - adds r5, r4, 0 - movs r3, 0 - lsls r0, r4, 2 - adds r7, r0, 0x2 - mov r9, r7 -_08005F62: - adds r0, r3, 0 - str r3, [sp, 0x10] - bl sub_8009C7C - ldr r1, [sp, 0x8] - muls r0, r1 - ldr r3, [sp, 0x10] - cmp r0, 0 - bge _08005F76 - adds r0, 0xFF -_08005F76: - asrs r0, 8 - ldr r2, [sp, 0x4] - adds r1, r2, r0 - cmp r1, 0 - bge _08005F82 - adds r1, 0xFF -_08005F82: - asrs r1, 8 - str r1, [sp, 0x14] - ldr r6, [sp, 0x4] - subs r0, r6, r0 - cmp r0, 0 - bge _08005F90 - adds r0, 0xFF -_08005F90: - asrs r0, 8 - mov r8, r0 - ldr r0, [sp, 0x14] - cmp r5, r0 - blt _08005FA4 - ldr r1, [sp, 0xC] - adds r1, r3 - mov r10, r1 - cmp r4, r8 - ble _0800608A -_08005FA4: - adds r0, r3, 0 - str r3, [sp, 0x10] - bl sub_8009D04 - ldr r2, [sp, 0x8] - muls r0, r2 - ldr r3, [sp, 0x10] - cmp r0, 0 - bge _08005FB8 - adds r0, 0xFF -_08005FB8: - asrs r0, 8 - ldr r6, [sp] - subs r1, r6, r0 - cmp r1, 0 - bge _08005FC4 - adds r1, 0xFF -_08005FC4: - asrs r1, 8 - ldr r2, [sp] - adds r0, r2, r0 - cmp r0, 0 - bge _08005FD0 - adds r0, 0xFF -_08005FD0: - asrs r0, 8 - cmp r1, 0 - bge _08005FD8 - movs r1, 0 -_08005FD8: - cmp r0, 0 - bge _08005FDE - movs r0, 0 -_08005FDE: - cmp r1, 0xEF - ble _08005FE4 - movs r1, 0x9F -_08005FE4: - cmp r0, 0xEF - ble _08005FEA - movs r0, 0x9F -_08005FEA: - cmp r1, r0 - ble _08006000 - lsls r2, r1, 8 - orrs r2, r0 - b _08006004 - .align 2, 0 -_08005FF4: .4byte gUnknown_2026E40 -_08005FF8: .4byte gUnknown_2026E44 -_08005FFC: .4byte gUnknown_2026E48 -_08006000: - lsls r2, r0, 8 - orrs r2, r1 -_08006004: - ldr r6, [sp, 0xC] - adds r3, r6 - mov r10, r3 - ldr r0, [sp, 0x14] - cmp r5, r0 - bge _0800604E - ldr r1, _08006030 - mov r12, r1 - ldr r3, _08006034 - add r3, r9 - ldr r1, _08006038 - add r1, r9 -_0800601C: - cmp r5, 0 - blt _0800603E - cmp r5, 0x9F - bgt _0800603E - mov r6, r12 - ldr r0, [r6] - cmp r0, 0 - bne _0800603C - strh r2, [r1] - b _0800603E - .align 2, 0 -_08006030: .4byte gUnknown_2026E54 -_08006034: .4byte gUnknown_20270E8 -_08006038: .4byte gUnknown_2026E60 -_0800603C: - strh r2, [r3] -_0800603E: - adds r3, 0x4 - adds r1, 0x4 - movs r0, 0x4 - add r9, r0 - adds r5, 0x1 - ldr r6, [sp, 0x14] - cmp r5, r6 - blt _0800601C -_0800604E: - cmp r4, r8 - ble _0800608A - ldr r6, _08006070 - ldr r0, _08006074 - adds r3, r7, r0 - ldr r0, _08006078 - adds r1, r7, r0 -_0800605C: - cmp r4, 0 - blt _0800607E - cmp r4, 0x9F - bgt _0800607E - ldr r0, [r6] - cmp r0, 0 - bne _0800607C - strh r2, [r1] - b _0800607E - .align 2, 0 -_08006070: .4byte gUnknown_2026E54 -_08006074: .4byte gUnknown_20270E8 -_08006078: .4byte gUnknown_2026E60 -_0800607C: - strh r2, [r3] -_0800607E: - subs r3, 0x4 - subs r1, 0x4 - subs r7, 0x4 - subs r4, 0x1 - cmp r4, r8 - bgt _0800605C -_0800608A: - mov r3, r10 - ldr r0, _080060A4 - cmp r3, r0 - bgt _08006094 - b _08005F62 -_08006094: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080060A4: .4byte 0x000003ff - thumb_func_end sub_8005838 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_8005838.s b/asm/code_8005838.s new file mode 100644 index 000000000..61622f438 --- /dev/null +++ b/asm/code_8005838.s @@ -0,0 +1,1129 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8005838 +sub_8005838: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08005880 + ldrb r0, [r0] + cmp r0, 0 + bne _08005854 + movs r1, 0 +_08005854: + ldr r0, _08005884 + ldr r0, [r0] + ldr r3, _08005888 + cmp r0, 0 + bne _08005860 + ldr r3, _0800588C +_08005860: + ldr r0, _08005890 + ldr r2, [r0] + cmp r2, 0 + bne _0800586A + ldr r2, _08005894 +_0800586A: + ldr r0, _08005898 + str r3, [r0] + cmp r1, 0x5 + bls _08005876 + bl _08006094 +_08005876: + lsls r0, r1, 2 + ldr r1, _0800589C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08005880: .4byte gUnknown_2026E4C +_08005884: .4byte gUnknown_2026E54 +_08005888: .4byte gUnknown_20270E8 +_0800588C: .4byte gUnknown_2026E60 +_08005890: .4byte gUnknown_203B078 +_08005894: .4byte gUnknown_80B83EA +_08005898: .4byte gUnknown_2026E58 +_0800589C: .4byte _080058A0 + .align 2, 0 +_080058A0: + .4byte _080058B8 + .4byte _08005984 + .4byte _08005A98 + .4byte _08005BAC + .4byte _08005D46 + .4byte _08005E58 +_080058B8: + movs r1, 0 + movs r7, 0x9 +_080058BC: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _080058BC + b _08006094 +_08005984: + ldr r1, _08005A94 + movs r7, 0x9 +_08005988: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + blt _08005A90 + b _08005988 +_08005A90: + b _08006094 + .align 2, 0 +_08005A94: .4byte gUnknown_80B816A +_08005A98: + ldr r1, _08005BA8 + movs r7, 0x9 +_08005A9C: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + blt _08005BA4 + b _08005A9C +_08005BA4: + b _08006094 + .align 2, 0 +_08005BA8: .4byte gUnknown_80B802A +_08005BAC: + ldr r0, [r5] + mov r10, r0 + cmp r0, 0 + bge _08005BBA + ldr r0, [r5, 0x8] + cmp r0, 0 + blt _08005BDC +_08005BBA: + ldr r1, [r5, 0x4] + cmp r1, 0 + bge _08005BC6 + ldr r0, [r5, 0xC] + cmp r0, 0 + blt _08005BDC +_08005BC6: + mov r4, r10 + cmp r4, 0xEF + ble _08005BD2 + ldr r0, [r5, 0x8] + cmp r0, 0xEF + bgt _08005BDC +_08005BD2: + cmp r1, 0x9F + ble _08005CA8 + ldr r0, [r5, 0xC] + cmp r0, 0x9F + ble _08005CA8 +_08005BDC: + movs r1, 0xF0 + movs r7, 0x9 +_08005BE0: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08005BE0 + b _08006094 +_08005CA8: + movs r7, 0 + mov r8, r1 + movs r6, 0x80 + lsls r6, 1 + mov r12, r6 + lsls r0, r1, 1 + ldr r1, _08005CCC + subs r6, r1, r0 + mov r9, r10 +_08005CBA: + cmp r8, r7 + ble _08005CD0 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + mov r4, r12 + strh r4, [r3] + b _08005D3A + .align 2, 0 +_08005CCC: .4byte gUnknown_80B8008 +_08005CD0: + ldr r1, [r5, 0xC] + cmp r1, r7 + bgt _08005CE2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + mov r0, r12 + b _08005D38 +_08005CE2: + mov r4, r8 + subs r0, r7, r4 + cmp r0, 0xF + bgt _08005CF0 + movs r0, 0 + ldrsh r1, [r6, r0] + b _08005D00 +_08005CF0: + subs r0, r1, r7 + cmp r0, 0xF + bgt _08005D10 + lsls r0, 1 + ldr r1, _08005D0C + adds r0, r1 + movs r4, 0 + ldrsh r1, [r0, r4] +_08005D00: + mov r0, r9 + adds r4, r0, r1 + ldr r0, [r5, 0x8] + subs r1, r0, r1 + b _08005D14 + .align 2, 0 +_08005D0C: .4byte gUnknown_80B8008 +_08005D10: + mov r4, r10 + ldr r1, [r5, 0x8] +_08005D14: + cmp r4, 0 + bge _08005D1A + movs r4, 0 +_08005D1A: + cmp r4, 0xEF + ble _08005D20 + movs r4, 0xEF +_08005D20: + cmp r1, 0 + bgt _08005D26 + movs r1, 0x1 +_08005D26: + cmp r1, 0xF0 + ble _08005D2C + movs r1, 0xF0 +_08005D2C: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + lsls r0, r1, 8 + orrs r0, r4 +_08005D38: + strh r0, [r3] +_08005D3A: + adds r3, 0x2 + adds r6, 0x2 + adds r7, 0x1 + cmp r7, 0x9F + ble _08005CBA + b _08006094 +_08005D46: + ldr r1, _08005E54 + movs r7, 0xE +_08005D4A: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + ldrh r0, [r1] + strh r0, [r3] + adds r1, 0x2 + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + blt _08005E52 + b _08005D4A +_08005E52: + b _08006094 + .align 2, 0 +_08005E54: .4byte gUnknown_80B82AA +_08005E58: + ldr r4, _08005FF4 + ldr r5, _08005FF8 + ldr r6, _08005FFC + movs r0, 0x80 + lsls r0, 1 + adds r1, r0, 0 + movs r7, 0xE +_08005E66: + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + ldrh r0, [r2] + strh r0, [r3] + adds r2, 0x2 + adds r3, 0x2 + strh r1, [r3] + adds r3, 0x2 + subs r7, 0x1 + cmp r7, 0 + bge _08005E66 + ldr r4, [r4] + str r4, [sp] + ldr r5, [r5] + str r5, [sp, 0x4] + ldr r6, [r6] + str r6, [sp, 0x8] + adds r1, r6, 0 + cmp r6, 0 + bge _08005F40 + adds r1, 0xFF +_08005F40: + asrs r1, 8 + adds r1, 0x1 + movs r0, 0x80 + lsls r0, 3 + bl __divsi3 + str r0, [sp, 0xC] + ldr r0, [sp, 0x4] + cmp r0, 0 + bge _08005F56 + adds r0, 0xFF +_08005F56: + asrs r4, r0, 8 + adds r5, r4, 0 + movs r3, 0 + lsls r0, r4, 2 + adds r7, r0, 0x2 + mov r9, r7 +_08005F62: + adds r0, r3, 0 + str r3, [sp, 0x10] + bl sub_8009C7C + ldr r1, [sp, 0x8] + muls r0, r1 + ldr r3, [sp, 0x10] + cmp r0, 0 + bge _08005F76 + adds r0, 0xFF +_08005F76: + asrs r0, 8 + ldr r2, [sp, 0x4] + adds r1, r2, r0 + cmp r1, 0 + bge _08005F82 + adds r1, 0xFF +_08005F82: + asrs r1, 8 + str r1, [sp, 0x14] + ldr r6, [sp, 0x4] + subs r0, r6, r0 + cmp r0, 0 + bge _08005F90 + adds r0, 0xFF +_08005F90: + asrs r0, 8 + mov r8, r0 + ldr r0, [sp, 0x14] + cmp r5, r0 + blt _08005FA4 + ldr r1, [sp, 0xC] + adds r1, r3 + mov r10, r1 + cmp r4, r8 + ble _0800608A +_08005FA4: + adds r0, r3, 0 + str r3, [sp, 0x10] + bl sub_8009D04 + ldr r2, [sp, 0x8] + muls r0, r2 + ldr r3, [sp, 0x10] + cmp r0, 0 + bge _08005FB8 + adds r0, 0xFF +_08005FB8: + asrs r0, 8 + ldr r6, [sp] + subs r1, r6, r0 + cmp r1, 0 + bge _08005FC4 + adds r1, 0xFF +_08005FC4: + asrs r1, 8 + ldr r2, [sp] + adds r0, r2, r0 + cmp r0, 0 + bge _08005FD0 + adds r0, 0xFF +_08005FD0: + asrs r0, 8 + cmp r1, 0 + bge _08005FD8 + movs r1, 0 +_08005FD8: + cmp r0, 0 + bge _08005FDE + movs r0, 0 +_08005FDE: + cmp r1, 0xEF + ble _08005FE4 + movs r1, 0x9F +_08005FE4: + cmp r0, 0xEF + ble _08005FEA + movs r0, 0x9F +_08005FEA: + cmp r1, r0 + ble _08006000 + lsls r2, r1, 8 + orrs r2, r0 + b _08006004 + .align 2, 0 +_08005FF4: .4byte gUnknown_2026E40 +_08005FF8: .4byte gUnknown_2026E44 +_08005FFC: .4byte gUnknown_2026E48 +_08006000: + lsls r2, r0, 8 + orrs r2, r1 +_08006004: + ldr r6, [sp, 0xC] + adds r3, r6 + mov r10, r3 + ldr r0, [sp, 0x14] + cmp r5, r0 + bge _0800604E + ldr r1, _08006030 + mov r12, r1 + ldr r3, _08006034 + add r3, r9 + ldr r1, _08006038 + add r1, r9 +_0800601C: + cmp r5, 0 + blt _0800603E + cmp r5, 0x9F + bgt _0800603E + mov r6, r12 + ldr r0, [r6] + cmp r0, 0 + bne _0800603C + strh r2, [r1] + b _0800603E + .align 2, 0 +_08006030: .4byte gUnknown_2026E54 +_08006034: .4byte gUnknown_20270E8 +_08006038: .4byte gUnknown_2026E60 +_0800603C: + strh r2, [r3] +_0800603E: + adds r3, 0x4 + adds r1, 0x4 + movs r0, 0x4 + add r9, r0 + adds r5, 0x1 + ldr r6, [sp, 0x14] + cmp r5, r6 + blt _0800601C +_0800604E: + cmp r4, r8 + ble _0800608A + ldr r6, _08006070 + ldr r0, _08006074 + adds r3, r7, r0 + ldr r0, _08006078 + adds r1, r7, r0 +_0800605C: + cmp r4, 0 + blt _0800607E + cmp r4, 0x9F + bgt _0800607E + ldr r0, [r6] + cmp r0, 0 + bne _0800607C + strh r2, [r1] + b _0800607E + .align 2, 0 +_08006070: .4byte gUnknown_2026E54 +_08006074: .4byte gUnknown_20270E8 +_08006078: .4byte gUnknown_2026E60 +_0800607C: + strh r2, [r3] +_0800607E: + subs r3, 0x4 + subs r1, 0x4 + subs r7, 0x4 + subs r4, 0x1 + cmp r4, r8 + bgt _0800605C +_0800608A: + mov r3, r10 + ldr r0, _080060A4 + cmp r3, r0 + bgt _08006094 + b _08005F62 +_08006094: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080060A4: .4byte 0x000003ff + thumb_func_end sub_8005838 + + .align 2,0 diff --git a/asm/ground_map_1.s b/asm/ground_map_1.s index fa10e6fd0..70580dfb4 100644 --- a/asm/ground_map_1.s +++ b/asm/ground_map_1.s @@ -2488,556 +2488,4 @@ _080A5E5A: _080A5E6C: .4byte gUnknown_3001B70 thumb_func_end sub_80A59DC - thumb_func_start sub_80A5E70 -sub_80A5E70: - push {lr} - ldr r0, _080A5E88 - ldr r0, [r0] - cmp r0, 0 - beq _080A5E7E - bl sub_80A49E8 -_080A5E7E: - bl sub_80A62D0 - pop {r0} - bx r0 - .align 2, 0 -_080A5E88: .4byte gUnknown_3001B70 - thumb_func_end sub_80A5E70 - - thumb_func_start sub_80A5E8C -sub_80A5E8C: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080A5EB4 - movs r0, 0x24 - movs r1, 0x6 - bl MemoryAlloc - str r0, [r5] - ldr r1, _080A5EB8 - strh r1, [r0] - movs r1, 0 - strb r1, [r0, 0x2] - adds r0, r4, 0 - bl sub_80A5EDC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5EB4: .4byte gUnknown_3001B74 -_080A5EB8: .4byte 0x0000ffff - thumb_func_end sub_80A5E8C - - thumb_func_start sub_80A5EBC -sub_80A5EBC: - push {r4,lr} - movs r0, 0 - bl sub_80A5EDC - ldr r4, _080A5ED8 - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5ED8: .4byte gUnknown_3001B74 - thumb_func_end sub_80A5EBC - - thumb_func_start sub_80A5EDC -sub_80A5EDC: - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - movs r6, 0x1 - negs r6, r6 - movs r0, 0 - movs r1, 0x1B - adds r2, r6, 0 - bl sub_80018D8 - ldr r0, _080A5F34 - ldr r1, [r0] - ldr r0, _080A5F38 - strh r0, [r1] - strb r5, [r1, 0x2] - ldr r4, _080A5F3C - ldr r0, [r4] - cmp r0, 0 - beq _080A5F12 - bl sub_80A2D00 - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080A5F12: - cmp r5, 0 - beq _080A5F2E - ldr r0, _080A5F40 - movs r1, 0x6 - bl MemoryAlloc - str r0, [r4] - ldr r1, _080A5F44 - bl sub_80A2B40 - ldr r0, [r4] - adds r1, r6, 0 - bl sub_80A2FBC -_080A5F2E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5F34: .4byte gUnknown_3001B74 -_080A5F38: .4byte 0x0000ffff -_080A5F3C: .4byte gUnknown_3001B78 -_080A5F40: .4byte 0x0000055c -_080A5F44: .4byte gUnknown_8117784 - thumb_func_end sub_80A5EDC - - thumb_func_start nullsub_121 -nullsub_121: - bx lr - thumb_func_end nullsub_121 - - thumb_func_start nullsub_122 -nullsub_122: - bx lr - thumb_func_end nullsub_122 - - thumb_func_start GroundWeather_Select -GroundWeather_Select: - push {r4-r7,lr} - lsls r0, 16 - asrs r5, r0, 16 - adds r7, r5, 0 - ldr r1, _080A5F94 - ldr r6, _080A5F98 - ldr r0, [r6] - ldrb r3, [r0, 0x2] - movs r0, 0 - adds r2, r5, 0 - bl Log - movs r0, 0 - movs r1, 0x1B - adds r2, r5, 0 - bl sub_80018D8 - ldr r0, [r6] - movs r4, 0 - strh r5, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0 - bne _080A5F80 - b _080A60B4 -_080A5F80: - movs r0, 0x1 - negs r0, r0 - cmp r5, r0 - bne _080A5FA0 - ldr r0, _080A5F9C - ldr r0, [r0] - adds r1, r5, 0 - bl sub_80A2FBC - b _080A60B4 - .align 2, 0 -_080A5F94: .4byte gUnknown_811779C -_080A5F98: .4byte gUnknown_3001B74 -_080A5F9C: .4byte gUnknown_3001B78 -_080A5FA0: - lsls r1, r7, 2 - ldr r0, _080A5FD8 - adds r5, r1, r0 - ldr r0, _080A5FDC - ldr r0, [r0] - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl sub_80A2FBC - ldr r0, [r6] - str r4, [r0, 0x4] - str r4, [r0, 0x8] - str r4, [r0, 0xC] - str r4, [r0, 0x10] - str r4, [r0, 0x20] - str r4, [r0, 0x1C] - str r4, [r0, 0x18] - str r4, [r0, 0x14] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0xF - bhi _080A6098 - lsls r0, 2 - ldr r1, _080A5FE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A5FD8: .4byte gUnknown_811E5F4 -_080A5FDC: .4byte gUnknown_3001B78 -_080A5FE0: .4byte _080A5FE4 - .align 2, 0 -_080A5FE4: - .4byte _080A6088 - .4byte _080A6098 - .4byte _080A6098 - .4byte _080A6088 - .4byte _080A6088 - .4byte _080A6088 - .4byte _080A6098 - .4byte _080A6040 - .4byte _080A6088 - .4byte _080A6024 - .4byte _080A6098 - .4byte _080A6098 - .4byte _080A6098 - .4byte _080A6098 - .4byte _080A6050 - .4byte _080A606C -_080A6024: - ldr r0, _080A6034 - ldr r0, [r0] - movs r1, 0x1 - bl sub_80A3BB0 - ldr r1, _080A6038 - ldr r2, _080A603C - b _080A60B0 - .align 2, 0 -_080A6034: .4byte gUnknown_3001B78 -_080A6038: .4byte gUnknown_2026E4E -_080A603C: .4byte 0x0000040c -_080A6040: - ldr r1, _080A6048 - ldr r2, _080A604C - b _080A60B0 - .align 2, 0 -_080A6048: .4byte gUnknown_2026E4E -_080A604C: .4byte 0x00000808 -_080A6050: - ldr r0, _080A6060 - ldr r0, [r0] - movs r1, 0x1 - bl sub_80A3BB0 - ldr r1, _080A6064 - ldr r2, _080A6068 - b _080A60B0 - .align 2, 0 -_080A6060: .4byte gUnknown_3001B78 -_080A6064: .4byte gUnknown_2026E4E -_080A6068: .4byte 0x00001010 -_080A606C: - ldr r0, _080A607C - ldr r0, [r0] - movs r1, 0x1 - bl sub_80A3BB0 - ldr r1, _080A6080 - ldr r2, _080A6084 - b _080A60B0 - .align 2, 0 -_080A607C: .4byte gUnknown_3001B78 -_080A6080: .4byte gUnknown_2026E4E -_080A6084: .4byte 0x0000040c -_080A6088: - ldr r1, _080A6090 - ldr r2, _080A6094 - b _080A60B0 - .align 2, 0 -_080A6090: .4byte gUnknown_2026E4E -_080A6094: .4byte 0x00001010 -_080A6098: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080A60AA - ldr r0, _080A60BC - ldr r0, [r0] - movs r1, 0x1 - bl sub_80A3BB0 -_080A60AA: - ldr r1, _080A60C0 - movs r2, 0x80 - lsls r2, 5 -_080A60B0: - adds r0, r2, 0 - strh r0, [r1] -_080A60B4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A60BC: .4byte gUnknown_3001B78 -_080A60C0: .4byte gUnknown_2026E4E - thumb_func_end GroundWeather_Select - - thumb_func_start sub_80A60C4 -sub_80A60C4: - ldr r0, _080A60D0 - ldr r0, [r0] - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_080A60D0: .4byte gUnknown_3001B74 - thumb_func_end sub_80A60C4 - - thumb_func_start nullsub_123 -nullsub_123: - bx lr - thumb_func_end nullsub_123 - - thumb_func_start sub_80A60D8 -sub_80A60D8: - push {r4-r6,lr} - sub sp, 0x28 - ldr r0, _080A6104 - ldr r3, [r0] - ldrb r1, [r3, 0x2] - adds r6, r0, 0 - cmp r1, 0 - bne _080A60EA - b _080A62C0 -_080A60EA: - ldrh r0, [r3] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bls _080A60F8 - b _080A6278 -_080A60F8: - lsls r0, 2 - ldr r1, _080A6108 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A6104: .4byte gUnknown_3001B74 -_080A6108: .4byte _080A610C - .align 2, 0 -_080A610C: - .4byte _080A62AC - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6278 - .4byte _080A6150 - .4byte _080A61CC - .4byte _080A61CC - .4byte _080A61CC - .4byte _080A61CC - .4byte _080A61D0 - .4byte _080A6224 -_080A6150: - ldr r2, [r6] - ldr r1, [r2, 0x4] - adds r0, r1, 0x2 - str r0, [r2, 0x4] - ldr r4, [r2, 0x8] - adds r3, r4, 0x1 - str r3, [r2, 0x8] - cmp r0, 0 - bge _080A6164 - adds r0, r1, 0x5 -_080A6164: - asrs r1, r0, 2 - ldr r0, [r2, 0xC] - adds r0, r1 - str r0, [r2, 0xC] - adds r1, r3, 0 - cmp r1, 0 - bge _080A6174 - adds r1, r4, 0x4 -_080A6174: - asrs r1, 2 - ldr r0, [r2, 0x10] - adds r0, r1 - str r0, [r2, 0x10] - ldr r4, _080A61C8 - ldr r0, [r4] - adds r2, 0xC - movs r1, 0 - bl sub_80A4580 - ldr r1, [r6] - ldr r0, [r1, 0x4] - movs r2, 0x3 - ands r0, r2 - str r0, [r1, 0x4] - ldr r0, [r1, 0x8] - ands r0, r2 - str r0, [r1, 0x8] - mov r0, sp - bl sub_80A56C0 - ldr r2, [r6] - ldr r0, [sp] - ldr r1, [r2, 0xC] - subs r0, r1 - str r0, [sp] - ldr r0, [sp, 0x4] - ldr r1, [r2, 0x10] - adds r0, r1 - str r0, [sp, 0x4] - ldr r0, [r4] - movs r1, 0 - mov r2, sp - bl sub_80A4580 - ldr r0, [r4] - movs r1, 0 - mov r2, sp - bl sub_80A456C - b _080A62B8 - .align 2, 0 -_080A61C8: .4byte gUnknown_3001B78 -_080A61CC: - add r4, sp, 0x8 - b _080A628E -_080A61D0: - ldr r2, [r6] - ldr r1, [r2, 0x4] - adds r0, r1, 0x1 - str r0, [r2, 0x4] - cmp r0, 0 - bge _080A61DE - adds r0, r1, 0x4 -_080A61DE: - asrs r1, r0, 2 - ldr r0, [r2, 0xC] - adds r0, r1 - str r0, [r2, 0xC] - ldr r5, _080A6220 - ldr r0, [r5] - adds r2, 0xC - movs r1, 0 - bl sub_80A4580 - ldr r2, [r6] - ldr r0, [r2, 0x4] - movs r1, 0x3 - ands r0, r1 - str r0, [r2, 0x4] - add r4, sp, 0x10 - adds r0, r4, 0 - bl sub_80A56C0 - ldr r1, [r6] - ldr r0, [sp, 0x10] - ldr r1, [r1, 0xC] - subs r0, r1 - str r0, [sp, 0x10] - movs r0, 0 - str r0, [r4, 0x4] - ldr r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl sub_80A4580 - ldr r0, [r5] - b _080A6298 - .align 2, 0 -_080A6220: .4byte gUnknown_3001B78 -_080A6224: - ldr r2, [r6] - ldr r1, [r2, 0x4] - adds r0, r1, 0x2 - str r0, [r2, 0x4] - cmp r0, 0 - bge _080A6232 - adds r0, r1, 0x5 -_080A6232: - asrs r1, r0, 2 - ldr r0, [r2, 0xC] - adds r0, r1 - str r0, [r2, 0xC] - ldr r5, _080A6274 - ldr r0, [r5] - adds r2, 0xC - movs r1, 0 - bl sub_80A4580 - ldr r2, [r6] - ldr r0, [r2, 0x4] - movs r1, 0x3 - ands r0, r1 - str r0, [r2, 0x4] - add r4, sp, 0x18 - adds r0, r4, 0 - bl sub_80A56C0 - ldr r1, [r6] - ldr r0, [sp, 0x18] - ldr r1, [r1, 0xC] - subs r0, r1 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [r4, 0x4] - ldr r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl sub_80A4580 - ldr r0, [r5] - b _080A6298 - .align 2, 0 -_080A6274: .4byte gUnknown_3001B78 -_080A6278: - ldr r0, [r6] - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r0, 2 - ldr r1, _080A62A4 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080A62AC - add r4, sp, 0x20 -_080A628E: - adds r0, r4, 0 - bl sub_80A56C0 - ldr r0, _080A62A8 - ldr r0, [r0] -_080A6298: - movs r1, 0 - adds r2, r4, 0 - bl sub_80A456C - b _080A62B8 - .align 2, 0 -_080A62A4: .4byte gUnknown_811E5F4 -_080A62A8: .4byte gUnknown_3001B78 -_080A62AC: - ldr r0, _080A62C8 - ldr r0, [r0] - ldr r2, _080A62CC - movs r1, 0 - bl sub_80A456C -_080A62B8: - ldr r0, _080A62C8 - ldr r0, [r0] - bl sub_80A4764 -_080A62C0: - add sp, 0x28 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A62C8: .4byte gUnknown_3001B78 -_080A62CC: .4byte gUnknown_81177BC - thumb_func_end sub_80A60D8 - - thumb_func_start sub_80A62D0 -sub_80A62D0: - push {lr} - ldr r0, _080A62E8 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _080A62E4 - ldr r0, _080A62EC - ldr r0, [r0] - bl sub_80A49E8 -_080A62E4: - pop {r0} - bx r0 - .align 2, 0 -_080A62E8: .4byte gUnknown_3001B74 -_080A62EC: .4byte gUnknown_3001B78 - thumb_func_end sub_80A62D0 - .align 2,0 diff --git a/asm/ground_script.s b/asm/ground_script.s index 7c9d08e2a..9d98617bc 100644 --- a/asm/ground_script.s +++ b/asm/ground_script.s @@ -5,184 +5,6 @@ .text - thumb_func_start GroundScript_ExecutePP -GroundScript_ExecutePP: - push {r4-r7,lr} - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - cmp r6, 0 - beq _0809D7A2 - ldr r0, [r6] - cmp r0, 0 - bne _0809D7A6 -_0809D7A2: - movs r0, 0 - b _0809D8B8 -_0809D7A6: - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bhi _0809D858 - lsls r0, 2 - ldr r1, _0809D7B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809D7B8: .4byte _0809D7BC - .align 2, 0 -_0809D7BC: - .4byte _0809D830 - .4byte _0809D84A - .4byte _0809D7D4 - .4byte _0809D7D4 - .4byte _0809D858 - .4byte _0809D7EE -_0809D7D4: - movs r3, 0x24 - ldrsh r0, [r5, r3] - cmp r0, 0x1 - beq _0809D838 - adds r4, r5, 0 - adds r4, 0x24 - cmp r0, 0x5 - bne _0809D86C - adds r0, r5, 0 - adds r0, 0x84 - bl sub_809D568 - b _0809D86C -_0809D7EE: - movs r1, 0x24 - ldrsh r0, [r5, r1] - cmp r0, 0x2 - beq _0809D808 - ldr r0, _0809D800 - ldr r1, _0809D804 - bl FatalError - .align 2, 0 -_0809D800: .4byte gUnknown_8116538 -_0809D804: .4byte gUnknown_8116544 -_0809D808: - adds r2, r5, 0 - adds r2, 0x84 - movs r3, 0 - ldrsh r1, [r2, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809D828 - ldr r0, _0809D820 - ldr r1, _0809D824 - bl FatalError - .align 2, 0 -_0809D820: .4byte gUnknown_8116560 -_0809D824: .4byte gUnknown_811656C -_0809D828: - adds r4, r5, 0 - adds r4, 0x24 - adds r0, r2, 0 - b _0809D840 -_0809D830: - movs r1, 0x24 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _0809D84A -_0809D838: - adds r0, r5, 0 - adds r0, 0x84 - adds r4, r5, 0 - adds r4, 0x24 -_0809D840: - adds r1, r4, 0 - movs r2, 0x60 - bl memcpy - b _0809D86C -_0809D84A: - adds r0, r5, 0 - adds r0, 0x84 - bl sub_809D568 - adds r4, r5, 0 - adds r4, 0x24 - b _0809D86C -_0809D858: - ldr r0, _0809D864 - ldr r1, _0809D868 - movs r3, 0x4 - ldrsh r2, [r6, r3] - bl FatalError - .align 2, 0 -_0809D864: .4byte gUnknown_8116588 -_0809D868: .4byte gUnknown_8116594 -_0809D86C: - adds r0, r4, 0 - bl sub_809D568 - cmp r7, 0 - beq _0809D87C - ldr r0, [r7] - str r0, [r5, 0xC] - b _0809D884 -_0809D87C: - adds r0, r5, 0 - adds r0, 0xC - bl sub_809D520 -_0809D884: - ldrh r0, [r6, 0x4] - movs r1, 0 - strh r0, [r5, 0x24] - movs r0, 0x3 - strh r0, [r5, 0x26] - ldrh r0, [r6, 0x6] - strh r0, [r5, 0x30] - ldrb r0, [r6, 0x8] - adds r2, r5, 0 - adds r2, 0x32 - strb r0, [r2] - ldr r0, [r6] - str r0, [r5, 0x28] - str r0, [r5, 0x2C] - str r1, [r5, 0x34] - str r1, [r5, 0x38] - ldr r0, [r5] - ldr r2, [r0, 0x14] - cmp r2, 0 - beq _0809D8B6 - ldr r0, [r5, 0x4] - adds r1, r5, 0 - adds r1, 0x4A - bl _call_via_r2 -_0809D8B6: - movs r0, 0x1 -_0809D8B8: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GroundScript_ExecutePP - - thumb_func_start sub_809D8C0 -sub_809D8C0: - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r3, 0 - lsls r2, 16 - asrs r2, 16 - mov r1, sp - bl sub_809D6E4 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl GroundScript_ExecutePP - lsls r0, 24 - lsrs r0, 24 - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809D8C0 - thumb_func_start sub_809D8EC sub_809D8EC: push {r4,r5,lr} @@ -9130,55 +8952,4 @@ sub_80A2598: bx r0 thumb_func_end sub_80A2598 - thumb_func_start sub_80A25AC -sub_80A25AC: - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_8098F88 - lsls r0, 24 - cmp r0, 0 - beq _080A25C2 - adds r0, r4, 0 - b _080A2602 -_080A25C2: - cmp r4, 0x32 - bne _080A25CA - movs r0, 0x32 - b _080A2602 -_080A25CA: - movs r0, 0xC - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - bne _080A25E0 - ldr r0, _080A25DC - b _080A2602 - .align 2, 0 -_080A25DC: .4byte 0x000003e7 -_080A25E0: - movs r0, 0xD - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _080A25F0 - movs r0, 0x13 - b _080A2602 -_080A25F0: - cmp r4, 0x1 - bne _080A2600 - movs r0, 0 - movs r1, 0x28 - bl sub_8001658 - movs r0, 0x1 - b _080A2602 -_080A2600: - adds r0, r5, 0 -_080A2602: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A25AC - .align 2,0 diff --git a/asm/makuhita_dojo.s b/asm/makuhita_dojo.s index e19ef0c30..3e1671740 100644 --- a/asm/makuhita_dojo.s +++ b/asm/makuhita_dojo.s @@ -210,7 +210,7 @@ _0803010C: .align 2, 0 _08030138: .4byte gPlayerName _0803013C: .4byte gUnknown_203B318 -_08030140: .4byte gUnknown_80E0778 +_08030140: .4byte gMakuhitaDojoBonslyDoll _08030144: .4byte 0x00000101 _08030148: ldr r3, [r5] @@ -305,7 +305,7 @@ _080301D6: bx r0 .align 2, 0 _080301F8: .4byte gUnknown_203B318 -_080301FC: .4byte gUnknown_80E07D8 +_080301FC: .4byte gMakuhitaDojoGoTrain _08030200: .4byte gUnknown_80D4970 _08030204: .4byte gUnknown_80D4934 thumb_func_end sub_80301B0 @@ -866,43 +866,4 @@ _08030660: .4byte gUnknown_80E0824 _08030664: .4byte gUnknown_80E0828 thumb_func_end sub_803053C - thumb_func_start sub_8030668 -sub_8030668: - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0803066E: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8097504 - lsls r0, 24 - cmp r0, 0 - beq _08030690 - adds r0, r4, 0 - bl sub_80A26CC - ldr r1, _080306A0 - ldr r1, [r1] - lsls r2, r6, 1 - adds r1, r2 - strh r0, [r1] - adds r6, 0x1 -_08030690: - adds r5, 0x1 - cmp r5, 0x16 - ble _0803066E - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080306A0: .4byte gUnknown_203B31C - thumb_func_end sub_8030668 - - thumb_func_start sub_80306A4 -sub_80306A4: - movs r0, 0 - bx lr - thumb_func_end sub_80306A4 - .align 2,0 diff --git a/data/data_80DED44.s b/data/data_80DED44.s index f9ef5db70..66d06f015 100644 --- a/data/data_80DED44.s +++ b/data/data_80DED44.s @@ -1,201 +1,5 @@ .section .rodata - .global gPelipperBoard_BulletinBoard -gPelipperBoard_BulletinBoard: @ 80E0390 - .string "Bulletin Board\0" - .align 2,0 - - .global gPelipperBoard_JobList -gPelipperBoard_JobList: @ 80E03A0 - .string "Job List\0" - .align 2,0 - - .global gPelipperBoard_Accepted -gPelipperBoard_Accepted: @ 80E03AC - .string "Accepted\0" - .align 2,0 - - .global gUnknown_80E03B8 -gUnknown_80E03B8: @ 80E03B8 - .string "/\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80E03C4 -gUnknown_80E03C4: @ 80E03C4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x03, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E03F4 -gUnknown_80E03F4: @ 80E03F4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x06, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E040C -gUnknown_80E040C: @ 80E040C - .string "Send\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80E041C -gUnknown_80E041C: @ 80E041C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0434 -gUnknown_80E0434: @ 80E0434 - .string " Here{APOSTROPHE}s your reward!\n" - .string "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}!\0" - .align 2,0 - - .global gUnknown_80E045C -gUnknown_80E045C: @ 80E045C -@ replacing .incbin "baserom.gba", 0x000e045c, 0x28 - .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n" - .string "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1}" - .byte 0x20, 0x83 - .byte 0xbf, 0x83, 0xc4, 0x2e, 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0484 -gUnknown_80E0484: @ 80E0484 - .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n" - .string "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}" - .byte 0x2E, 0x00, 0x00, 0x00 - - .global gUnknown_80E04B4 -gUnknown_80E04B4: @ 80E04B4 - .string " As your reward{COMMA} you can\n" - .string "now go to the Friend Area\n" - .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global gUnknown_80E04F4 -gUnknown_80E04F4: @ 80E04F4 - .string "{CENTER_ALIGN}...Oh{COMMA} wait{COMMA} sorry.{EXTRA_MSG}" - .string "{CENTER_ALIGN}You already have the \n" - .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA} Friend Area{END_COLOR_TEXT_1}.{EXTRA_MSG}" - .string "{CENTER_ALIGN}I{APOSTROPHE}m sorry that my reward is\n" - .string "{CENTER_ALIGN}something you already have.{EXTRA_MSG}" - .string "{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n" - .string "{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE_2}1{COMMA}000{END_COLOR_TEXT_1} {POKE}.\0" - .align 2, 0 - - .global gUnknown_80E05C0 -gUnknown_80E05C0: @ 80E05C0 - .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} gained access\n" - .string "{CENTER_ALIGN}to the Friend Area\n" - .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E05FC -gUnknown_80E05FC: @ 80E05FC - .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team gained access\n" - .string "{CENTER_ALIGN}to the Friend Area\n" - .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E0640 -gUnknown_80E0640: @ 80E0640 - .string " Here{APOSTROPHE}s your reward!\n" - .string "The promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global gUnknown_80E0670 -gUnknown_80E0670: @ 80E0670 - .string "{CENTER_ALIGN}Rescue Team {COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1}\n" - .string "{CENTER_ALIGN}gained {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} rescue points.\0" - .align 2,0 - - .global gUnknown_80E06A8 -gUnknown_80E06A8: @ 80E06A8 - .string "{CENTER_ALIGN}Congratulations!{EXTRA_MSG}" - .string "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1} went up in rank\n" - .string "{CENTER_ALIGN}from the {ARG_POKEMON_2}\n" - .string "{CENTER_ALIGN}to the {ARG_POKEMON_3}!\0" - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E06FC -gUnknown_80E06FC: @ 80E06FC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0714 -gUnknown_80E0714: @ 80E0714 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x0e, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E072C -gUnknown_80E072C: @ 80E072C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x10, 0x00, 0x10, 0x00 - .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0744 -gUnknown_80E0744: @ 80E0744 - .string "Dungeons\0" - .align 2,0 - - .global gUnknown_80E0750 -gUnknown_80E0750: @ 80E0750 - .byte 0x83, 0xC2, 0x00, 0x00 - - .global gUnknown_80E0754 -gUnknown_80E0754: @ 80E0754 - .byte 0x83, 0xC0, 0x00, 0x00 - .string "pksdir0\0" - - .global gUnknown_80E0760 -gUnknown_80E0760: @ 80E0760 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E0778 -gUnknown_80E0778: @ 80E0778 - .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}$n0{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n" - .string "{CENTER_ALIGN}It has been placed outside your\n" - .string "{CENTER_ALIGN}rescue team base.\0" - .align 2,0 - - .global gUnknown_80E07D8 -gUnknown_80E07D8: @ 80E07D8 - .string "Go Train\0" - .align 2,0 .string "pksdir0\0" .align 2,0 @@ -338,81 +142,3 @@ gUnknown_80E0938: @ 80E0938 .string "%-4d\0" .align 2,0 .string "pksdir0\0" - - .global gUnknown_80E0948 -gUnknown_80E0948: @ 80E0948 - .4byte Yes_80E0964 - .byte 0x02, 0x00, 0x00, 0x00 - .4byte No_80E0960 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - - .global No_80E0960 - No_80E0960: - .string "No\0" - .align 2,0 - - .global Yes_80E0964 - Yes_80E0964: - .string "Yes\0" - .align 2,0 - - .global gUnknown_80E0968 -gUnknown_80E0968: @ 80E0968 - .4byte Delete_80E0988 - .byte 0x04, 0x00, 0x00, 0x00 - .4byte Info_80E0980 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00 - - .global Info_80E0980 - Info_80E0980: - .string "Info\0" - .align 2,0 - - .global Delete_80E0988 - Delete_80E0988: - .string "Delete\0" - .align 2,0 - - .global gUnknown_80E0990 -gUnknown_80E0990: @ 80E0990 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E09A8 -gUnknown_80E09A8: @ 80E09A8 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x13, 0x00, 0x0B, 0x00 - .byte 0x08, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E09C0 -gUnknown_80E09C0: @ 80E09C0 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x0F, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E09D8 -gUnknown_80E09D8: @ 80E09D8 - .string " ...Uh{COMMA} no?\n" - .string "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E0A0C -gUnknown_80E0A0C: @ 80E0A0C - .string " ...Uh{COMMA} no?\n" - .string "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.\0" - .align 2,0 - .asciz "pksdir0" diff --git a/data/data_8106F7C.s b/data/data_8106F7C.s index 07165d76b..d6800f831 100644 --- a/data/data_8106F7C.s +++ b/data/data_8106F7C.s @@ -2,7 +2,11 @@ .global gUnknown_8106F7C gUnknown_8106F7C: @ 8106F7C - .incbin "baserom.gba", 0x106F7C, 0x28 + .int 0, 0, 0, 1 + + .string "pksdir0\0" + .string "pksdir0\0" + .string "pksdir0\0" .global gUnknown_8106FA4 gUnknown_8106FA4: @ 8106FA4 diff --git a/data/data_8115EB8.s b/data/data_8115EB8.s index d7e7d8bd6..302b1141d 100644 --- a/data/data_8115EB8.s +++ b/data/data_8115EB8.s @@ -923,8 +923,8 @@ gUnknown_8117770: @ 8117770 gUnknown_8117784: @ 8117784 .byte 0x0d, 0x00, 0x01, 0x00, 0x80, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0xbc, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global gUnknown_811779C -gUnknown_811779C: @ 811779C + .global gGroundWeatherSelect +gGroundWeatherSelect: @ 811779C .string "GroundWeather Select %3d %3d\0" .align 2,0 diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h index 392ea8063..2d3679f56 100644 --- a/include/dungeon_global_data.h +++ b/include/dungeon_global_data.h @@ -50,7 +50,7 @@ struct DungeonGlobalData u8 fill646[0x65C - 0x646]; u8 unk65C; u8 fill65D[0x660 - 0x65D]; - /* 0x660 */ u16 speedTurnCounter; // Handles turn order when Pokémon have different movement speeds. + /* 0x660 */ s16 speedTurnCounter; // Handles turn order when Pokémon have different movement speeds. u8 fill662[0x666 - 0x662]; /* 0x666 */ u16 turnsLeft; // Turns remaining before getting swept out of the dungeon. u8 fill668[0x66A - 0x668]; diff --git a/include/menu.h b/include/menu.h index c400b0a0b..4e463607e 100644 --- a/include/menu.h +++ b/include/menu.h @@ -3,7 +3,7 @@ struct MenuItem { - const char *text; + const u8 *text; u32 menuAction; // action?? }; diff --git a/include/rescue_team_info.h b/include/rescue_team_info.h index e81fbcce8..d0cc7c224 100644 --- a/include/rescue_team_info.h +++ b/include/rescue_team_info.h @@ -33,7 +33,7 @@ s32 GetPtsToNextRank(void); void SetTeamRankPoints(s32 newPts); void AddToTeamRankPts(s32 newPts); u8 GetRescueTeamRank(void); -const char *GetTeamRankString(u8 index); +const u8 *GetTeamRankString(u8 index); u8 sub_80921B8(void); u32 SaveRescueTeamInfo(u8 *param_1,u32 param_2); u32 ReadRescueTeamInfo(u8 *param_1, u32 param_2); diff --git a/ld_script.txt b/ld_script.txt index a7638126c..966116360 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -62,6 +62,8 @@ SECTIONS { src/sprite.o(.text); asm/sprite.o(.text); asm/code_800558C.o(.text); + src/code_800558C_1.o(.text); + asm/code_8005838.o(.text); src/code_800558C.o(.text); src/random.o(.text); src/text.o(.text); @@ -139,6 +141,7 @@ SECTIONS { src/wonder_mail_3_1.o(.text); src/makuhita_dojo.o(.text); asm/makuhita_dojo.o(.text); + src/makuhita_dojo_1.o(.text); src/wonder_mail_4.o(.text); asm/wonder_mail_4.o(.text); src/wonder_mail_5.o(.text); @@ -323,6 +326,7 @@ SECTIONS { asm/code_8098BDC.o(.text); src/code_809D148.o(.text); asm/code_809D148.o(.text); + src/ground_script.o(.text); asm/ground_script.o(.text); src/code_80A26CC.o(.text); asm/code_80A26CC.o(.text); @@ -332,6 +336,7 @@ SECTIONS { asm/ground_map.o(.text); src/ground_map_1.o(.text); asm/ground_map_1.o(.text); + src/ground_map_2.o(.text); asm/ground_sprite.o(.text); src/code_80A7714.o(.text); asm/ground_lives.o(.text); @@ -420,7 +425,10 @@ SECTIONS { src/wonder_mail_802DF88.o(.rodata); src/mailbox.o(.rodata); src/pelipper_board.o(.rodata); + src/wonder_mail_3_mid.o(.rodata); + src/makuhita_dojo.o(.rodata); data/data_80DED44.o(.rodata); + src/wonder_mail_6.o(.rodata); src/post_office_guide.o(.rodata); data/data_80E1F30.o(.rodata); src/adventure_log.o(.rodata); diff --git a/src/code_800558C_1.c b/src/code_800558C_1.c new file mode 100644 index 000000000..bdc4980a0 --- /dev/null +++ b/src/code_800558C_1.c @@ -0,0 +1,99 @@ +#include "global.h" + +extern u8 gUnknown_2026E38; +extern u32 gUnknown_2026E3C; +extern u16 gUnknown_2026E4E; +extern bool32 gUnknown_2026E50; +extern bool32 gUnknown_2026E54; +extern u32 gUnknown_2026E58; +extern u8 gUnknown_2026E4C; +extern u32 gUnknown_203B078; + +extern void SetBGPaletteBufferColorRGB(s32 index, u8 *RGBArray, s32 a1, u8 *a2); +void sub_8005770(s32 param_1, u8 *RGBArray, s32 a1, u8 *a2); + +void sub_8005764(s32 param_1, u8 *RGBArrays[], s32 a1, u8 *a2) +{ + sub_8005770(param_1,RGBArrays[1],a1,a2); +} + +void sub_8005770(s32 param_1, u8 *RGBArray, s32 a1, u8 *a2) +{ + s32 i; + + for(i = 0; i < 16; i++) + { + SetBGPaletteBufferColorRGB((param_1 + 0x10) * 0x10 + i,&RGBArray[i * 4],a1,a2); + } +} + +void nullsub_7(void) +{} + +void nullsub_8(void) +{} + +void nullsub_9(void) +{} + +void nullsub_10(void) +{} + +void nullsub_144(void) +{} + +void nullsub_11(void) +{} + +void nullsub_12(void) +{} + +void nullsub_13(void) +{} + +void nullsub_145(void) +{} + +void nullsub_14(void) +{} + +void nullsub_146(void) +{} + +void nullsub_147(void) +{} + +void nullsub_148(void) +{} + +void nullsub_149(void) +{} + +u32 sub_80057D8(void) +{ + return 0; +} + +u32 sub_80057DC(void) +{ + return 0; +} + +void nullsub_150(void) +{} + +void nullsub_151(void) +{} + + +void sub_80057E8(void) +{ + gUnknown_2026E4C = 1; + gUnknown_2026E54 = 0; + gUnknown_2026E50 = 1; + gUnknown_2026E58 = 0; + gUnknown_2026E3C = 0; + gUnknown_2026E38 = 0; + gUnknown_2026E4E = 0x60c; + gUnknown_203B078 = 0; +} diff --git a/src/code_80A26CC.c b/src/code_80A26CC.c index c482100cc..7b91ce4af 100644 --- a/src/code_80A26CC.c +++ b/src/code_80A26CC.c @@ -8,6 +8,35 @@ s16 sub_80A26B8(s16); extern s16 gUnknown_8116F9A[]; extern s16 gUnknown_8116F24[]; extern struct unkStruct_80A2608 gUnknown_81168A8[]; +extern u8 sub_8098F88(void); +extern void sub_8001658(u32, u32); + +u32 sub_80A25AC(u16 param_1) +{ + if (sub_8098F88() != 0) { + return param_1; + } + else + { + if (param_1 == 0x32) { + return 0x32; + } + else if (sub_80023E4(0xc) == 0) { + return 999; + } + else if (sub_80023E4(0xd) != 0) { + return 0x13; + } + else if (param_1 != 1) { + return param_1; + } + else + { + sub_8001658(0,0x28); + return 1; + } + } +} struct unkStruct_80A2608 *sub_80A2608(s16 r0) { @@ -120,7 +149,7 @@ u8 sub_80A2728(s16 r0) return temp->unkC; } -u8 sub_80A2740(s16 r0) +u8 sub_80A2740(s32 r0) { struct unkStruct_80A2608 *temp; temp = sub_80A2608(r0); diff --git a/src/ground_map_2.c b/src/ground_map_2.c new file mode 100644 index 000000000..34bd1d1ce --- /dev/null +++ b/src/ground_map_2.c @@ -0,0 +1,267 @@ +#include "global.h" +#include "memory.h" +#include "debug.h" + +struct unkStruct_3001B74 +{ + // size: 0x24 + s16 unk0; + u8 unk2; + u32 unk4; + u32 unk8; + s32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + u32 unk20; +}; + +extern struct unkStruct_3001B74 *gUnknown_3001B74; + +extern u16 gUnknown_2026E4E; + +// size: 0x55C +extern u8 *gUnknown_3001B78; + +extern u8 gUnknown_8117784[]; +extern s16 gUnknown_811E5F4[][2]; +extern u8 gGroundWeatherSelect[]; +extern u8 *gUnknown_3001B70; +extern s32 gUnknown_81177BC[]; + +extern void sub_80A3BB0(void* , u32); +extern void sub_80018D8(u8, u8, u32); +extern void sub_80A2D00(void *); +extern void sub_80A2B40(void *, u8 *); +extern void sub_80A2FBC(void *, u32); +extern void sub_80A49E8(void *); +extern void sub_80A456C(void *, u32, s32 *); +extern void sub_80A4580(void *, u32, s32 *); +extern void sub_80A56C0(s32 *); +extern void sub_80A4764(void *); + +void sub_80A62D0(void); +void sub_80A5EDC(u8 param_1); + +void sub_80A5E70(void) +{ + if (gUnknown_3001B70 != NULL) { + sub_80A49E8(gUnknown_3001B70); + } + sub_80A62D0(); +} + +void sub_80A5E8C(u8 param_1) +{ + gUnknown_3001B74 = MemoryAlloc(sizeof(struct unkStruct_3001B74), 6); + gUnknown_3001B74->unk0 = -1; + gUnknown_3001B74->unk2 = 0; + sub_80A5EDC(param_1); +} + +void sub_80A5EBC(void) +{ + sub_80A5EDC(0); + MemoryFree(gUnknown_3001B74); + gUnknown_3001B74 = NULL; +} + +void sub_80A5EDC(u8 param_1) +{ + sub_80018D8(0, 0x1b, -1); + gUnknown_3001B74->unk0 = -1; + gUnknown_3001B74->unk2 = param_1; + if (gUnknown_3001B78 != NULL) { + sub_80A2D00(gUnknown_3001B78); + MemoryFree(gUnknown_3001B78); + gUnknown_3001B78 = NULL; + } + if (param_1 != 0) { + gUnknown_3001B78 = MemoryAlloc(0x55c,6); + sub_80A2B40(gUnknown_3001B78,gUnknown_8117784); + sub_80A2FBC(gUnknown_3001B78,-1); + } +} + +void nullsub_121(void) +{} + +void nullsub_122(void) +{} + +void GroundWeather_Select(s16 param_1) +{ + s32 iVar2; + s32 iVar3; + s16 *pVar1; + + iVar2 = param_1; + iVar3 = iVar2; + Log(0,gGroundWeatherSelect,iVar2,gUnknown_3001B74->unk2); + sub_80018D8(0,0x1b,iVar2); + gUnknown_3001B74->unk0 = iVar2; + if (gUnknown_3001B74->unk2 != 0) { + if (iVar2 == -1) { + sub_80A2FBC(gUnknown_3001B78, -1); + } + else { + pVar1 = gUnknown_811E5F4[iVar3]; + sub_80A2FBC(gUnknown_3001B78, pVar1[1]); + gUnknown_3001B74->unk4 = 0; + gUnknown_3001B74->unk8 = 0; + gUnknown_3001B74->unkC = 0; + gUnknown_3001B74->unk10 = 0; + gUnknown_3001B74->unk20 = 0; + gUnknown_3001B74->unk1C = 0; + gUnknown_3001B74->unk18 = 0; + gUnknown_3001B74->unk14 = 0; + switch(gUnknown_3001B74->unk0) { + case 9: + sub_80A3BB0(gUnknown_3001B78,1); + gUnknown_2026E4E = 0x40c; + break; + case 7: + gUnknown_2026E4E = 0x808; + break; + case 0xe: + sub_80A3BB0(gUnknown_3001B78,1); + gUnknown_2026E4E = 0x1010; + break; + case 0xf: + sub_80A3BB0(gUnknown_3001B78,1); + gUnknown_2026E4E = 0x40c; + break; + case 0: + case 3: + case 4: + case 5: + case 8: + gUnknown_2026E4E = 0x1010; + break; + default: + if (pVar1[0] == 1) { + sub_80A3BB0(gUnknown_3001B78,1); + } + gUnknown_2026E4E = 0x1000; + break; + } + } + } +} + +s16 sub_80A60C4(void) +{ + return gUnknown_3001B74->unk0; +} + +void nullsub_123(void) +{} + +void sub_80A60D8(void) +{ + s32 r0; +#ifndef NONMATCHING + register s32 r1 asm("r1"); +#else + s32 r1; +#endif + s32 r3; + s32 r4; + + s32 local_00[2]; // sp 0x0 + s32 local_08[2]; // sp 0x8 + s32 local_10[2]; // sp 0x10 + s32 local_18[2]; // sp 0x18 + s32 local_20[2]; // sp 0x20 + s16 *puVar1; + + if (gUnknown_3001B74->unk2 == 0) { + return; + } + switch((s16)(gUnknown_3001B74->unk0 + 1)) { + case 10: + r1 = gUnknown_3001B74->unk4; + r0 = r1 + 2; + gUnknown_3001B74->unk4 = r0; + r4 = gUnknown_3001B74->unk8; + r3 = r4 + 1; + gUnknown_3001B74->unk8 = r3; + if (r0 < 0) { + r0 = r1 + 5; + } + gUnknown_3001B74->unkC += (r0 >> 2); + r1 = r3; + if (r1 < 0) { + r1 = r4 + 4; + } + gUnknown_3001B74->unk10 += (r1 >> 2); + sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC); + gUnknown_3001B74->unk4 &= 3; + gUnknown_3001B74->unk8 &= 3; + sub_80A56C0(local_00); + local_00[0] -= gUnknown_3001B74->unkC; + local_00[1] += gUnknown_3001B74->unk10; + sub_80A4580(gUnknown_3001B78,0,local_00); + sub_80A456C(gUnknown_3001B78,0,local_00); + break; + case 0xb: + case 0xc: + case 0xd: + case 0xe: + sub_80A56C0(local_08); + sub_80A456C(gUnknown_3001B78,0,local_08); + break; + case 0xf: + r1 = gUnknown_3001B74->unk4 ; + r0 = r1 + 1; + gUnknown_3001B74->unk4 = r0; + if (r0 < 0) { + r0 = r1 + 4; + } + gUnknown_3001B74->unkC += (r0 >> 2); + sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC); + gUnknown_3001B74->unk4 &= 3; + sub_80A56C0(local_10); + local_10[0] -= gUnknown_3001B74->unkC; + local_10[1] = 0; + sub_80A4580(gUnknown_3001B78,0,local_10); + sub_80A456C(gUnknown_3001B78,0,local_10); + break; + case 0x10: + r1 = gUnknown_3001B74->unk4; + r0 = r1 + 2; + gUnknown_3001B74->unk4 = r0; + if (r0 < 0) { + r0 = r1 + 5; + } + gUnknown_3001B74->unkC += (r0 >> 2); + sub_80A4580(gUnknown_3001B78,0,&gUnknown_3001B74->unkC); + gUnknown_3001B74->unk4 &= 3; + sub_80A56C0(local_18); + local_18[0] -= gUnknown_3001B74->unkC; + local_18[1] = 0; + sub_80A4580(gUnknown_3001B78,0,local_18); + sub_80A456C(gUnknown_3001B78,0,local_18); + break; + default: + puVar1 = gUnknown_811E5F4[gUnknown_3001B74->unk0]; + if (puVar1[0] == 0) { + sub_80A56C0(local_20); + sub_80A456C(gUnknown_3001B78,0,local_20); + break; + } + // NOTE: Fallthrough needed here.. + case 0: + sub_80A456C(gUnknown_3001B78,0,gUnknown_81177BC); + break; + } + sub_80A4764(gUnknown_3001B78); +} + +void sub_80A62D0(void) +{ + if (gUnknown_3001B74->unk2 != 0) { + sub_80A49E8(gUnknown_3001B78); + } +} diff --git a/src/ground_script.c b/src/ground_script.c new file mode 100644 index 000000000..2a6c09d1f --- /dev/null +++ b/src/ground_script.c @@ -0,0 +1,130 @@ +#include "global.h" +#include "debug.h" + + +extern u32 gUnknown_8116588; +extern u32 gUnknown_8116538; +extern u32 gUnknown_8116560; + +extern u8 gUnknown_8116594[]; +extern u8 gUnknown_8116544[]; +extern u8 gUnknown_811656C[]; + + +struct GroundScript_ExecutePP_3 +{ + // size: 0xC + u32 unk0; + s16 scriptType; + s16 unk6; + u8 unk8; +}; + +struct GroundScript_ExecutePP_1_sub +{ + // size: 0x60 + /* 0x0 */ s16 scriptType; + /* 0x2 */ s16 unk2; + /* 0x4 */ u32 unk4; + /* 0x8 */ u32 unk8; + /* 0xC */ u16 unkC; + /* 0xE */ u8 unkE; + /* 0xF */ u8 fillF; + /* 0x10 */ u32 unk10; + /* 0x14 */ u32 unk14; + /* 0x18 */ u8 fill3C[0x26 - 0x18]; + /* 0x26 */ u32 unk26; + u8 fill50[0x60 - 0x2A]; +} __attribute__((packed)); + +typedef void (*Callback)(u32, void *); +struct GroundScript_ExecutePP_1_sub2 +{ + Callback callbacks[10]; // IDK the size.. +}; + +struct GroundScript_ExecutePP_1 +{ + struct GroundScript_ExecutePP_1_sub2 *unk0; + u32 unk4; + u32 fill8; + u32 unkC; + u32 fill10; + u8 fill18[0x24 - 0x14]; + struct GroundScript_ExecutePP_1_sub unk24; + struct GroundScript_ExecutePP_1_sub unk84; +}; + +extern void sub_809D520(void *); +extern void sub_809D568(void *); +extern void sub_809D6E4(struct GroundScript_ExecutePP_1 *, struct GroundScript_ExecutePP_3 *, s32); +void FatalError(u32 *, const char *, ...) __attribute__((noreturn)); + +bool8 GroundScript_ExecutePP(struct GroundScript_ExecutePP_1 *param_1, s32 *param_2, struct GroundScript_ExecutePP_3 *param_3, struct DebugLocation *unused) +{ + if ((param_3 == NULL) || (param_3->unk0 == 0)) { + return FALSE; + } + switch(param_3->scriptType) { + case 2: + case 3: + if (param_1->unk24.scriptType == 1) { + memcpy(¶m_1->unk84, ¶m_1->unk24, 0x60); + break; + } + if (param_1->unk24.scriptType == 5) { + sub_809D568(¶m_1->unk84); + } + break; + case 5: + if (param_1->unk24.scriptType != 2) { + // "execute script type error B" + FatalError(&gUnknown_8116538, gUnknown_8116544); + } + if (param_1->unk84.scriptType != -1) { + // "execute script type error C" + FatalError(&gUnknown_8116560, gUnknown_811656C); + } + memcpy(¶m_1->unk84, ¶m_1->unk24, 0x60); + break; + case 0: + if (param_1->unk24.scriptType != 1) goto _0809D84A; + memcpy(¶m_1->unk84, ¶m_1->unk24, 0x60); + break; + case 1: +_0809D84A: + sub_809D568(¶m_1->unk84); + break; + default: + // "execute script type error %d" + FatalError(&gUnknown_8116588, gUnknown_8116594, param_3->scriptType); + } + sub_809D568(¶m_1->unk24); + if (param_2 != NULL) { + param_1->unkC = param_2[0]; + } + else { + sub_809D520(¶m_1->unkC); + } + param_1->unk24.scriptType = param_3->scriptType; + param_1->unk24.unk2 = 3; + param_1->unk24.unkC = param_3->unk6; + param_1->unk24.unkE = param_3->unk8; + param_1->unk24.unk4 = param_3->unk0; + param_1->unk24.unk8 = param_3->unk0; + param_1->unk24.unk10 = 0; + param_1->unk24.unk14 = 0; + + if (param_1->unk0->callbacks[5] != 0) { + param_1->unk0->callbacks[5](param_1->unk4, ¶m_1->unk24.unk26); + } + return TRUE; +} + +bool8 sub_809D8C0(struct GroundScript_ExecutePP_1 *param_1, s32 *param_2, s16 param_3, struct DebugLocation *debug) +{ + struct GroundScript_ExecutePP_3 auStack28; + + sub_809D6E4(param_1,&auStack28,param_3); + return GroundScript_ExecutePP(param_1, param_2, &auStack28, debug); +} diff --git a/src/makuhita_dojo.c b/src/makuhita_dojo.c index 1e061da46..25f676e1a 100644 --- a/src/makuhita_dojo.c +++ b/src/makuhita_dojo.c @@ -29,7 +29,25 @@ struct unkStruct_203B318 extern u8 gUnknown_202E5D8[]; extern u8 gUnknown_202E1C8[]; extern struct unkStruct_203B318 *gUnknown_203B318; -extern struct UnkTextStruct2 gUnknown_80E0760; + +ALIGNED(4) const u8 gUnknown_80E0744[] = "Dungeons"; +ALIGNED(4) const u8 gUnknown_80E0750[] = {0x83, 0xC2}; +ALIGNED(4) const u8 gUnknown_80E0754[] = {0x83, 0xC0}; +static const u8 makuhita_dojo_fill[] = "pksdir0"; +const struct UnkTextStruct2 gUnknown_80E0760 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +ALIGNED(4) const u8 gMakuhitaDojoBonslyDoll[] = _( + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}$n0{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n" + "{CENTER_ALIGN}It has been placed outside your\n" + "{CENTER_ALIGN}rescue team base."); + +const u8 gMakuhitaDojoGoTrain[] = "Go Train"; extern void sub_8030208(); extern void sub_8030258(); diff --git a/src/makuhita_dojo_1.c b/src/makuhita_dojo_1.c new file mode 100644 index 000000000..a76dafe61 --- /dev/null +++ b/src/makuhita_dojo_1.c @@ -0,0 +1,52 @@ +#include "global.h" +#include "text.h" + +struct unkStruct_203B31C +{ + // Size: 0xD0 + u16 unk0[2]; + u8 fill4[0x30 - 0x4]; + u32 unk30; + u8 fill34[0x48 - 0x34]; + s16 unk48; + s16 unk4A; + s16 unk4C; + s16 unk4E; + u16 unk50; + u16 unk52; + u8 fill54[0x64 - 0x54]; + u32 unk64; + struct UnkTextStruct2 *unk68; + struct UnkTextStruct2 unk6C[4]; + u8 unkCC[4]; +}; + +extern struct unkStruct_203B31C *gUnknown_203B31C; + + +extern bool8 sub_8097504(s16); +extern s16 sub_80A26CC(s16 r0); + + +s32 sub_8030668(void) +{ + s32 index; + s32 counter; + + counter = 0; + + for(index = 0; index < 0x17; index++) + { + if (sub_8097504(index)) { + gUnknown_203B31C->unk0[counter] = sub_80A26CC(index); + counter++; + } + } + return counter; +} + +s32 sub_80306A4(void) +{ + return 0; +} + diff --git a/src/pelipper_board.c b/src/pelipper_board.c index e9c4c7e42..1b06332bc 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -67,6 +67,12 @@ const struct UnkTextStruct2 gUnknown_80E0378 = NULL }; +const u8 gPelipperBoard_BulletinBoard[] = "Bulletin Board"; +const u8 gPelipperBoard_JobList[] = "Job List"; +const u8 gPelipperBoard_Accepted[] = "Accepted"; +const u8 gPelipperStatusSlash[] = "/"; +static const u8 gPelipperfill[] = "pksdir0"; + extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); extern void sub_802ECB4(void); extern void nullsub_134(void); diff --git a/src/pelipper_board_1.c b/src/pelipper_board_1.c index a8e9b5028..c667d3bf9 100644 --- a/src/pelipper_board_1.c +++ b/src/pelipper_board_1.c @@ -29,7 +29,7 @@ struct unkStruct_203B308 extern struct unkStruct_203B308 *gUnknown_203B308; extern u8 gPelipperBoard_Accepted[]; -extern u8 gUnknown_80E03B8[]; +extern u8 gPelipperStatusSlash[]; extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); extern void sub_8008C54(u32); @@ -212,7 +212,7 @@ void CreatePelipperAcceptedStatusBox(u32 r0) sub_80073B8(r0); xxx_call_draw_string(3, 0, gPelipperBoard_Accepted, r0, 0); sub_8012BC4(0x12, 0xD, GetNumAcceptedJobs(), 2, 7, r0); - xxx_call_draw_string(0x16, 0xD, gUnknown_80E03B8, r0, 0); // "/" + xxx_call_draw_string(0x16, 0xD, gPelipperStatusSlash, r0, 0); // "/" sub_8012BC4(0x23, 0xD, MAX_ACCEPTED_JOBS, 2, 7, r0); sub_80073E0(r0); } diff --git a/src/rescue_team_info.c b/src/rescue_team_info.c index 5f49cab2f..e14bc97e2 100644 --- a/src/rescue_team_info.c +++ b/src/rescue_team_info.c @@ -9,7 +9,7 @@ extern u8 sub_80023E4(u32); extern void sub_80922B4(u8 *buffer, u8 *string, s32 size); extern void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size); -extern const char *gRescueTeamRanks[]; +extern const u8 *gRescueTeamRanks[]; extern s32 gRescueRankMaxPoints[7]; extern u8 gTeamNamePlaceholder[0x8]; // Pokemon @@ -98,7 +98,7 @@ u8 GetRescueTeamRank(void) return LUCARIO_RANK; } -const char *GetTeamRankString(u8 index) +const u8 *GetTeamRankString(u8 index) { return gRescueTeamRanks[index]; } diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 650cf05f8..3ef4623c9 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -96,9 +96,6 @@ struct unkStruct_203B314 }; extern struct unkStruct_203B314 *gUnknown_203B314; -extern struct UnkTextStruct2 gUnknown_80E072C; -extern struct UnkTextStruct2 gUnknown_80E0714; -extern struct UnkTextStruct2 gUnknown_80E06FC; extern u8 sub_802FCF0(u32); extern void sub_802F9C0(void); @@ -146,24 +143,124 @@ extern void PlayMenuSoundEffect(u32); extern void sub_802F300(void); extern void PlaySound(u32); extern s32 sub_808D544(u32); -extern void sub_80141B4(u8 *, u32, struct OpenedFile **, u32); +extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32); extern u32 sub_801B60C(u32, u8, u8); extern void sub_8092578(u8 *buffer, u8 index, u8 r2); void HandleMissionReward(void); -extern struct UnkTextStruct2 gUnknown_80E03C4; -extern struct UnkTextStruct2 gUnknown_80E03F4; -extern struct UnkTextStruct2 gUnknown_80E041C; -extern u8 gUnknown_80E0434[]; -extern u8 gUnknown_80E045C[]; -extern u8 gUnknown_80E0484[]; -extern u8 gUnknown_80E04F4[]; -extern u8 gUnknown_80E06A8[]; -extern u8 gUnknown_80E0670[]; -extern u8 gUnknown_80E05FC[]; -extern u8 gUnknown_80E04B4[]; -extern u8 gUnknown_80E05C0[]; -extern u8 gUnknown_80E0640[]; +const struct UnkTextStruct2 gUnknown_80E03C4 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E03DC = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E03F4 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x06, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; + +const u8 gUnknown_80E040C[] = "Send"; +static const u8 wonder_mail_fill[] = "pksdir0"; +const struct UnkTextStruct2 gUnknown_80E041C = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +ALIGNED(4) const u8 gUnknown_80E0434[] = _( + " Here{APOSTROPHE}s your reward!\n" + "{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}!"); + +ALIGNED(4) const u8 gUnknown_80E045C[] = _( + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n" + "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}."); + +ALIGNED(4) const u8 gUnknown_80E0484[] = _( + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n" + "{CENTER_ALIGN}{COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}."); + +ALIGNED(4) const u8 gUnknown_80E04B4[]= _( + " As your reward{COMMA} you can\n" + "now go to the Friend Area\n" + "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) const u8 gUnknown_80E04F4[] = _( + "{CENTER_ALIGN}...Oh{COMMA} wait{COMMA} sorry.{EXTRA_MSG}" + "{CENTER_ALIGN}You already have the \n" + "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA} Friend Area{END_COLOR_TEXT_1}.{EXTRA_MSG}" + "{CENTER_ALIGN}I{APOSTROPHE}m sorry that my reward is\n" + "{CENTER_ALIGN}something you already have.{EXTRA_MSG}" + "{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n" + "{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE_2}1{COMMA}000{END_COLOR_TEXT_1} {POKE}."); + +ALIGNED(4) const u8 gUnknown_80E05C0[] = _( + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} gained access\n" + "{CENTER_ALIGN}to the Friend Area\n" + "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); + +ALIGNED(4) const u8 gUnknown_80E05FC[] = _( + "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team gained access\n" + "{CENTER_ALIGN}to the Friend Area\n" + "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}."); + +ALIGNED(4) const u8 gUnknown_80E0640[] = _( + " Here{APOSTROPHE}s your reward!\n" + "The promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) const u8 gUnknown_80E0670[] = _( + "{CENTER_ALIGN}Rescue Team {COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1}\n" + "{CENTER_ALIGN}gained {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} rescue points."); + +ALIGNED(4) const u8 gUnknown_80E06A8[] = _( + "{CENTER_ALIGN}Congratulations!{EXTRA_MSG}" + "{CENTER_ALIGN}{COLOR_1 LIGHT_BLUE_2}$t{END_COLOR_TEXT_1} went up in rank\n" + "{CENTER_ALIGN}from the {ARG_POKEMON_2}\n" + "{CENTER_ALIGN}to the {ARG_POKEMON_3}!"); + +static const u8 wonder_mail_fill2[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80E06FC = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80E0714 = { + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x0E, 0x0E, + 0x0E, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E072C = { + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x10, 0x10, + 0x10, 0x00, + NULL +}; extern u8 gUnknown_202E038[]; extern u8 gUnknown_202E088[]; @@ -172,8 +269,7 @@ extern u8 gUnknown_202DEA8[]; extern u8 gUnknown_202E5D8[]; extern u8 gAvailablePokemonNames[]; extern u32 gUnknown_202DE30; -extern const char gUnknown_80E040C[]; -extern const char *gUnknown_80D4970[]; +extern const u8 *gUnknown_80D4970[]; @@ -279,7 +375,7 @@ void sub_802F088(void) void sub_802F108(void) { struct unkStruct_203B30C *preload; - const char *blankText; + const u8 *blankText; s32 action_1; preload = gUnknown_203B30C; @@ -442,7 +538,7 @@ void sub_802F300(void) void HandleMissionReward(void) { int moneyReward; - const char *rankString; + const u8 *rankString; u8 uVar7; struct unkStruct_8090F58 local_20; struct ItemSlot_Alt item; diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index 6e72c49fa..44a03ca1b 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -31,18 +31,57 @@ struct unkStruct_203B328 extern struct unkStruct_203B328 *gUnknown_203B328; extern struct unkStruct_203B480 *gUnknown_203B480; -extern u8 gUnknown_80E0A0C[]; -extern u8 gUnknown_80E09D8[]; +const struct MenuItem gUnknown_80E0948[] = +{ + {"Yes", 0x2}, + {"No", 0x3}, + {NULL, 0x1} +}; -extern struct UnkTextStruct2 gUnknown_80E0990; -extern struct UnkTextStruct2 gUnknown_80E09A8; -extern struct MenuItem gUnknown_80E0968; -extern struct UnkTextStruct2 gUnknown_80E09C0; -extern struct MenuItem gUnknown_80E0948; +const struct MenuItem gUnknown_80E0968[] = +{ + {"Delete", 0x4}, + {"Info", 0x5}, + {NULL, 0x1} +}; -extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +const struct UnkTextStruct2 gUnknown_80E0990 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E09A8 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x0B, 0x00, + 0x08, 0x03, + 0x03, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80E09C0 = { + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x0F, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; + +ALIGNED(4) const u8 gUnknown_80E09D8[] = _( + " ...Uh{COMMA} no?\n" + "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}."); + +ALIGNED(4) const u8 gUnknown_80E0A0C[] = _( + " ...Uh{COMMA} no?\n" + "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}."); +const u8 wonder_mail_6_fill[] = "pksdir0"; + +extern void sub_8012CAC(struct UnkTextStruct2 *, const struct MenuItem *); extern void sub_80306A8(s32, u32, u32, u32); -extern void sub_80141B4(char *r0, u32, struct OpenedFile **r1, u32); +extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); extern void sub_8031300(void); extern void sub_803136C(void); extern void sub_80313D8(u32); @@ -59,7 +98,7 @@ extern void sub_8030810(u32); extern void sub_803092C(void); extern void sub_8030D40(u8, u32); extern void sub_8012EA4(u32 *, u32); -extern void sub_8012D60(u32 *, struct MenuItem *, u32, u32, u32, u32); +extern void sub_8012D60(u32 *, const struct MenuItem *, u32, u32, u32, u32); extern u8 sub_8012FD8(u32 *); extern void sub_8013114(u32 *, s32 *); extern void sub_8095240(u8); @@ -160,12 +199,12 @@ void sub_80310FC(void) gUnknown_203B328->unkA8[1] = gUnknown_80E09A8; gUnknown_203B328->unkA8[2] = gUnknown_80E0990; gUnknown_203B328->unkA8[3] = gUnknown_80E0990; - sub_8012CAC(&gUnknown_203B328->unkA8[1], &gUnknown_80E0968); + sub_8012CAC(&gUnknown_203B328->unkA8[1], gUnknown_80E0968); break; case 2: case 3: gUnknown_203B328->unkA8[2] = gUnknown_80E09C0; - sub_8012CAC(&gUnknown_203B328->unkA8[2], &gUnknown_80E0948); + sub_8012CAC(&gUnknown_203B328->unkA8[2], gUnknown_80E0948); break; case 4: gUnknown_203B328->unkA8[0] = gUnknown_80E0990; @@ -193,13 +232,13 @@ void sub_8031258(void) break; case 1: sub_803092C(); - sub_8012D60(&gUnknown_203B328->unk8, &gUnknown_80E0968, 0, 0, 4, 1); + sub_8012D60(&gUnknown_203B328->unk8, gUnknown_80E0968, 0, 0, 4, 1); break; case 2: case 3: sub_803092C(); sub_8012EA4(&gUnknown_203B328->unk8, 0); - sub_8012D60(&gUnknown_203B328->unk58, &gUnknown_80E0948, 0, 0, 3, 2); + sub_8012D60(&gUnknown_203B328->unk58, gUnknown_80E0948, 0, 0, 3, 2); break; case 4: sub_8030D40(gUnknown_203B328->unk4, 3);