From 2fff4d38ca7de41aa98573abab2d8d27066607d9 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Mon, 24 Oct 2016 20:36:46 -0700 Subject: fix typo in filename --- Makefile | 2 +- asm/scipt_pokemon_util_80C4BF0.s | 1399 ------------------------------------- asm/script_pokemon_util_80C4BF0.s | 1399 +++++++++++++++++++++++++++++++++++++ ld_script.txt | 2 +- 4 files changed, 1401 insertions(+), 1401 deletions(-) delete mode 100644 asm/scipt_pokemon_util_80C4BF0.s create mode 100644 asm/script_pokemon_util_80C4BF0.s diff --git a/Makefile b/Makefile index e82af3d4e..fb0315de8 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ asm/sound_check_menu.o \ asm/secret_base.o \ asm/tv.o \ asm/contest_link_80C2020.o \ -asm/scipt_pokemon_util_80C4BF0.o \ +asm/script_pokemon_util_80C4BF0.o \ asm/field_poison.o \ asm/big_shroomish_barboach.o \ asm/fldeff_80C5CD4.o \ diff --git a/asm/scipt_pokemon_util_80C4BF0.s b/asm/scipt_pokemon_util_80C4BF0.s deleted file mode 100644 index 8d6ea4d45..000000000 --- a/asm/scipt_pokemon_util_80C4BF0.s +++ /dev/null @@ -1,1399 +0,0 @@ - .include "constants/gba_constants.s" - .include "constants/species_constants.s" - .include "asm/macros.s" - - .syntax unified - - .text - - thumb_func_start sub_80C4BF0 -sub_80C4BF0: @ 80C4BF0 - push {r4,lr} - ldr r2, _080C4C1C @ =gSaveBlock1 - ldr r1, _080C4C20 @ =gUnknown_02038570 - ldrb r3, [r1, 0x15] - movs r4, 0x9B - lsls r4, 5 - adds r0, r2, r4 - strh r3, [r0] - adds r0, r1, 0 - adds r0, 0x55 - ldrb r3, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r3, [r0] - adds r1, 0x95 - ldrb r0, [r1] - ldr r1, _080C4C24 @ =0x00001364 - adds r2, r1 - strh r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4C1C: .4byte gSaveBlock1 -_080C4C20: .4byte gUnknown_02038570 -_080C4C24: .4byte 0x00001364 - thumb_func_end sub_80C4BF0 - - thumb_func_start sub_80C4C28 -sub_80C4C28: @ 80C4C28 - push {lr} - ldr r0, _080C4C40 @ =gUnknown_0202E8CE - ldrb r0, [r0] - adds r1, r0, 0 - cmp r0, 0x1 - beq _080C4C4E - cmp r0, 0x1 - bgt _080C4C44 - cmp r0, 0 - beq _080C4C4A - b _080C4C56 - .align 2, 0 -_080C4C40: .4byte gUnknown_0202E8CE -_080C4C44: - cmp r1, 0x2 - beq _080C4C52 - b _080C4C56 -_080C4C4A: - movs r1, 0x3 - b _080C4C58 -_080C4C4E: - movs r1, 0x4 - b _080C4C58 -_080C4C52: - movs r1, 0x5 - b _080C4C58 -_080C4C56: - movs r1, 0x64 -_080C4C58: - ldr r0, _080C4C60 @ =gUnknown_0202E8CC - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080C4C60: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C28 - - thumb_func_start sub_80C4C64 -sub_80C4C64: @ 80C4C64 - push {lr} - bl sub_80C46EC - bl sub_80C4740 - bl sub_80C48F4 - pop {r0} - bx r0 - thumb_func_end sub_80C4C64 - - thumb_func_start sub_80C4C78 -sub_80C4C78: @ 80C4C78 - push {lr} - ldr r0, _080C4C8C @ =gUnknown_0203869C - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080C4CB8 - lsls r0, 2 - ldr r1, _080C4C90 @ =_080C4C94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C4C8C: .4byte gUnknown_0203869C -_080C4C90: .4byte _080C4C94 - .align 2, 0 -_080C4C94: - .4byte _080C4CA8 - .4byte _080C4CAC - .4byte _080C4CB0 - .4byte _080C4CB4 - .4byte _080C4CB8 -_080C4CA8: - movs r0, 0x8 - b _080C4CBA -_080C4CAC: - movs r0, 0x9 - b _080C4CBA -_080C4CB0: - movs r0, 0xA - b _080C4CBA -_080C4CB4: - movs r0, 0xB - b _080C4CBA -_080C4CB8: - movs r0, 0xC -_080C4CBA: - ldr r1, _080C4CD0 @ =gSaveBlock1 - lsls r0, 5 - adds r0, r1 - ldr r1, _080C4CD4 @ =0x00002e04 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - bne _080C4CDC - ldr r0, _080C4CD8 @ =gUnknown_0202E8CC - strh r1, [r0] - b _080C4CE2 - .align 2, 0 -_080C4CD0: .4byte gSaveBlock1 -_080C4CD4: .4byte 0x00002e04 -_080C4CD8: .4byte gUnknown_0202E8CC -_080C4CDC: - ldr r1, _080C4CE8 @ =gUnknown_0202E8CC - movs r0, 0x1 - strh r0, [r1] -_080C4CE2: - pop {r0} - bx r0 - .align 2, 0 -_080C4CE8: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4C78 - - thumb_func_start sub_80C4CEC -sub_80C4CEC: @ 80C4CEC - push {lr} - movs r0, 0xFF - bl sub_80B2A7C - pop {r0} - bx r0 - thumb_func_end sub_80C4CEC - - thumb_func_start sub_80C4CF8 -sub_80C4CF8: @ 80C4CF8 - push {lr} - ldr r0, _080C4D28 @ =gUnknown_02038690 - ldr r1, _080C4D2C @ =gUnknown_02038695 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C4D40 - ldr r0, _080C4D30 @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C4D40 - ldr r1, _080C4D34 @ =gUnknown_02038678 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C4D38 @ =0x0000031f - cmp r1, r0 - ble _080C4D40 - ldr r1, _080C4D3C @ =gUnknown_0202E8CC - movs r0, 0x1 - b _080C4D44 - .align 2, 0 -_080C4D28: .4byte gUnknown_02038690 -_080C4D2C: .4byte gUnknown_02038695 -_080C4D30: .4byte gUnknown_0203869E -_080C4D34: .4byte gUnknown_02038678 -_080C4D38: .4byte 0x0000031f -_080C4D3C: .4byte gUnknown_0202E8CC -_080C4D40: - ldr r1, _080C4D4C @ =gUnknown_0202E8CC - movs r0, 0 -_080C4D44: - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C4D4C: .4byte gUnknown_0202E8CC - thumb_func_end sub_80C4CF8 - - thumb_func_start sub_80C4D50 -sub_80C4D50: @ 80C4D50 - push {lr} - movs r3, 0 - ldr r0, _080C4D78 @ =gSaveBlock1 - ldr r1, _080C4D7C @ =0x00002f04 - adds r2, r0, r1 - movs r1, 0x4 -_080C4D5C: - ldrh r0, [r2] - cmp r0, 0 - beq _080C4D68 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C4D68: - adds r2, 0x20 - subs r1, 0x1 - cmp r1, 0 - bge _080C4D5C - adds r0, r3, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C4D78: .4byte gSaveBlock1 -_080C4D7C: .4byte 0x00002f04 - thumb_func_end sub_80C4D50 - - thumb_func_start sub_80C4D80 -sub_80C4D80: @ 80C4D80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _080C4EA0 @ =gUnknown_02038670 - mov r12, r0 - ldr r1, _080C4EA4 @ =gUnknown_0202E8D0 - mov r8, r1 - ldr r2, _080C4EA8 @ =gStringVar1 - mov r9, r2 - mov r2, r12 - mov r1, sp - movs r6, 0x3 -_080C4D9E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080C4D9E - movs r6, 0 -_080C4DAE: - movs r1, 0x3 - cmp r1, r6 - ble _080C4DD8 -_080C4DB4: - subs r4, r1, 0x1 - lsls r0, r4, 1 - mov r5, sp - adds r3, r5, r0 - lsls r0, r1, 1 - adds r2, r5, r0 - ldrh r5, [r3] - movs r7, 0 - ldrsh r1, [r3, r7] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080C4DD2 - strh r5, [r2] - strh r0, [r3] -_080C4DD2: - adds r1, r4, 0 - cmp r1, r6 - bgt _080C4DB4 -_080C4DD8: - adds r6, 0x1 - cmp r6, 0x2 - ble _080C4DAE - mov r2, r8 - ldrh r0, [r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - movs r2, 0 - movs r7, 0 - movs r6, 0 - lsls r0, 16 - asrs r4, r0, 16 - adds r3, r0, 0 - mov r1, sp -_080C4DF6: - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, r4 - bne _080C4E12 - lsls r0, r2, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r2, r0, 24 - mov r5, r8 - ldrh r5, [r5] - cmp r6, r5 - bne _080C4E12 - adds r7, r2, 0 -_080C4E12: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080C4DF6 - movs r6, 0 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r1, r3, 16 - lsls r2, 24 - mov r10, r2 - cmp r0, r1 - beq _080C4E40 - adds r2, r1, 0 - mov r1, sp -_080C4E30: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E40 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r2 - bne _080C4E30 -_080C4E40: - lsls r0, r6, 24 - lsrs r4, r0, 24 - adds r2, r7, 0 - movs r6, 0 - asrs r5, r3, 16 - mov r8, r5 - mov r1, r12 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r8, r0 - bne _080C4E60 - cmp r7, 0x1 - beq _080C4E78 -_080C4E5A: - subs r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080C4E60: - adds r6, 0x1 - cmp r6, 0x3 - bgt _080C4E78 - lsls r0, r6, 1 - add r0, r12 - asrs r1, r3, 16 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080C4E60 - cmp r2, 0x1 - bne _080C4E5A -_080C4E78: - lsls r1, r6, 24 - lsrs r1, 24 - mov r0, r9 - bl sub_80C4698 - ldr r0, _080C4EAC @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C4EB8 - ldr r0, _080C4EB0 @ =gStringVar2 - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8 - adds r1, r2 - bl sub_80C4674 - b _080C4EC4 - .align 2, 0 -_080C4EA0: .4byte gUnknown_02038670 -_080C4EA4: .4byte gUnknown_0202E8D0 -_080C4EA8: .4byte gStringVar1 -_080C4EAC: .4byte gUnknown_0203869A -_080C4EB0: .4byte gStringVar2 -_080C4EB4: .4byte gLinkPlayers + 0x8 -_080C4EB8: - ldr r0, _080C4ED8 @ =gStringVar2 - lsls r1, r6, 6 - ldr r2, _080C4EDC @ =gUnknown_0203857D - adds r1, r2 - bl sub_80C4674 -_080C4EC4: - mov r1, r10 - asrs r0, r1, 24 - cmp r0, 0x1 - beq _080C4ED0 - cmp r7, r0 - bne _080C4EE4 -_080C4ED0: - ldr r0, _080C4EE0 @ =gUnknown_0202E8D0 - strh r4, [r0] - b _080C4EEA - .align 2, 0 -_080C4ED8: .4byte gStringVar2 -_080C4EDC: .4byte gUnknown_0203857D -_080C4EE0: .4byte gUnknown_0202E8D0 -_080C4EE4: - ldr r1, _080C4EFC @ =gUnknown_0202E8D0 - adds r0, r4, 0x4 - strh r0, [r1] -_080C4EEA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C4EFC: .4byte gUnknown_0202E8D0 - thumb_func_end sub_80C4D80 - - thumb_func_start sub_80C4F00 -sub_80C4F00: @ 80C4F00 - push {lr} - ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C4F00 - - thumb_func_start sub_80C4F10 -sub_80C4F10: @ 80C4F10 - push {r4-r6,lr} - ldr r6, _080C4F54 @ =gUnknown_0203856C - ldrb r0, [r6] - cmp r0, 0 - beq _080C4F40 - bl sub_80AAF30 - ldr r4, _080C4F58 @ =0x02000000 - ldr r0, _080C4F5C @ =0x00015ddf - adds r1, r4, r0 - movs r5, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0xFE - movs r1, 0 - bl sub_80B2C4C - ldr r1, _080C4F60 @ =0x00015dde - adds r4, r1 - strb r0, [r4] - movs r0, 0x3 - bl sub_80B2A7C - strb r5, [r6] -_080C4F40: - ldr r0, _080C4F64 @ =sub_8106668 - bl SetMainCallback2 - ldr r1, _080C4F68 @ =gMain - ldr r0, _080C4F6C @ =sub_80C4F00 - str r0, [r1, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C4F54: .4byte gUnknown_0203856C -_080C4F58: .4byte 0x02000000 -_080C4F5C: .4byte 0x00015ddf -_080C4F60: .4byte 0x00015dde -_080C4F64: .4byte sub_8106668 -_080C4F68: .4byte gMain -_080C4F6C: .4byte sub_80C4F00 - thumb_func_end sub_80C4F10 - - thumb_func_start sub_80C4F70 -sub_80C4F70: @ 80C4F70 - push {r4,lr} - ldr r0, _080C4FA8 @ =0x00004010 - ldr r4, _080C4FAC @ =gUnknown_02038570 - ldrb r1, [r4, 0x15] - bl VarSet - ldr r0, _080C4FB0 @ =0x00004011 - adds r1, r4, 0 - adds r1, 0x55 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB4 @ =0x00004012 - adds r1, r4, 0 - adds r1, 0x95 - ldrb r1, [r1] - bl VarSet - ldr r0, _080C4FB8 @ =0x00004013 - adds r1, r4, 0 - adds r1, 0xD5 - ldrb r1, [r1] - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C4FA8: .4byte 0x00004010 -_080C4FAC: .4byte gUnknown_02038570 -_080C4FB0: .4byte 0x00004011 -_080C4FB4: .4byte 0x00004012 -_080C4FB8: .4byte 0x00004013 - thumb_func_end sub_80C4F70 - - thumb_func_start sub_80C4FBC -sub_80C4FBC: @ 80C4FBC - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080C501C @ =gUnknown_02038694 - ldrb r0, [r6] - movs r5, 0x64 - muls r0, r5 - ldr r4, _080C5020 @ =gPlayerParty - adds r0, r4 - movs r1, 0x46 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C5024 @ =gUnknown_02038690 - ldr r1, _080C5028 @ =gUnknown_02038695 - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080C5038 - ldr r0, _080C502C @ =gUnknown_0203869E - ldrh r0, [r0] - cmp r0, 0x3 - bne _080C5038 - ldr r1, _080C5030 @ =gUnknown_02038678 - lsls r0, r2, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _080C5034 @ =0x0000031f - cmp r1, r0 - ble _080C5038 - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - movs r1, 0x46 - mov r2, sp - bl SetMonData - movs r0, 0x1 - b _080C503A - .align 2, 0 -_080C501C: .4byte gUnknown_02038694 -_080C5020: .4byte gPlayerParty -_080C5024: .4byte gUnknown_02038690 -_080C5028: .4byte gUnknown_02038695 -_080C502C: .4byte gUnknown_0203869E -_080C5030: .4byte gUnknown_02038678 -_080C5034: .4byte 0x0000031f -_080C5038: - movs r0, 0 -_080C503A: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C4FBC - - thumb_func_start sub_80C5044 -sub_80C5044: @ 80C5044 - ldr r0, _080C504C @ =gUnknown_0203856C - ldrb r0, [r0] - bx lr - .align 2, 0 -_080C504C: .4byte gUnknown_0203856C - thumb_func_end sub_80C5044 - - thumb_func_start sub_80C5050 -sub_80C5050: @ 80C5050 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r4, _080C513C @ =sub_80C5190 - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080C512A - movs r0, 0xA - mov r10, r0 - movs r7, 0x3 - movs r1, 0x3 - movs r2, 0x13 - movs r3, 0xD - bl MenuDrawTextWindow - ldr r2, _080C5140 @ =gUnknown_02038570 - ldr r0, _080C5144 @ =gUnknown_0202E8D0 - ldrh r1, [r0] - lsls r1, 6 - adds r0, r1, r2 - ldrh r6, [r0] - adds r0, r2, 0 - adds r0, 0x38 - adds r0, r1, r0 - ldr r0, [r0] - mov r8, r0 - adds r2, 0x3C - adds r1, r2 - ldr r1, [r1] - mov r9, r1 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C5148 @ =gTasks - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - adds r5, r1 - movs r0, 0 - strh r0, [r5, 0x8] - strh r6, [r5, 0xA] - lsls r0, r6, 3 - ldr r1, _080C514C @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _080C5150 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - ldr r4, _080C5154 @ =gUnknown_081FAF4C - ldr r3, [r4] - ldr r4, [r4, 0x4] - str r4, [sp] - str r6, [sp, 0x4] - mov r4, r8 - str r4, [sp, 0x8] - bl sub_800D334 - adds r0, r6, 0 - mov r1, r9 - mov r2, r8 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080C5158 @ =gUnknown_02024E8C - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x2] - movs r1, 0x78 - movs r2, 0x40 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xC] - mov r1, r10 - strh r1, [r5, 0xE] - strh r7, [r5, 0x10] - ldr r3, _080C515C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _080C5160 @ =SpriteCallbackDummy - str r2, [r0] - adds r1, r3 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] -_080C512A: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C513C: .4byte sub_80C5190 -_080C5140: .4byte gUnknown_02038570 -_080C5144: .4byte gUnknown_0202E8D0 -_080C5148: .4byte gTasks -_080C514C: .4byte gMonFrontPicTable -_080C5150: .4byte gMonFrontPicCoords -_080C5154: .4byte gUnknown_081FAF4C -_080C5158: .4byte gUnknown_02024E8C -_080C515C: .4byte gSprites -_080C5160: .4byte SpriteCallbackDummy - thumb_func_end sub_80C5050 - - thumb_func_start sub_80C5164 -sub_80C5164: @ 80C5164 - push {lr} - ldr r0, _080C5188 @ =sub_80C5190 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080C5184 - ldr r0, _080C518C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5184: - pop {r0} - bx r0 - .align 2, 0 -_080C5188: .4byte sub_80C5190 -_080C518C: .4byte gTasks - thumb_func_end sub_80C5164 - - thumb_func_start sub_80C5190 -sub_80C5190: @ 80C5190 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C51B4 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080C5222 - cmp r0, 0x1 - bgt _080C51B8 - cmp r0, 0 - beq _080C51F8 - b _080C5222 - .align 2, 0 -_080C51B4: .4byte gTasks -_080C51B8: - cmp r0, 0x2 - beq _080C51C2 - cmp r0, 0x3 - beq _080C5204 - b _080C5222 -_080C51C2: - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C5200 @ =gSprites - adds r5, r0, r1 - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - ldrb r0, [r5, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _080C51F2 - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_080C51F2: - adds r0, r5, 0 - bl DestroySprite -_080C51F8: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C5222 - .align 2, 0 -_080C5200: .4byte gSprites -_080C5204: - ldrb r2, [r4, 0xE] - adds r0, r2, 0 - ldrb r3, [r4, 0x10] - adds r1, r3, 0 - adds r2, 0x9 - lsls r2, 24 - lsrs r2, 24 - adds r3, 0xA - lsls r3, 24 - lsrs r3, 24 - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl DestroyTask -_080C5222: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C5190 - - thumb_func_start sub_80C5228 -sub_80C5228: @ 80C5228 - push {r4,lr} - ldr r0, _080C5244 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C524C - ldr r4, _080C5248 @ =gScriptResult - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _080C5252 - .align 2, 0 -_080C5244: .4byte gUnknown_0203869A -_080C5248: .4byte gScriptResult -_080C524C: - ldr r1, _080C5258 @ =gScriptResult - movs r0, 0x4 - strh r0, [r1] -_080C5252: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5258: .4byte gScriptResult - thumb_func_end sub_80C5228 - - thumb_func_start sub_80C525C -sub_80C525C: @ 80C525C - push {r4,lr} - ldr r0, _080C5280 @ =gUnknown_0203869A - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C5294 - ldr r2, _080C5284 @ =gUnknown_03005D28 - ldr r1, [r2] - ldr r0, _080C5288 @ =0x41c64e6d - muls r0, r1 - ldr r1, _080C528C @ =0x00006073 - adds r0, r1 - str r0, [r2] - lsrs r0, 16 - ldr r4, _080C5290 @ =gScriptResult - b _080C529E - .align 2, 0 -_080C5280: .4byte gUnknown_0203869A -_080C5284: .4byte gUnknown_03005D28 -_080C5288: .4byte 0x41c64e6d -_080C528C: .4byte 0x00006073 -_080C5290: .4byte gScriptResult -_080C5294: - ldr r4, _080C52AC @ =gScriptResult - bl Random - lsls r0, 16 - lsrs r0, 16 -_080C529E: - ldrh r1, [r4] - bl __umodsi3 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C52AC: .4byte gScriptResult - thumb_func_end sub_80C525C - - thumb_func_start sp000_heal_pokemon -sp000_heal_pokemon: @ 80C52B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - ldr r0, _080C536C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r8, r0 - bcs _080C535C - ldr r1, _080C5370 @ =gPlayerParty - mov r10, r1 - mov r6, sp -_080C52CE: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - add r4, r10 - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - lsls r1, r0, 16 - strb r0, [r6] - lsrs r1, 24 - strb r1, [r6, 0x1] - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r7, r0, 24 - movs r5, 0 - movs r1, 0x1 - add r1, r8 - mov r9, r1 -_080C5304: - adds r1, r5, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - adds r1, r7, 0 - adds r2, r5, 0 - bl CalculatePPWithBonus - strb r0, [r6] - adds r1, r5, 0 - adds r1, 0x11 - adds r0, r4, 0 - mov r2, sp - bl SetMonData - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080C5304 - movs r0, 0 - strb r0, [r6] - strb r0, [r6, 0x1] - strb r0, [r6, 0x2] - strb r0, [r6, 0x3] - movs r1, 0x64 - mov r0, r8 - muls r0, r1 - add r0, r10 - movs r1, 0x37 - mov r2, sp - bl SetMonData - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080C536C @ =gPlayerPartyCount - ldrb r0, [r0] - cmp r8, r0 - bcc _080C52CE -_080C535C: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C536C: .4byte gPlayerPartyCount -_080C5370: .4byte gPlayerParty - thumb_func_end sp000_heal_pokemon - - thumb_func_start sub_80C5374 -sub_80C5374: @ 80C5374 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x78 - adds r5, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r0, r4, 16 - mov r8, r0 - add r6, sp, 0x14 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r3, 0 - movs r3, 0x20 - bl CreateMon - add r0, sp, 0x10 - mov r1, r8 - strb r1, [r0] - lsrs r4, 24 - strb r4, [r0, 0x1] - adds r0, r6, 0 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData - adds r0, r6, 0 - bl GiveMonToPlayer - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0x1 - bgt _080C53E8 - cmp r4, 0 - blt _080C53E8 - adds r0, r5, 0 - movs r1, 0x2 - bl sub_8090D90 - adds r0, r5, 0 - movs r1, 0x3 - bl sub_8090D90 -_080C53E8: - adds r0, r4, 0 - add sp, 0x78 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80C5374 - - thumb_func_start sub_80C53F8 -sub_80C53F8: @ 80C53F8 - push {lr} - sub sp, 0x68 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r0, sp - movs r2, 0x1 - bl sub_8042044 - add r2, sp, 0x64 - movs r0, 0x1 - strb r0, [r2] - mov r0, sp - movs r1, 0x2D - bl SetMonData - mov r0, sp - bl GiveMonToPlayer - lsls r0, 24 - lsrs r0, 24 - add sp, 0x68 - pop {r1} - bx r1 - thumb_func_end sub_80C53F8 - - thumb_func_start sub_80C5428 -sub_80C5428: @ 80C5428 - push {lr} - bl sub_803DAA0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - beq _080C5444 - cmp r1, 0x1 - bgt _080C5440 - cmp r1, 0 - beq _080C5444 - b _080C5448 -_080C5440: - cmp r1, 0x2 - bne _080C5448 -_080C5444: - ldr r0, _080C544C @ =gScriptResult - strh r1, [r0] -_080C5448: - pop {r0} - bx r0 - .align 2, 0 -_080C544C: .4byte gScriptResult - thumb_func_end sub_80C5428 - - thumb_func_start sub_80C5450 -sub_80C5450: @ 80C5450 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0 - movs r7, 0xCE - lsls r7, 1 -_080C545C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080C548C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080C5490 - cmp r0, r7 - beq _080C5490 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - cmp r0, r6 - bne _080C5490 - movs r0, 0x1 - b _080C5498 - .align 2, 0 -_080C548C: .4byte gPlayerParty -_080C5490: - adds r5, 0x1 - cmp r5, 0x5 - ble _080C545C - movs r0, 0 -_080C5498: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C5450 - - thumb_func_start sub_80C54A0 -sub_80C54A0: @ 80C54A0 - push {r4,lr} - movs r0, 0xAF - bl sub_80C5450 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x1 - bne _080C54C2 - movs r0, 0xAF - bl ItemIdToBerryType - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080C54CC @ =gStringVar1 - bl GetBerryNameByBerryType -_080C54C2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C54CC: .4byte gStringVar1 - thumb_func_end sub_80C54A0 - - thumb_func_start sub_80C54D0 -sub_80C54D0: @ 80C54D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r7, r2, 16 - lsrs r6, r7, 16 - bl ZeroEnemyPartyMons - ldr r0, _080C552C @ =gEnemyParty - mov r8, r0 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x20 - bl CreateMon - cmp r6, 0 - beq _080C551E - add r0, sp, 0x10 - strb r6, [r0] - adds r1, r0, 0 - lsrs r0, r7, 24 - strb r0, [r1, 0x1] - mov r0, r8 - movs r1, 0xC - add r2, sp, 0x10 - bl SetMonData -_080C551E: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C552C: .4byte gEnemyParty - thumb_func_end sub_80C54D0 - - thumb_func_start sub_80C5530 -sub_80C5530: @ 80C5530 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r2, 24 - cmp r3, 0x6 - bls _080C554C - ldr r0, _080C5560 @ =gPlayerPartyCount - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080C554C: - movs r0, 0x64 - muls r0, r3 - ldr r1, _080C5564 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl SetMonMoveSlot - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C5560: .4byte gPlayerPartyCount -_080C5564: .4byte gPlayerParty - thumb_func_end sub_80C5530 - - thumb_func_start sub_80C5568 -sub_80C5568: @ 80C5568 - push {lr} - ldr r1, _080C5578 @ =gMain - ldr r0, _080C557C @ =sub_80C5580 - str r0, [r1, 0x8] - bl sub_8121E10 - pop {r0} - bx r0 - .align 2, 0 -_080C5578: .4byte gMain -_080C557C: .4byte sub_80C5580 - thumb_func_end sub_80C5568 - - thumb_func_start sub_80C5580 -sub_80C5580: @ 80C5580 - push {lr} - ldr r0, _080C5590 @ =gUnknown_02039270 - ldrb r1, [r0] - cmp r1, 0 - bne _080C5598 - ldr r0, _080C5594 @ =gScriptResult - strh r1, [r0] - b _080C559E - .align 2, 0 -_080C5590: .4byte gUnknown_02039270 -_080C5594: .4byte gScriptResult -_080C5598: - ldr r1, _080C55A8 @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080C559E: - ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080C55A8: .4byte gScriptResult -_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C5580 - - thumb_func_start sub_80C55B0 -sub_80C55B0: @ 80C55B0 - push {lr} - ldr r1, _080C55C0 @ =gMain - ldr r0, _080C55C4 @ =sub_80C55C8 - str r0, [r1, 0x8] - bl sub_8121E34 - pop {r0} - bx r0 - .align 2, 0 -_080C55C0: .4byte gMain -_080C55C4: .4byte sub_80C55C8 - thumb_func_end sub_80C55B0 - - thumb_func_start sub_80C55C8 -sub_80C55C8: @ 80C55C8 - push {r4,lr} - ldr r0, _080C55DC @ =gUnknown_02039270 - ldrb r4, [r0] - cmp r4, 0 - bne _080C55E4 - bl copy_player_party_from_sav1 - ldr r0, _080C55E0 @ =gScriptResult - strh r4, [r0] - b _080C55EE - .align 2, 0 -_080C55DC: .4byte gUnknown_02039270 -_080C55E0: .4byte gScriptResult -_080C55E4: - bl sub_80C5604 - ldr r1, _080C55FC @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_080C55EE: - ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C55FC: .4byte gScriptResult -_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end sub_80C55C8 - - thumb_func_start sub_80C5604 -sub_80C5604: @ 80C5604 - push {r4-r7,lr} - sub sp, 0x134 - add r0, sp, 0x12C - movs r1, 0 - str r1, [r0] - ldr r2, _080C5674 @ =0x0500004b - mov r1, sp - bl CpuSet - movs r5, 0 - movs r7, 0x64 - ldr r6, _080C5678 @ =gPlayerParty - mov r4, sp -_080C561E: - ldr r0, _080C567C @ =gUnknown_02039270 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080C5638 - subs r0, 0x1 - adds r1, r0, 0 - muls r1, r7 - adds r1, r6 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy -_080C5638: - adds r4, 0x64 - adds r5, 0x1 - cmp r5, 0x2 - ble _080C561E - add r0, sp, 0x130 - movs r1, 0 - str r1, [r0] - ldr r4, _080C5678 @ =gPlayerParty - ldr r2, _080C5680 @ =0x05000096 - adds r1, r4, 0 - bl CpuSet - mov r5, sp - add r6, sp, 0xC8 -_080C5654: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - adds r5, 0x64 - adds r4, 0x64 - cmp r5, r6 - ble _080C5654 - bl CalculatePlayerPartyCount - add sp, 0x134 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5674: .4byte 0x0500004b -_080C5678: .4byte gPlayerParty -_080C567C: .4byte gUnknown_02039270 -_080C5680: .4byte 0x05000096 - thumb_func_end sub_80C5604 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s new file mode 100644 index 000000000..8d6ea4d45 --- /dev/null +++ b/asm/script_pokemon_util_80C4BF0.s @@ -0,0 +1,1399 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80C4BF0 +sub_80C4BF0: @ 80C4BF0 + push {r4,lr} + ldr r2, _080C4C1C @ =gSaveBlock1 + ldr r1, _080C4C20 @ =gUnknown_02038570 + ldrb r3, [r1, 0x15] + movs r4, 0x9B + lsls r4, 5 + adds r0, r2, r4 + strh r3, [r0] + adds r0, r1, 0 + adds r0, 0x55 + ldrb r3, [r0] + adds r4, 0x2 + adds r0, r2, r4 + strh r3, [r0] + adds r1, 0x95 + ldrb r0, [r1] + ldr r1, _080C4C24 @ =0x00001364 + adds r2, r1 + strh r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4C1C: .4byte gSaveBlock1 +_080C4C20: .4byte gUnknown_02038570 +_080C4C24: .4byte 0x00001364 + thumb_func_end sub_80C4BF0 + + thumb_func_start sub_80C4C28 +sub_80C4C28: @ 80C4C28 + push {lr} + ldr r0, _080C4C40 @ =gUnknown_0202E8CE + ldrb r0, [r0] + adds r1, r0, 0 + cmp r0, 0x1 + beq _080C4C4E + cmp r0, 0x1 + bgt _080C4C44 + cmp r0, 0 + beq _080C4C4A + b _080C4C56 + .align 2, 0 +_080C4C40: .4byte gUnknown_0202E8CE +_080C4C44: + cmp r1, 0x2 + beq _080C4C52 + b _080C4C56 +_080C4C4A: + movs r1, 0x3 + b _080C4C58 +_080C4C4E: + movs r1, 0x4 + b _080C4C58 +_080C4C52: + movs r1, 0x5 + b _080C4C58 +_080C4C56: + movs r1, 0x64 +_080C4C58: + ldr r0, _080C4C60 @ =gUnknown_0202E8CC + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080C4C60: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C28 + + thumb_func_start sub_80C4C64 +sub_80C4C64: @ 80C4C64 + push {lr} + bl sub_80C46EC + bl sub_80C4740 + bl sub_80C48F4 + pop {r0} + bx r0 + thumb_func_end sub_80C4C64 + + thumb_func_start sub_80C4C78 +sub_80C4C78: @ 80C4C78 + push {lr} + ldr r0, _080C4C8C @ =gUnknown_0203869C + ldrh r0, [r0] + cmp r0, 0x4 + bhi _080C4CB8 + lsls r0, 2 + ldr r1, _080C4C90 @ =_080C4C94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C4C8C: .4byte gUnknown_0203869C +_080C4C90: .4byte _080C4C94 + .align 2, 0 +_080C4C94: + .4byte _080C4CA8 + .4byte _080C4CAC + .4byte _080C4CB0 + .4byte _080C4CB4 + .4byte _080C4CB8 +_080C4CA8: + movs r0, 0x8 + b _080C4CBA +_080C4CAC: + movs r0, 0x9 + b _080C4CBA +_080C4CB0: + movs r0, 0xA + b _080C4CBA +_080C4CB4: + movs r0, 0xB + b _080C4CBA +_080C4CB8: + movs r0, 0xC +_080C4CBA: + ldr r1, _080C4CD0 @ =gSaveBlock1 + lsls r0, 5 + adds r0, r1 + ldr r1, _080C4CD4 @ =0x00002e04 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + bne _080C4CDC + ldr r0, _080C4CD8 @ =gUnknown_0202E8CC + strh r1, [r0] + b _080C4CE2 + .align 2, 0 +_080C4CD0: .4byte gSaveBlock1 +_080C4CD4: .4byte 0x00002e04 +_080C4CD8: .4byte gUnknown_0202E8CC +_080C4CDC: + ldr r1, _080C4CE8 @ =gUnknown_0202E8CC + movs r0, 0x1 + strh r0, [r1] +_080C4CE2: + pop {r0} + bx r0 + .align 2, 0 +_080C4CE8: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4C78 + + thumb_func_start sub_80C4CEC +sub_80C4CEC: @ 80C4CEC + push {lr} + movs r0, 0xFF + bl sub_80B2A7C + pop {r0} + bx r0 + thumb_func_end sub_80C4CEC + + thumb_func_start sub_80C4CF8 +sub_80C4CF8: @ 80C4CF8 + push {lr} + ldr r0, _080C4D28 @ =gUnknown_02038690 + ldr r1, _080C4D2C @ =gUnknown_02038695 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C4D40 + ldr r0, _080C4D30 @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C4D40 + ldr r1, _080C4D34 @ =gUnknown_02038678 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C4D38 @ =0x0000031f + cmp r1, r0 + ble _080C4D40 + ldr r1, _080C4D3C @ =gUnknown_0202E8CC + movs r0, 0x1 + b _080C4D44 + .align 2, 0 +_080C4D28: .4byte gUnknown_02038690 +_080C4D2C: .4byte gUnknown_02038695 +_080C4D30: .4byte gUnknown_0203869E +_080C4D34: .4byte gUnknown_02038678 +_080C4D38: .4byte 0x0000031f +_080C4D3C: .4byte gUnknown_0202E8CC +_080C4D40: + ldr r1, _080C4D4C @ =gUnknown_0202E8CC + movs r0, 0 +_080C4D44: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080C4D4C: .4byte gUnknown_0202E8CC + thumb_func_end sub_80C4CF8 + + thumb_func_start sub_80C4D50 +sub_80C4D50: @ 80C4D50 + push {lr} + movs r3, 0 + ldr r0, _080C4D78 @ =gSaveBlock1 + ldr r1, _080C4D7C @ =0x00002f04 + adds r2, r0, r1 + movs r1, 0x4 +_080C4D5C: + ldrh r0, [r2] + cmp r0, 0 + beq _080C4D68 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C4D68: + adds r2, 0x20 + subs r1, 0x1 + cmp r1, 0 + bge _080C4D5C + adds r0, r3, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C4D78: .4byte gSaveBlock1 +_080C4D7C: .4byte 0x00002f04 + thumb_func_end sub_80C4D50 + + thumb_func_start sub_80C4D80 +sub_80C4D80: @ 80C4D80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _080C4EA0 @ =gUnknown_02038670 + mov r12, r0 + ldr r1, _080C4EA4 @ =gUnknown_0202E8D0 + mov r8, r1 + ldr r2, _080C4EA8 @ =gStringVar1 + mov r9, r2 + mov r2, r12 + mov r1, sp + movs r6, 0x3 +_080C4D9E: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r6, 0x1 + cmp r6, 0 + bge _080C4D9E + movs r6, 0 +_080C4DAE: + movs r1, 0x3 + cmp r1, r6 + ble _080C4DD8 +_080C4DB4: + subs r4, r1, 0x1 + lsls r0, r4, 1 + mov r5, sp + adds r3, r5, r0 + lsls r0, r1, 1 + adds r2, r5, r0 + ldrh r5, [r3] + movs r7, 0 + ldrsh r1, [r3, r7] + movs r7, 0 + ldrsh r0, [r2, r7] + cmp r1, r0 + bge _080C4DD2 + strh r5, [r2] + strh r0, [r3] +_080C4DD2: + adds r1, r4, 0 + cmp r1, r6 + bgt _080C4DB4 +_080C4DD8: + adds r6, 0x1 + cmp r6, 0x2 + ble _080C4DAE + mov r2, r8 + ldrh r0, [r2] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + movs r2, 0 + movs r7, 0 + movs r6, 0 + lsls r0, 16 + asrs r4, r0, 16 + adds r3, r0, 0 + mov r1, sp +_080C4DF6: + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, r4 + bne _080C4E12 + lsls r0, r2, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r2, r0, 24 + mov r5, r8 + ldrh r5, [r5] + cmp r6, r5 + bne _080C4E12 + adds r7, r2, 0 +_080C4E12: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080C4DF6 + movs r6, 0 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + asrs r1, r3, 16 + lsls r2, 24 + mov r10, r2 + cmp r0, r1 + beq _080C4E40 + adds r2, r1, 0 + mov r1, sp +_080C4E30: + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E40 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r2 + bne _080C4E30 +_080C4E40: + lsls r0, r6, 24 + lsrs r4, r0, 24 + adds r2, r7, 0 + movs r6, 0 + asrs r5, r3, 16 + mov r8, r5 + mov r1, r12 + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r8, r0 + bne _080C4E60 + cmp r7, 0x1 + beq _080C4E78 +_080C4E5A: + subs r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080C4E60: + adds r6, 0x1 + cmp r6, 0x3 + bgt _080C4E78 + lsls r0, r6, 1 + add r0, r12 + asrs r1, r3, 16 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r1, r0 + bne _080C4E60 + cmp r2, 0x1 + bne _080C4E5A +_080C4E78: + lsls r1, r6, 24 + lsrs r1, 24 + mov r0, r9 + bl sub_80C4698 + ldr r0, _080C4EAC @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C4EB8 + ldr r0, _080C4EB0 @ =gStringVar2 + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8 + adds r1, r2 + bl sub_80C4674 + b _080C4EC4 + .align 2, 0 +_080C4EA0: .4byte gUnknown_02038670 +_080C4EA4: .4byte gUnknown_0202E8D0 +_080C4EA8: .4byte gStringVar1 +_080C4EAC: .4byte gUnknown_0203869A +_080C4EB0: .4byte gStringVar2 +_080C4EB4: .4byte gLinkPlayers + 0x8 +_080C4EB8: + ldr r0, _080C4ED8 @ =gStringVar2 + lsls r1, r6, 6 + ldr r2, _080C4EDC @ =gUnknown_0203857D + adds r1, r2 + bl sub_80C4674 +_080C4EC4: + mov r1, r10 + asrs r0, r1, 24 + cmp r0, 0x1 + beq _080C4ED0 + cmp r7, r0 + bne _080C4EE4 +_080C4ED0: + ldr r0, _080C4EE0 @ =gUnknown_0202E8D0 + strh r4, [r0] + b _080C4EEA + .align 2, 0 +_080C4ED8: .4byte gStringVar2 +_080C4EDC: .4byte gUnknown_0203857D +_080C4EE0: .4byte gUnknown_0202E8D0 +_080C4EE4: + ldr r1, _080C4EFC @ =gUnknown_0202E8D0 + adds r0, r4, 0x4 + strh r0, [r1] +_080C4EEA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C4EFC: .4byte gUnknown_0202E8D0 + thumb_func_end sub_80C4D80 + + thumb_func_start sub_80C4F00 +sub_80C4F00: @ 80C4F00 + push {lr} + ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C4F00 + + thumb_func_start sub_80C4F10 +sub_80C4F10: @ 80C4F10 + push {r4-r6,lr} + ldr r6, _080C4F54 @ =gUnknown_0203856C + ldrb r0, [r6] + cmp r0, 0 + beq _080C4F40 + bl sub_80AAF30 + ldr r4, _080C4F58 @ =0x02000000 + ldr r0, _080C4F5C @ =0x00015ddf + adds r1, r4, r0 + movs r5, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0xFE + movs r1, 0 + bl sub_80B2C4C + ldr r1, _080C4F60 @ =0x00015dde + adds r4, r1 + strb r0, [r4] + movs r0, 0x3 + bl sub_80B2A7C + strb r5, [r6] +_080C4F40: + ldr r0, _080C4F64 @ =sub_8106668 + bl SetMainCallback2 + ldr r1, _080C4F68 @ =gMain + ldr r0, _080C4F6C @ =sub_80C4F00 + str r0, [r1, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C4F54: .4byte gUnknown_0203856C +_080C4F58: .4byte 0x02000000 +_080C4F5C: .4byte 0x00015ddf +_080C4F60: .4byte 0x00015dde +_080C4F64: .4byte sub_8106668 +_080C4F68: .4byte gMain +_080C4F6C: .4byte sub_80C4F00 + thumb_func_end sub_80C4F10 + + thumb_func_start sub_80C4F70 +sub_80C4F70: @ 80C4F70 + push {r4,lr} + ldr r0, _080C4FA8 @ =0x00004010 + ldr r4, _080C4FAC @ =gUnknown_02038570 + ldrb r1, [r4, 0x15] + bl VarSet + ldr r0, _080C4FB0 @ =0x00004011 + adds r1, r4, 0 + adds r1, 0x55 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB4 @ =0x00004012 + adds r1, r4, 0 + adds r1, 0x95 + ldrb r1, [r1] + bl VarSet + ldr r0, _080C4FB8 @ =0x00004013 + adds r1, r4, 0 + adds r1, 0xD5 + ldrb r1, [r1] + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C4FA8: .4byte 0x00004010 +_080C4FAC: .4byte gUnknown_02038570 +_080C4FB0: .4byte 0x00004011 +_080C4FB4: .4byte 0x00004012 +_080C4FB8: .4byte 0x00004013 + thumb_func_end sub_80C4F70 + + thumb_func_start sub_80C4FBC +sub_80C4FBC: @ 80C4FBC + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080C501C @ =gUnknown_02038694 + ldrb r0, [r6] + movs r5, 0x64 + muls r0, r5 + ldr r4, _080C5020 @ =gPlayerParty + adds r0, r4 + movs r1, 0x46 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + strb r0, [r1] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C5024 @ =gUnknown_02038690 + ldr r1, _080C5028 @ =gUnknown_02038695 + ldrb r2, [r1] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080C5038 + ldr r0, _080C502C @ =gUnknown_0203869E + ldrh r0, [r0] + cmp r0, 0x3 + bne _080C5038 + ldr r1, _080C5030 @ =gUnknown_02038678 + lsls r0, r2, 1 + adds r0, r1 + movs r2, 0 + ldrsh r1, [r0, r2] + ldr r0, _080C5034 @ =0x0000031f + cmp r1, r0 + ble _080C5038 + movs r1, 0x1 + mov r0, sp + strb r1, [r0] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + movs r1, 0x46 + mov r2, sp + bl SetMonData + movs r0, 0x1 + b _080C503A + .align 2, 0 +_080C501C: .4byte gUnknown_02038694 +_080C5020: .4byte gPlayerParty +_080C5024: .4byte gUnknown_02038690 +_080C5028: .4byte gUnknown_02038695 +_080C502C: .4byte gUnknown_0203869E +_080C5030: .4byte gUnknown_02038678 +_080C5034: .4byte 0x0000031f +_080C5038: + movs r0, 0 +_080C503A: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C4FBC + + thumb_func_start sub_80C5044 +sub_80C5044: @ 80C5044 + ldr r0, _080C504C @ =gUnknown_0203856C + ldrb r0, [r0] + bx lr + .align 2, 0 +_080C504C: .4byte gUnknown_0203856C + thumb_func_end sub_80C5044 + + thumb_func_start sub_80C5050 +sub_80C5050: @ 80C5050 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + ldr r4, _080C513C @ =sub_80C5190 + adds r0, r4, 0 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080C512A + movs r0, 0xA + mov r10, r0 + movs r7, 0x3 + movs r1, 0x3 + movs r2, 0x13 + movs r3, 0xD + bl MenuDrawTextWindow + ldr r2, _080C5140 @ =gUnknown_02038570 + ldr r0, _080C5144 @ =gUnknown_0202E8D0 + ldrh r1, [r0] + lsls r1, 6 + adds r0, r1, r2 + ldrh r6, [r0] + adds r0, r2, 0 + adds r0, 0x38 + adds r0, r1, r0 + ldr r0, [r0] + mov r8, r0 + adds r2, 0x3C + adds r1, r2 + ldr r1, [r1] + mov r9, r1 + adds r0, r4, 0 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C5148 @ =gTasks + lsls r5, r0, 2 + adds r5, r0 + lsls r5, 3 + adds r5, r1 + movs r0, 0 + strh r0, [r5, 0x8] + strh r6, [r5, 0xA] + lsls r0, r6, 3 + ldr r1, _080C514C @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _080C5150 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + ldr r4, _080C5154 @ =gUnknown_081FAF4C + ldr r3, [r4] + ldr r4, [r4, 0x4] + str r4, [sp] + str r6, [sp, 0x4] + mov r4, r8 + str r4, [sp, 0x8] + bl sub_800D334 + adds r0, r6, 0 + mov r1, r9 + mov r2, r8 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080C5158 @ =gUnknown_02024E8C + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x2] + movs r1, 0x78 + movs r2, 0x40 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xC] + mov r1, r10 + strh r1, [r5, 0xE] + strh r7, [r5, 0x10] + ldr r3, _080C515C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _080C5160 @ =SpriteCallbackDummy + str r2, [r0] + adds r1, r3 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] +_080C512A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C513C: .4byte sub_80C5190 +_080C5140: .4byte gUnknown_02038570 +_080C5144: .4byte gUnknown_0202E8D0 +_080C5148: .4byte gTasks +_080C514C: .4byte gMonFrontPicTable +_080C5150: .4byte gMonFrontPicCoords +_080C5154: .4byte gUnknown_081FAF4C +_080C5158: .4byte gUnknown_02024E8C +_080C515C: .4byte gSprites +_080C5160: .4byte SpriteCallbackDummy + thumb_func_end sub_80C5050 + + thumb_func_start sub_80C5164 +sub_80C5164: @ 80C5164 + push {lr} + ldr r0, _080C5188 @ =sub_80C5190 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _080C5184 + ldr r0, _080C518C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5184: + pop {r0} + bx r0 + .align 2, 0 +_080C5188: .4byte sub_80C5190 +_080C518C: .4byte gTasks + thumb_func_end sub_80C5164 + + thumb_func_start sub_80C5190 +sub_80C5190: @ 80C5190 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C51B4 @ =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080C5222 + cmp r0, 0x1 + bgt _080C51B8 + cmp r0, 0 + beq _080C51F8 + b _080C5222 + .align 2, 0 +_080C51B4: .4byte gTasks +_080C51B8: + cmp r0, 0x2 + beq _080C51C2 + cmp r0, 0x3 + beq _080C5204 + b _080C5222 +_080C51C2: + movs r0, 0xC + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C5200 @ =gSprites + adds r5, r0, r1 + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + ldrb r0, [r5, 0x1] + lsls r0, 30 + cmp r0, 0 + beq _080C51F2 + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix +_080C51F2: + adds r0, r5, 0 + bl DestroySprite +_080C51F8: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080C5222 + .align 2, 0 +_080C5200: .4byte gSprites +_080C5204: + ldrb r2, [r4, 0xE] + adds r0, r2, 0 + ldrb r3, [r4, 0x10] + adds r1, r3, 0 + adds r2, 0x9 + lsls r2, 24 + lsrs r2, 24 + adds r3, 0xA + lsls r3, 24 + lsrs r3, 24 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl DestroyTask +_080C5222: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C5190 + + thumb_func_start sub_80C5228 +sub_80C5228: @ 80C5228 + push {r4,lr} + ldr r0, _080C5244 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C524C + ldr r4, _080C5248 @ =gScriptResult + bl GetMultiplayerId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + b _080C5252 + .align 2, 0 +_080C5244: .4byte gUnknown_0203869A +_080C5248: .4byte gScriptResult +_080C524C: + ldr r1, _080C5258 @ =gScriptResult + movs r0, 0x4 + strh r0, [r1] +_080C5252: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5258: .4byte gScriptResult + thumb_func_end sub_80C5228 + + thumb_func_start sub_80C525C +sub_80C525C: @ 80C525C + push {r4,lr} + ldr r0, _080C5280 @ =gUnknown_0203869A + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C5294 + ldr r2, _080C5284 @ =gUnknown_03005D28 + ldr r1, [r2] + ldr r0, _080C5288 @ =0x41c64e6d + muls r0, r1 + ldr r1, _080C528C @ =0x00006073 + adds r0, r1 + str r0, [r2] + lsrs r0, 16 + ldr r4, _080C5290 @ =gScriptResult + b _080C529E + .align 2, 0 +_080C5280: .4byte gUnknown_0203869A +_080C5284: .4byte gUnknown_03005D28 +_080C5288: .4byte 0x41c64e6d +_080C528C: .4byte 0x00006073 +_080C5290: .4byte gScriptResult +_080C5294: + ldr r4, _080C52AC @ =gScriptResult + bl Random + lsls r0, 16 + lsrs r0, 16 +_080C529E: + ldrh r1, [r4] + bl __umodsi3 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C52AC: .4byte gScriptResult + thumb_func_end sub_80C525C + + thumb_func_start sp000_heal_pokemon +sp000_heal_pokemon: @ 80C52B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + ldr r0, _080C536C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r8, r0 + bcs _080C535C + ldr r1, _080C5370 @ =gPlayerParty + mov r10, r1 + mov r6, sp +_080C52CE: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + add r4, r10 + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + lsls r1, r0, 16 + strb r0, [r6] + lsrs r1, 24 + strb r1, [r6, 0x1] + adds r0, r4, 0 + movs r1, 0x39 + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 + movs r1, 0x1 + add r1, r8 + mov r9, r1 +_080C5304: + adds r1, r5, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + adds r1, r7, 0 + adds r2, r5, 0 + bl CalculatePPWithBonus + strb r0, [r6] + adds r1, r5, 0 + adds r1, 0x11 + adds r0, r4, 0 + mov r2, sp + bl SetMonData + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _080C5304 + movs r0, 0 + strb r0, [r6] + strb r0, [r6, 0x1] + strb r0, [r6, 0x2] + strb r0, [r6, 0x3] + movs r1, 0x64 + mov r0, r8 + muls r0, r1 + add r0, r10 + movs r1, 0x37 + mov r2, sp + bl SetMonData + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _080C536C @ =gPlayerPartyCount + ldrb r0, [r0] + cmp r8, r0 + bcc _080C52CE +_080C535C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C536C: .4byte gPlayerPartyCount +_080C5370: .4byte gPlayerParty + thumb_func_end sp000_heal_pokemon + + thumb_func_start sub_80C5374 +sub_80C5374: @ 80C5374 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x78 + adds r5, r0, 0 + adds r3, r1, 0 + adds r4, r2, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 16 + lsrs r0, r4, 16 + mov r8, r0 + add r6, sp, 0x14 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r3, 0 + movs r3, 0x20 + bl CreateMon + add r0, sp, 0x10 + mov r1, r8 + strb r1, [r0] + lsrs r4, 24 + strb r4, [r0, 0x1] + adds r0, r6, 0 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData + adds r0, r6, 0 + bl GiveMonToPlayer + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0x1 + bgt _080C53E8 + cmp r4, 0 + blt _080C53E8 + adds r0, r5, 0 + movs r1, 0x2 + bl sub_8090D90 + adds r0, r5, 0 + movs r1, 0x3 + bl sub_8090D90 +_080C53E8: + adds r0, r4, 0 + add sp, 0x78 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80C5374 + + thumb_func_start sub_80C53F8 +sub_80C53F8: @ 80C53F8 + push {lr} + sub sp, 0x68 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + mov r0, sp + movs r2, 0x1 + bl sub_8042044 + add r2, sp, 0x64 + movs r0, 0x1 + strb r0, [r2] + mov r0, sp + movs r1, 0x2D + bl SetMonData + mov r0, sp + bl GiveMonToPlayer + lsls r0, 24 + lsrs r0, 24 + add sp, 0x68 + pop {r1} + bx r1 + thumb_func_end sub_80C53F8 + + thumb_func_start sub_80C5428 +sub_80C5428: @ 80C5428 + push {lr} + bl sub_803DAA0 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + beq _080C5444 + cmp r1, 0x1 + bgt _080C5440 + cmp r1, 0 + beq _080C5444 + b _080C5448 +_080C5440: + cmp r1, 0x2 + bne _080C5448 +_080C5444: + ldr r0, _080C544C @ =gScriptResult + strh r1, [r0] +_080C5448: + pop {r0} + bx r0 + .align 2, 0 +_080C544C: .4byte gScriptResult + thumb_func_end sub_80C5428 + + thumb_func_start sub_80C5450 +sub_80C5450: @ 80C5450 + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r5, 0 + movs r7, 0xCE + lsls r7, 1 +_080C545C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080C548C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080C5490 + cmp r0, r7 + beq _080C5490 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + cmp r0, r6 + bne _080C5490 + movs r0, 0x1 + b _080C5498 + .align 2, 0 +_080C548C: .4byte gPlayerParty +_080C5490: + adds r5, 0x1 + cmp r5, 0x5 + ble _080C545C + movs r0, 0 +_080C5498: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C5450 + + thumb_func_start sub_80C54A0 +sub_80C54A0: @ 80C54A0 + push {r4,lr} + movs r0, 0xAF + bl sub_80C5450 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0x1 + bne _080C54C2 + movs r0, 0xAF + bl ItemIdToBerryType + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080C54CC @ =gStringVar1 + bl GetBerryNameByBerryType +_080C54C2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C54CC: .4byte gStringVar1 + thumb_func_end sub_80C54A0 + + thumb_func_start sub_80C54D0 +sub_80C54D0: @ 80C54D0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + lsls r7, r2, 16 + lsrs r6, r7, 16 + bl ZeroEnemyPartyMons + ldr r0, _080C552C @ =gEnemyParty + mov r8, r0 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x20 + bl CreateMon + cmp r6, 0 + beq _080C551E + add r0, sp, 0x10 + strb r6, [r0] + adds r1, r0, 0 + lsrs r0, r7, 24 + strb r0, [r1, 0x1] + mov r0, r8 + movs r1, 0xC + add r2, sp, 0x10 + bl SetMonData +_080C551E: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C552C: .4byte gEnemyParty + thumb_func_end sub_80C54D0 + + thumb_func_start sub_80C5530 +sub_80C5530: @ 80C5530 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + cmp r3, 0x6 + bls _080C554C + ldr r0, _080C5560 @ =gPlayerPartyCount + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_080C554C: + movs r0, 0x64 + muls r0, r3 + ldr r1, _080C5564 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl SetMonMoveSlot + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C5560: .4byte gPlayerPartyCount +_080C5564: .4byte gPlayerParty + thumb_func_end sub_80C5530 + + thumb_func_start sub_80C5568 +sub_80C5568: @ 80C5568 + push {lr} + ldr r1, _080C5578 @ =gMain + ldr r0, _080C557C @ =sub_80C5580 + str r0, [r1, 0x8] + bl sub_8121E10 + pop {r0} + bx r0 + .align 2, 0 +_080C5578: .4byte gMain +_080C557C: .4byte sub_80C5580 + thumb_func_end sub_80C5568 + + thumb_func_start sub_80C5580 +sub_80C5580: @ 80C5580 + push {lr} + ldr r0, _080C5590 @ =gUnknown_02039270 + ldrb r1, [r0] + cmp r1, 0 + bne _080C5598 + ldr r0, _080C5594 @ =gScriptResult + strh r1, [r0] + b _080C559E + .align 2, 0 +_080C5590: .4byte gUnknown_02039270 +_080C5594: .4byte gScriptResult +_080C5598: + ldr r1, _080C55A8 @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_080C559E: + ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_080C55A8: .4byte gScriptResult +_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C5580 + + thumb_func_start sub_80C55B0 +sub_80C55B0: @ 80C55B0 + push {lr} + ldr r1, _080C55C0 @ =gMain + ldr r0, _080C55C4 @ =sub_80C55C8 + str r0, [r1, 0x8] + bl sub_8121E34 + pop {r0} + bx r0 + .align 2, 0 +_080C55C0: .4byte gMain +_080C55C4: .4byte sub_80C55C8 + thumb_func_end sub_80C55B0 + + thumb_func_start sub_80C55C8 +sub_80C55C8: @ 80C55C8 + push {r4,lr} + ldr r0, _080C55DC @ =gUnknown_02039270 + ldrb r4, [r0] + cmp r4, 0 + bne _080C55E4 + bl copy_player_party_from_sav1 + ldr r0, _080C55E0 @ =gScriptResult + strh r4, [r0] + b _080C55EE + .align 2, 0 +_080C55DC: .4byte gUnknown_02039270 +_080C55E0: .4byte gScriptResult +_080C55E4: + bl sub_80C5604 + ldr r1, _080C55FC @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] +_080C55EE: + ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C55FC: .4byte gScriptResult +_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end sub_80C55C8 + + thumb_func_start sub_80C5604 +sub_80C5604: @ 80C5604 + push {r4-r7,lr} + sub sp, 0x134 + add r0, sp, 0x12C + movs r1, 0 + str r1, [r0] + ldr r2, _080C5674 @ =0x0500004b + mov r1, sp + bl CpuSet + movs r5, 0 + movs r7, 0x64 + ldr r6, _080C5678 @ =gPlayerParty + mov r4, sp +_080C561E: + ldr r0, _080C567C @ =gUnknown_02039270 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _080C5638 + subs r0, 0x1 + adds r1, r0, 0 + muls r1, r7 + adds r1, r6 + adds r0, r4, 0 + movs r2, 0x64 + bl memcpy +_080C5638: + adds r4, 0x64 + adds r5, 0x1 + cmp r5, 0x2 + ble _080C561E + add r0, sp, 0x130 + movs r1, 0 + str r1, [r0] + ldr r4, _080C5678 @ =gPlayerParty + ldr r2, _080C5680 @ =0x05000096 + adds r1, r4, 0 + bl CpuSet + mov r5, sp + add r6, sp, 0xC8 +_080C5654: + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + adds r5, 0x64 + adds r4, 0x64 + cmp r5, r6 + ble _080C5654 + bl CalculatePlayerPartyCount + add sp, 0x134 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5674: .4byte 0x0500004b +_080C5678: .4byte gPlayerParty +_080C567C: .4byte gUnknown_02039270 +_080C5680: .4byte 0x05000096 + thumb_func_end sub_80C5604 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index c6984bff4..214cd3964 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -112,7 +112,7 @@ SECTIONS { asm/secret_base.o(.text); asm/tv.o(.text); asm/contest_link_80C2020.o(.text); - asm/scipt_pokemon_util_80C4BF0.o(.text); + asm/script_pokemon_util_80C4BF0.o(.text); asm/field_poison.o(.text); asm/big_shroomish_barboach.o(.text); asm/fldeff_80C5CD4.o(.text); -- cgit v1.2.3