diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/flying.s | 2462 | ||||
-rw-r--r-- | asm/ice.s | 3186 | ||||
-rw-r--r-- | asm/rom_header.inc | 77 |
3 files changed, 0 insertions, 5725 deletions
diff --git a/asm/flying.s b/asm/flying.s deleted file mode 100644 index 126f18206..000000000 --- a/asm/flying.s +++ /dev/null @@ -1,2462 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - @ flying - - thumb_func_start sub_80DA4D8 -sub_80DA4D8: @ 80DA4D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r7, 0 - adds r5, 0x2E - ldr r0, _080DA4F8 @ =gBattleAnimArgs - ldrh r1, [r0, 0xE] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080DA500 - ldr r0, _080DA4FC @ =gAnimBankAttacker - b _080DA502 - .align 2, 0 -_080DA4F8: .4byte gBattleAnimArgs -_080DA4FC: .4byte gAnimBankAttacker -_080DA500: - ldr r0, _080DA5B0 @ =gAnimBankTarget -_080DA502: - ldrb r6, [r0] - adds r0, r6, 0 - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080DA518 - ldr r1, _080DA5B4 @ =gBattleAnimArgs - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DA518: - adds r0, r6, 0 - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - ldr r4, _080DA5B4 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r7, 0x20] - adds r0, r6, 0 - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - ldrh r1, [r4, 0x2] - lsrs r0, 24 - adds r1, r0, r1 - strh r1, [r7, 0x22] - lsls r1, 8 - strh r1, [r5, 0x8] - ldrh r1, [r4, 0xC] - adds r0, r1 - lsls r0, 1 - ldrh r2, [r5, 0xE] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0xE] - ldrb r0, [r5] - movs r2, 0x4 - mov r8, r2 - mov r1, r8 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r4, 0x4] - ldrb r1, [r4, 0x4] - strh r1, [r5, 0x2] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0xA] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x4] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x6] - ldrh r0, [r4, 0xA] - strh r0, [r5, 0xC] - subs r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0x7F - bhi _080DA618 - ldr r0, _080DA5B8 @ =gMain - ldr r2, _080DA5BC @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA5C0 - adds r0, r6, 0 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r7, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - b _080DA5D8 - .align 2, 0 -_080DA5B0: .4byte gAnimBankTarget -_080DA5B4: .4byte gBattleAnimArgs -_080DA5B8: .4byte gMain -_080DA5BC: .4byte 0x0000043d -_080DA5C0: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] -_080DA5D8: - ldrb r1, [r5, 0xE] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - strb r0, [r5, 0xE] - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - b _080DA66E -_080DA618: - adds r0, r6, 0 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x5] - ldrb r0, [r5, 0xE] - movs r4, 0x1 - orrs r0, r4 - strb r0, [r5, 0xE] - movs r2, 0x4 - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DA678 - adds r3, r7, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - ands r1, r4 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - mov r1, r8 -_080DA66E: - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] -_080DA678: - ldrh r1, [r5, 0x2] - lsrs r1, 6 - lsls r1, 4 - ldrb r2, [r5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldr r3, _080DA6E4 @ =gSineTable - ldrh r0, [r5, 0x2] - lsls r0, 1 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - ldrb r0, [r5, 0xC] - muls r0, r1 - asrs r0, 8 - strh r0, [r7, 0x24] - ldrb r2, [r7, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r1, 0x24 - ldrsh r0, [r7, r1] - negs r0, r0 - asrs r0, 1 - ldrb r5, [r5, 0xA] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r4, [r1] - ldr r1, _080DA6E8 @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r4, [r2, 0x2] - lsls r0, r4, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - ldr r0, _080DA6EC @ =sub_80DA6F0 - str r0, [r7, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DA6E4: .4byte gSineTable -_080DA6E8: .4byte gOamMatrices -_080DA6EC: .4byte sub_80DA6F0 - thumb_func_end sub_80DA4D8 - - thumb_func_start sub_80DA6F0 -sub_80DA6F0: @ 80DA6F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - movs r0, 0x2E - adds r0, r5 - mov r12, r0 - ldrb r2, [r0] - movs r7, 0x1 - movs r1, 0x1 - mov r9, r1 - mov r0, r9 - ands r0, r2 - cmp r0, 0 - beq _080DA730 - mov r3, r12 - ldrb r0, [r3, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r3, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080DA724 - b _080DAD1A -_080DA724: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAD1A -_080DA730: - mov r4, r12 - ldrh r0, [r4, 0x2] - lsrs r4, r0, 6 - mov r8, r0 - cmp r4, 0x1 - bne _080DA73E - b _080DA896 -_080DA73E: - cmp r4, 0x1 - bgt _080DA748 - cmp r4, 0 - beq _080DA756 - b _080DAC52 -_080DA748: - cmp r4, 0x2 - bne _080DA74E - b _080DA9C8 -_080DA74E: - cmp r4, 0x3 - bne _080DA754 - b _080DAB0E -_080DA754: - b _080DAC52 -_080DA756: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA76C - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r1, r12 - strb r0, [r1] - strb r6, [r1, 0x1] - b _080DA88A -_080DA76C: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA790 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r2, r12 - strb r1, [r2] - strb r6, [r2, 0x1] - b _080DA88A -_080DA790: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA88A - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA87A - ldr r0, _080DA80C @ =gMain - ldr r1, _080DA810 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA82E - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA814 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA868 - .align 2, 0 -_080DA80C: .4byte gMain -_080DA810: .4byte 0x0000043d -_080DA814: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA866 -_080DA82E: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA85C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DA87A -_080DA85C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA866: - mov r3, r12 -_080DA868: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DA87A: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DA88A: - mov r2, r12 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - strb r0, [r2] - b _080DAC52 -_080DA896: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DA8AC - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DA9BC -_080DA8AC: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DA8BE - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DA9BC -_080DA8BE: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA9BC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA9AC - ldr r0, _080DA940 @ =gMain - ldr r1, _080DA944 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA962 - mov r2, r12 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA948 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r3, r12 - b _080DA978 - .align 2, 0 -_080DA940: .4byte gMain -_080DA944: .4byte 0x0000043d -_080DA948: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA996 -_080DA962: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA98C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] -_080DA978: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DA9AC -_080DA98C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA996: - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] -_080DA9AC: - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r4, [r3, 0x2] - mov r8, r4 -_080DA9BC: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080DAC4C -_080DA9C8: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA9DE - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAAFE -_080DA9DE: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA9F0 - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DAAFE -_080DA9F0: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _080DA9FA - b _080DAAFE -_080DA9FA: - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAAEC - ldr r0, _080DAA6C @ =gMain - ldr r3, _080DAA70 @ =0x0000043d - adds r0, r3 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - beq _080DAAA4 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAA74 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAAD8 - .align 2, 0 -_080DAA6C: .4byte gMain -_080DAA70: .4byte 0x0000043d -_080DAA74: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAAEC -_080DAAA4: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAACE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DAAEC -_080DAACE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAAD8: - mov r4, r12 - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080DAAEC: - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r2, [r1, 0x2] - mov r8, r2 -_080DAAFE: - mov r3, r12 - ldrb r0, [r3] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r3] - b _080DAC52 -_080DAB0E: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DAB20 - movs r0, 0x8 - orrs r0, r2 - mov r4, r12 - strb r0, [r4] - b _080DAC42 -_080DAB20: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DAB44 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r0, r12 - strb r1, [r0] - strb r6, [r0, 0x1] - b _080DAC42 -_080DAB44: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DAC42 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAC32 - ldr r0, _080DABC4 @ =gMain - ldr r3, _080DABC8 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DABE6 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DABCC - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - b _080DAC00 - .align 2, 0 -_080DABC4: .4byte gMain -_080DABC8: .4byte 0x0000043d -_080DABCC: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAC1E -_080DABE6: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAC14 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] -_080DAC00: - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAC32 -_080DAC14: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAC1E: - mov r3, r12 - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DAC32: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DAC42: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080DAC4C: - orrs r1, r0 - mov r2, r12 - strb r1, [r2] -_080DAC52: - mov r3, r12 - ldrb r1, [r3] - lsls r1, 30 - lsrs r1, 31 - mov r0, r12 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080DACE0 @ =gSineTable - mov r4, r8 - lsls r0, r4, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r4, 0x24 - ldrsh r0, [r5, r4] - negs r0, r0 - asrs r0, 1 - mov r1, r12 - ldrb r1, [r1, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080DACE4 @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - mov r2, r12 - ldrh r0, [r2, 0x6] - ldrh r3, [r2, 0x8] - adds r0, r3 - strh r0, [r2, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r4, 0x4 - ldrsh r0, [r2, r4] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DACE8 - ldrh r0, [r2, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0x2] - b _080DACFE - .align 2, 0 -_080DACE0: .4byte gSineTable -_080DACE4: .4byte gOamMatrices -_080DACE8: - mov r1, r12 - ldrh r0, [r1, 0x4] - ldr r1, _080DAD28 @ =0x00007fff - ands r1, r0 - mov r2, r12 - ldrh r2, [r2, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - mov r3, r12 - strh r1, [r3, 0x2] -_080DACFE: - movs r4, 0x22 - ldrsh r1, [r5, r4] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - mov r3, r12 - ldrh r0, [r3, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080DAD1A - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080DAD2C @ =sub_80DA48C - str r0, [r5, 0x1C] -_080DAD1A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAD28: .4byte 0x00007fff -_080DAD2C: .4byte sub_80DA48C - thumb_func_end sub_80DA6F0 - - thumb_func_start sub_80DAD30 -sub_80DAD30: @ 80DAD30 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _080DAD78 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r5, _080DAD7C @ =gAnimBankAttacker - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080DAD80 @ =TranslateAnimSpriteToTargetMonLocation - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DAD78: .4byte gAnimBankTarget -_080DAD7C: .4byte gAnimBankAttacker -_080DAD80: .4byte TranslateAnimSpriteToTargetMonLocation - thumb_func_end sub_80DAD30 - - thumb_func_start sub_80DAD84 -sub_80DAD84: @ 80DAD84 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r5, _080DADCC @ =gBattleAnimArgs - ldrh r0, [r5] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x34] - ldr r0, _080DADD0 @ =gMain - ldr r1, _080DADD4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DAE44 - ldr r0, _080DADD8 @ =gBanksBySide - ldr r1, _080DADDC @ =gAnimBankTarget - ldrb r2, [r1] - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DADE0 - adds r0, r2, 0 - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - b _080DADEE - .align 2, 0 -_080DADCC: .4byte gBattleAnimArgs -_080DADD0: .4byte gMain -_080DADD4: .4byte 0x0000043d -_080DADD8: .4byte gBanksBySide -_080DADDC: .4byte gAnimBankTarget -_080DADE0: - adds r0, r2, 0 - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x28 -_080DADEE: - strh r0, [r4, 0x3C] - ldr r0, _080DAE1C @ =gBattleAnimArgs - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DAE24 - ldr r0, _080DAE20 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE1C: .4byte gBattleAnimArgs -_080DAE20: .4byte gAnimBankTarget -_080DAE24: - ldr r0, _080DAE40 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080DAE58 - .align 2, 0 -_080DAE40: .4byte gAnimBankTarget -_080DAE44: - ldr r0, _080DAEFC @ =gAnimBankTarget - ldrb r0, [r0] - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x3C] -_080DAE58: - ldr r5, _080DAF00 @ =gSineTable - ldrh r3, [r4, 0x30] - movs r1, 0xFF - ands r1, r3 - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - movs r2, 0 - strh r0, [r4, 0x36] - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r1] - negs r0, r0 - strh r0, [r4, 0x38] - strh r2, [r4, 0x3A] - strh r2, [r4, 0x26] - strh r2, [r4, 0x24] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r6, r0, 27 - lsls r3, 16 - lsrs r3, 24 - strh r3, [r4, 0x30] - bl Random - lsls r0, 16 - asrs r7, r0, 16 - movs r0, 0x80 - lsls r0, 8 - ands r0, r7 - cmp r0, 0 - beq _080DAEA2 - ldrh r1, [r4, 0x30] - movs r0, 0xFF - subs r0, r1 - strh r0, [r4, 0x30] -_080DAEA2: - movs r0, 0x30 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - ldr r3, _080DAF04 @ =gOamMatrices - lsls r2, r6, 3 - adds r2, r3 - adds r1, 0x40 - lsls r1, 1 - adds r1, r5 - ldrh r1, [r1] - strh r1, [r2, 0x6] - strh r1, [r2] - strh r0, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - adds r3, r4, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - movs r0, 0x1 - ands r0, r7 - cmp r0, 0 - beq _080DAEF2 - adds r2, r4, 0 - adds r2, 0x2A - movs r1, 0x1 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_080DAEF2: - ldr r0, _080DAF08 @ =sub_80DAF0C - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAEFC: .4byte gAnimBankTarget -_080DAF00: .4byte gSineTable -_080DAF04: .4byte gOamMatrices -_080DAF08: .4byte sub_80DAF0C - thumb_func_end sub_80DAD84 - - thumb_func_start sub_80DAF0C -sub_80DAF0C: @ 80DAF0C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x2E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - mov r8, r1 - movs r7, 0 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080DAFF0 - movs r2, 0x36 - ldrsh r1, [r4, r2] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r6, r0, 8 - strh r6, [r4, 0x24] - movs r0, 0x38 - ldrsh r1, [r4, r0] - movs r2, 0x3A - ldrsh r0, [r4, r2] - muls r0, r1 - asrs r3, r0, 8 - strh r3, [r4, 0x26] - ldrh r2, [r4, 0x34] - movs r1, 0xFF - adds r0, r1, 0 - ands r0, r2 - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - ldrh r2, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - ands r1, r2 - cmp r0, r1 - blt _080DAFF0 - ldrh r0, [r4, 0x20] - adds r0, r6 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - strh r7, [r4, 0x24] - strh r7, [r4, 0x26] - mov r0, sp - adds r1, r5, 0 - movs r2, 0x10 - bl memcpy - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - ldrh r0, [r4, 0x22] - lsls r0, 8 - strh r0, [r5, 0x8] - mov r0, sp - ldrh r0, [r0, 0x6] - lsrs r1, r0, 8 - strh r1, [r5, 0x6] - strh r7, [r5, 0x2] - mov r0, sp - ldrh r0, [r0, 0x2] - strh r0, [r5, 0xA] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - beq _080DAFC0 - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFB8 - ldr r0, _080DAFB4 @ =0x00008001 - b _080DAFCE - .align 2, 0 -_080DAFB4: .4byte 0x00008001 -_080DAFB8: - ldr r0, _080DAFBC @ =0x00008002 - b _080DAFCE - .align 2, 0 -_080DAFBC: .4byte 0x00008002 -_080DAFC0: - movs r0, 0x8 - ands r1, r0 - cmp r1, 0 - beq _080DAFCC - movs r0, 0x1 - b _080DAFCE -_080DAFCC: - movs r0, 0x2 -_080DAFCE: - strh r0, [r5, 0x4] - mov r0, sp - ldrh r0, [r0, 0x4] - lsrs r0, 8 - strb r0, [r5, 0xC] - subs r0, 0x2 - strb r0, [r5, 0xD] - mov r0, sp - ldrh r1, [r0, 0xE] - lsls r1, 1 - ldrh r2, [r5, 0xE] - movs r0, 0x1 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0xE] - ldr r0, _080DAFFC @ =sub_80DA6F0 - str r0, [r4, 0x1C] -_080DAFF0: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAFFC: .4byte sub_80DA6F0 - thumb_func_end sub_80DAF0C - - thumb_func_start sub_80DB000 -sub_80DB000: @ 80DB000 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DB018 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB01C - adds r0, r5, 0 - movs r1, 0 - bl InitAnimSpritePos - b _080DB024 - .align 2, 0 -_080DB018: .4byte gBattleAnimArgs -_080DB01C: - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 -_080DB024: - ldr r4, _080DB08C @ =gBattleAnimArgs - movs r2, 0x4 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DB03C - ldr r0, _080DB090 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080DB052 -_080DB03C: - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080DB058 - ldr r0, _080DB094 @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080DB058 -_080DB052: - ldrh r0, [r5, 0x20] - adds r0, 0x8 - strh r0, [r5, 0x20] -_080DB058: - ldr r4, _080DB08C @ =gBattleAnimArgs - ldrb r1, [r4, 0x8] - adds r0, r5, 0 - bl SeekSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x20 - strh r0, [r5, 0x20] - ldr r0, _080DB098 @ =0x00000ccc - strh r0, [r5, 0x30] - ldrh r1, [r4, 0x8] - movs r0, 0xC - adds r2, r0, 0 - muls r2, r1 - adds r0, r2, 0 - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - strh r1, [r5, 0x2E] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x3C] - ldr r0, _080DB09C @ =sub_80DB0A0 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB08C: .4byte gBattleAnimArgs -_080DB090: .4byte gAnimBankAttacker -_080DB094: .4byte gAnimBankTarget -_080DB098: .4byte 0x00000ccc -_080DB09C: .4byte sub_80DB0A0 - thumb_func_end sub_80DB000 - - thumb_func_start sub_80DB0A0 -sub_80DB0A0: @ 80DB0A0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _080DB0CA - strh r1, [r4, 0x2E] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl StartSpriteAnim -_080DB0CA: - ldrh r0, [r4, 0x3C] - subs r0, 0x1 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB0E2 - adds r0, r4, 0 - bl DestroyAnimSprite -_080DB0E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB0A0 - - thumb_func_start sub_80DB0E8 -sub_80DB0E8: @ 80DB0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r1, _080DB180 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x8] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080DB162 - ldr r1, _080DB184 @ =gAnimVisualTaskCount - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r1, 0x8 - ldrsh r0, [r7, r1] - movs r5, 0xD - negs r5, r5 - adds r1, r5, 0 - bl Sin - ldr r4, _080DB188 @ =gBattleAnimArgs - strh r0, [r4] - movs r1, 0x8 - ldrsh r0, [r7, r1] - adds r1, r5, 0 - bl Cos - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0x6] - ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538 - mov r8, r0 - ldr r5, _080DB190 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0x3 - bl CreateSpriteAndAnimate -_080DB162: - ldrh r0, [r7, 0x8] - adds r0, 0x8 - strh r0, [r7, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _080DB176 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080DB176: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB180: .4byte gTasks -_080DB184: .4byte gAnimVisualTaskCount -_080DB188: .4byte gBattleAnimArgs -_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538 -_080DB190: .4byte gAnimBankTarget - thumb_func_end sub_80DB0E8 - - thumb_func_start sub_80DB194 -sub_80DB194: @ 80DB194 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DB1A6 - cmp r0, 0x1 - beq _080DB1D8 - b _080DB1EC -_080DB1A6: - adds r0, r4, 0 - movs r1, 0x1 - bl InitAnimSpritePos - movs r0, 0 - bl GetAnimBattlerSpriteId - ldr r2, _080DB1D4 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB1EC - .align 2, 0 -_080DB1D4: .4byte gSprites -_080DB1D8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DB1EC - adds r0, r4, 0 - bl DestroyAnimSprite -_080DB1EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB194 - - thumb_func_start sub_80DB1F4 -sub_80DB1F4: @ 80DB1F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DB22C - cmp r0, 0x1 - bgt _080DB20A - cmp r0, 0 - beq _080DB210 - b _080DB27E -_080DB20A: - cmp r0, 0x2 - beq _080DB240 - b _080DB27E -_080DB210: - ldr r0, _080DB228 @ =gAnimBankTarget - ldrb r0, [r0] - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r4, 0x26] - b _080DB238 - .align 2, 0 -_080DB228: .4byte gAnimBankTarget -_080DB22C: - ldrh r0, [r4, 0x26] - adds r0, 0xA - strh r0, [r4, 0x26] - lsls r0, 16 - cmp r0, 0 - blt _080DB27E -_080DB238: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DB27E -_080DB240: - ldrh r0, [r4, 0x26] - subs r0, 0xA - strh r0, [r4, 0x26] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DB27E - movs r0, 0 - bl GetAnimBattlerSpriteId - ldr r2, _080DB284 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimSprite -_080DB27E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB284: .4byte gSprites - thumb_func_end sub_80DB1F4 - - thumb_func_start sub_80DB288 -sub_80DB288: @ 80DB288 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r1, _080DB2C4 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DB2C8 @ =sub_80DB2D0 - str r0, [r4, 0x1C] - movs r0, 0 - bl GetAnimBattlerSpriteId - ldr r2, _080DB2CC @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB2C4: .4byte gBattleAnimArgs -_080DB2C8: .4byte sub_80DB2D0 -_080DB2CC: .4byte gSprites - thumb_func_end sub_80DB288 - - thumb_func_start sub_80DB2D0 -sub_80DB2D0: @ 80DB2D0 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x2E] - movs r3, 0x2E - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080DB2E4 - subs r0, r1, 0x1 - strh r0, [r2, 0x2E] - b _080DB328 -_080DB2E4: - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB30A - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - subs r1, r0 - strh r1, [r2, 0x26] - b _080DB328 -_080DB30A: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x34] - adds r1, r0, 0x1 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DB328 - ldr r0, _080DB32C @ =sub_80DB330 - str r0, [r2, 0x1C] -_080DB328: - pop {r0} - bx r0 - .align 2, 0 -_080DB32C: .4byte sub_80DB330 - thumb_func_end sub_80DB2D0 - - thumb_func_start sub_80DB330 -sub_80DB330: @ 80DB330 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - movs r3, 0x22 - ldrsh r0, [r2, r3] - movs r3, 0x26 - ldrsh r1, [r2, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _080DB360 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080DB360: - movs r1, 0x26 - ldrsh r0, [r2, r1] - cmp r0, 0 - ble _080DB36E - adds r0, r2, 0 - bl DestroyAnimSprite -_080DB36E: - pop {r0} - bx r0 - thumb_func_end sub_80DB330 - - thumb_func_start sub_80DB374 -sub_80DB374: @ 80DB374 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080DB388 - cmp r0, 0x1 - beq _080DB3E0 - b _080DB44C -_080DB388: - ldr r0, _080DB398 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _080DB3A0 - ldr r4, _080DB39C @ =gAnimBankAttacker - b _080DB3A2 - .align 2, 0 -_080DB398: .4byte gBattleAnimArgs -_080DB39C: .4byte gAnimBankAttacker -_080DB3A0: - ldr r4, _080DB3DC @ =gAnimBankTarget -_080DB3A2: - ldrb r0, [r4] - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r0, 0 - movs r3, 0x80 - lsls r3, 2 - strh r3, [r5, 0x30] - movs r2, 0x80 - lsls r2, 1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl sub_8078FDC - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DB44C - .align 2, 0 -_080DB3DC: .4byte gAnimBankTarget -_080DB3E0: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0xB - bgt _080DB3EE - ldrh r0, [r5, 0x30] - subs r0, 0x28 - b _080DB3F2 -_080DB3EE: - ldrh r0, [r5, 0x30] - adds r0, 0x28 -_080DB3F2: - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x30 - ldrsh r3, [r5, r0] - str r1, [sp] - adds r0, r5, 0 - bl sub_8078FDC - ldrb r1, [r5, 0x3] - lsls r1, 26 - lsrs r1, 27 - movs r0, 0xF4 - lsls r0, 6 - ldr r2, _080DB454 @ =gOamMatrices - lsls r1, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0x1 - cmp r1, 0x80 - ble _080DB42C - movs r1, 0x80 -_080DB42C: - movs r0, 0x40 - subs r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r1, r0, 1 - strh r1, [r5, 0x26] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x18 - bne _080DB44C - adds r0, r5, 0 - bl sub_8079098 - adds r0, r5, 0 - bl DestroyAnimSprite -_080DB44C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB454: .4byte gOamMatrices - thumb_func_end sub_80DB374 - - thumb_func_start sub_80DB458 -sub_80DB458: @ 80DB458 - push {r4,r5,lr} - adds r5, r0, 0 - bl Random - ldr r4, _080DB47C @ =0x000001ff - ands r4, r0 - bl Random - movs r1, 0x7F - ands r1, r0 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080DB480 - movs r2, 0xB8 - lsls r2, 2 - adds r0, r4, r2 - b _080DB488 - .align 2, 0 -_080DB47C: .4byte 0x000001ff -_080DB480: - movs r2, 0xB8 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r4 -_080DB488: - strh r0, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DB49C - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - adds r0, r1, r0 - b _080DB4A4 -_080DB49C: - movs r2, 0xE0 - lsls r2, 2 - adds r0, r2, 0 - subs r0, r1 -_080DB4A4: - strh r0, [r5, 0x30] - ldr r2, _080DB4CC @ =gBattleAnimArgs - ldrh r0, [r2] - strh r0, [r5, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _080DB4C0 - ldrb r0, [r5, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - strb r1, [r5, 0x3] -_080DB4C0: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080DB4D4 - ldr r4, _080DB4D0 @ =gAnimBankAttacker - b _080DB4D6 - .align 2, 0 -_080DB4CC: .4byte gBattleAnimArgs -_080DB4D0: .4byte gAnimBankAttacker -_080DB4D4: - ldr r4, _080DB500 @ =gAnimBankTarget -_080DB4D6: - ldrb r0, [r4] - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x20 - strh r0, [r5, 0x22] - ldr r0, _080DB504 @ =sub_80DB508 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB500: .4byte gAnimBankTarget -_080DB504: .4byte sub_80DB508 - thumb_func_end sub_80DB458 - - thumb_func_start sub_80DB508 -sub_80DB508: @ 80DB508 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DB520 - ldrh r3, [r4, 0x2E] - lsls r0, r3, 16 - asrs r0, 24 - ldrh r1, [r4, 0x24] - adds r0, r1 - b _080DB52A -_080DB520: - ldrh r3, [r4, 0x2E] - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 -_080DB52A: - strh r0, [r4, 0x24] - ldrh r2, [r4, 0x30] - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r4, 0x26] - subs r0, r1 - strh r0, [r4, 0x26] - strh r3, [r4, 0x2E] - adds r0, r2, 0 - subs r0, 0x20 - strh r0, [r4, 0x30] - lsls r0, r3, 16 - cmp r0, 0 - bge _080DB54A - movs r0, 0 - strh r0, [r4, 0x2E] -_080DB54A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _080DB55E - adds r0, r4, 0 - bl DestroyAnimSprite -_080DB55E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DB508 - - thumb_func_start sub_80DB564 -sub_80DB564: @ 80DB564 - movs r1, 0 - strh r1, [r0, 0x3A] - movs r1, 0x40 - strh r1, [r0, 0x3C] - ldr r1, _080DB574 @ =sub_80DB578 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DB574: .4byte sub_80DB578 - thumb_func_end sub_80DB564 - - thumb_func_start sub_80DB578 -sub_80DB578: @ 80DB578 - push {lr} - adds r3, r0, 0 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _080DB58A - cmp r1, 0x1 - beq _080DB5D8 - b _080DB5DE -_080DB58A: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080DB5DE - strh r1, [r3, 0x30] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r2, [r1] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DB5DE - ldrb r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DB5DE - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _080DB5DE -_080DB5D8: - adds r0, r3, 0 - bl DestroyAnimSprite -_080DB5DE: - pop {r0} - bx r0 - thumb_func_end sub_80DB578 - - thumb_func_start sub_80DB5E4 -sub_80DB5E4: @ 80DB5E4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r8, r0 - ldrh r4, [r0, 0x20] - ldrh r5, [r0, 0x22] - ldr r6, _080DB698 @ =gAnimBankAttacker - ldrb r0, [r6] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl GetBattlerSpriteCoord - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - mov r2, r8 - strh r6, [r2, 0x22] - ldrh r0, [r2, 0x20] - mov r9, r0 - mov r1, r9 - lsls r0, r1, 4 - strh r0, [r2, 0x36] - lsls r0, r6, 4 - strh r0, [r2, 0x38] - lsls r4, 16 - asrs r4, 16 - movs r1, 0x20 - ldrsh r0, [r2, r1] - subs r0, r4, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3A] - lsls r5, 16 - asrs r5, 16 - movs r1, 0x22 - ldrsh r0, [r2, r1] - subs r0, r5, r0 - lsls r0, 4 - movs r1, 0xC - bl __divsi3 - mov r2, r8 - strh r0, [r2, 0x3C] - mov r0, r9 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - subs r5, r6 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - adds r1, r5, 0 - bl ArcTan2Neg - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - mov r0, r8 - movs r1, 0x1 - adds r2, r3, 0 - bl sub_8078FDC - ldr r0, _080DB69C @ =sub_80DB6A0 - mov r2, r8 - str r0, [r2, 0x1C] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB698: .4byte gAnimBankAttacker -_080DB69C: .4byte sub_80DB6A0 - thumb_func_end sub_80DB5E4 - - thumb_func_start sub_80DB6A0 -sub_80DB6A0: @ 80DB6A0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x3A] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x3C] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x2D - lsls r0, 16 - movs r1, 0xA5 - lsls r1, 17 - cmp r0, r1 - bhi _080DB6DA - adds r1, r3, 0 - cmp r1, 0x9D - bgt _080DB6DA - movs r0, 0x2D - negs r0, r0 - cmp r1, r0 - bge _080DB6E0 -_080DB6DA: - adds r0, r2, 0 - bl move_anim_8074EE0 -_080DB6E0: - pop {r0} - bx r0 - thumb_func_end sub_80DB6A0 - - thumb_func_start unref_sub_80DB6E4 -unref_sub_80DB6E4: @ 80DB6E4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DB714 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DB71C - movs r0, 0 - bl GetAnimBattlerSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB718 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - b _080DB73A - .align 2, 0 -_080DB714: .4byte gBattleAnimArgs -_080DB718: .4byte gSprites -_080DB71C: - movs r0, 0 - bl GetAnimBattlerSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB748 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_080DB73A: - strb r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DB748: .4byte gSprites - thumb_func_end unref_sub_80DB6E4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/ice.s b/asm/ice.s deleted file mode 100644 index 22381fa16..000000000 --- a/asm/ice.s +++ /dev/null @@ -1,3186 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - @ ice - - thumb_func_start sub_80D7704 -sub_80D7704: @ 80D7704 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x7 - ldr r3, _080D780C @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D7810 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r4, _080D7814 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080D7818 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r4] - movs r1, 0x3 - str r3, [sp] - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080D781C @ =gBattleAnimArgs - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r1] - ldr r3, [sp] - adds r0, r3 - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x4] - mov r4, r9 - adds r0, r4, r0 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - adds r0, r6 - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x6] - mov r7, r8 - adds r0, r7, r0 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - adds r4, 0x20 - movs r0, 0x98 - lsls r0, 1 - mov r12, r0 - ldr r3, [sp] - cmp r4, r12 - bhi _080D77DE - adds r0, r7, 0 - adds r0, 0x20 - ldrh r1, [r5, 0x30] - ldrh r2, [r5, 0x32] - cmp r0, 0xE0 - bhi _080D77DE - adds r4, r1, 0 - mov r10, r12 -_080D77AA: - mov r7, r9 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r4 - lsls r1, 16 - mov r7, r8 - lsls r0, r7, 16 - asrs r0, 16 - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsrs r0, r1, 16 - mov r9, r0 - movs r7, 0x80 - lsls r7, 14 - adds r1, r7 - lsrs r1, 16 - cmp r1, r10 - bhi _080D77DE - mov r1, r8 - lsls r0, r1, 16 - adds r0, r7 - lsrs r0, 16 - cmp r0, 0xE0 - bls _080D77AA -_080D77DE: - ldrh r0, [r5, 0x30] - negs r7, r0 - strh r7, [r5, 0x30] - ldrh r0, [r5, 0x32] - negs r4, r0 - strh r4, [r5, 0x32] - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r0, 16 - movs r2, 0x98 - lsls r2, 1 - mov r12, r2 - ldr r1, _080D781C @ =gBattleAnimArgs - mov r10, r1 - cmp r0, r12 - bhi _080D784A - lsls r1, r6, 16 - movs r2, 0x80 - lsls r2, 14 - adds r0, r1, r2 - b _080D7842 - .align 2, 0 -_080D780C: .4byte 0x000003ff -_080D7810: .4byte 0xfffffc00 -_080D7814: .4byte gAnimBankTarget -_080D7818: .4byte gAnimBankAttacker -_080D781C: .4byte gBattleAnimArgs -_080D7820: - lsls r1, r3, 16 - asrs r1, 16 - adds r1, r7 - lsls r1, 16 - asrs r0, r2, 16 - adds r0, r4 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r3, r1, 16 - movs r0, 0x80 - lsls r0, 14 - adds r1, r0 - lsrs r1, 16 - cmp r1, r12 - bhi _080D784A - lsls r1, r6, 16 - adds r0, r1, r0 -_080D7842: - lsrs r0, 16 - adds r2, r1, 0 - cmp r0, 0xE0 - bls _080D7820 -_080D784A: - strh r3, [r5, 0x20] - strh r6, [r5, 0x22] - mov r1, r10 - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - strh r3, [r5, 0x30] - mov r2, r9 - strh r2, [r5, 0x32] - strh r6, [r5, 0x34] - mov r3, r8 - strh r3, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078314 - mov r7, r10 - ldrh r0, [r7, 0xA] - strh r0, [r5, 0x34] - ldrh r0, [r7, 0xC] - strh r0, [r5, 0x36] - ldr r0, _080D7884 @ =sub_80D7888 - str r0, [r5, 0x1C] - 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 -_080D7884: .4byte sub_80D7888 - thumb_func_end sub_80D7704 - - thumb_func_start sub_80D7888 -sub_80D7888: @ 80D7888 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D78E0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x38] - adds r1, r2 - strh r1, [r4, 0x38] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x3A] - adds r0, r2 - strh r0, [r4, 0x3A] - strh r1, [r4, 0x24] - strh r0, [r4, 0x26] - movs r1, 0x3C - ldrsh r0, [r4, r1] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - b _080D78E6 -_080D78E0: - adds r0, r4, 0 - bl DestroyAnimSprite -_080D78E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7888 - - thumb_func_start sub_80D78EC -sub_80D78EC: @ 80D78EC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7920 @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r4, 0x2E] - movs r0, 0x3C - strh r0, [r4, 0x30] - movs r0, 0x9 - strh r0, [r4, 0x32] - movs r0, 0x1E - strh r0, [r4, 0x34] - movs r0, 0xFE - lsls r0, 8 - strh r0, [r4, 0x36] - ldr r1, _080D7924 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - ldr r1, _080D7928 @ =sub_8078174 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7920: .4byte gBattleAnimArgs -_080D7924: .4byte DestroyAnimSprite -_080D7928: .4byte sub_8078174 - thumb_func_end sub_80D78EC - - thumb_func_start sub_80D792C -sub_80D792C: @ 80D792C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r0, _080D7960 @ =gAnimBankTarget - ldrb r0, [r0] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldr r0, _080D7964 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D796C - ldr r0, _080D7968 @ =gBattleAnimArgs - ldrh r1, [r4, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r4, 0x32] - b _080D7976 - .align 2, 0 -_080D7960: .4byte gAnimBankTarget -_080D7964: .4byte gAnimBankAttacker -_080D7968: .4byte gBattleAnimArgs -_080D796C: - ldr r0, _080D79A4 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] -_080D7976: - ldr r0, _080D79A8 @ =gAnimBankTarget - ldrb r0, [r0] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - ldr r1, _080D79A4 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r2, [r1, 0x6] - adds r0, r2 - strh r0, [r4, 0x36] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x2E] - ldr r1, _080D79AC @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - ldr r0, _080D79B0 @ =StartAnimLinearTranslation - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D79A4: .4byte gBattleAnimArgs -_080D79A8: .4byte gAnimBankTarget -_080D79AC: .4byte DestroyAnimSprite -_080D79B0: .4byte StartAnimLinearTranslation - thumb_func_end sub_80D792C - - thumb_func_start sub_80D79B4 -sub_80D79B4: @ 80D79B4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D79CC @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D79D0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D7A06 - .align 2, 0 -_080D79CC: .4byte gBattleAnimArgs -_080D79D0: - ldr r0, _080D7A18 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl SetAverageBattlerPositions - ldr r0, _080D7A1C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D79F6 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D79F6: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7A06: - ldr r1, _080D7A20 @ =sub_80D7A28 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - ldr r0, _080D7A24 @ =sub_80785E4 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7A18: .4byte gAnimBankTarget -_080D7A1C: .4byte gAnimBankAttacker -_080D7A20: .4byte sub_80D7A28 -_080D7A24: .4byte sub_80785E4 - thumb_func_end sub_80D79B4 - - thumb_func_start sub_80D7A28 -sub_80D7A28: @ 80D7A28 - push {lr} - adds r3, r0, 0 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D7A5E - adds r0, r3, 0 - bl move_anim_8074EE0 -_080D7A5E: - pop {r0} - bx r0 - thumb_func_end sub_80D7A28 - - thumb_func_start sub_80D7A64 -sub_80D7A64: @ 80D7A64 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r6, _080D7AAC @ =gBattleAnimArgs - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7AB4 - ldr r4, _080D7AB0 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x36] - b _080D7AC6 - .align 2, 0 -_080D7AAC: .4byte gBattleAnimArgs -_080D7AB0: .4byte gAnimBankTarget -_080D7AB4: - ldr r0, _080D7AE0 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl SetAverageBattlerPositions -_080D7AC6: - ldr r0, _080D7AE4 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D7AEC - ldr r0, _080D7AE8 @ =gBattleAnimArgs - ldrh r1, [r5, 0x32] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r5, 0x32] - b _080D7AF6 - .align 2, 0 -_080D7AE0: .4byte gAnimBankTarget -_080D7AE4: .4byte gAnimBankAttacker -_080D7AE8: .4byte gBattleAnimArgs -_080D7AEC: - ldr r0, _080D7B94 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7AF6: - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7B00: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B00 - adds r0, r5, 0 - bl sub_8078D60 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7B22: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7B56 - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7B56 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7B22 -_080D7B56: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r6, _080D7B98 @ =sub_8078D8C - ldr r1, _080D7B9C @ =sub_80D7BA0 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7B76: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7B76 - str r6, [r5, 0x1C] - adds r0, r5, 0 - bl StoreSpriteCallbackInData - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7B94: .4byte gBattleAnimArgs -_080D7B98: .4byte sub_8078D8C -_080D7B9C: .4byte sub_80D7BA0 - thumb_func_end sub_80D7A64 - - thumb_func_start sub_80D7BA0 -sub_80D7BA0: @ 80D7BA0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r5, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - strh r5, [r4, 0x24] - movs r0, 0x80 - strh r0, [r4, 0x2E] - ldr r0, _080D7BFC @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080D7C00 @ =0x0000ffec - cmp r0, 0 - beq _080D7BD0 - movs r1, 0x14 -_080D7BD0: - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] - ldr r1, _080D7C04 @ =sub_80D7C08 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D7BFC: .4byte gAnimBankAttacker -_080D7C00: .4byte 0x0000ffec -_080D7C04: .4byte sub_80D7C08 - thumb_func_end sub_80D7BA0 - - thumb_func_start sub_80D7C08 -sub_80D7C08: @ 80D7C08 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D7C5C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - ldr r1, _080D7C60 @ =0x0000ffec - cmp r0, 0 - beq _080D7C1E - movs r1, 0x14 -_080D7C1E: - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0x1F - bgt _080D7C64 - movs r2, 0x2E - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 16 - bl Sin - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0xF - bl Cos - ldrh r1, [r4, 0x36] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080D7C82 - .align 2, 0 -_080D7C5C: .4byte gAnimBankAttacker -_080D7C60: .4byte 0x0000ffec -_080D7C64: - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - strh r1, [r4, 0x36] - strh r1, [r4, 0x34] - ldr r0, _080D7C88 @ =sub_80D7C8C - str r0, [r4, 0x1C] -_080D7C82: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D7C88: .4byte sub_80D7C8C - thumb_func_end sub_80D7C08 - - thumb_func_start sub_80D7C8C -sub_80D7C8C: @ 80D7C8C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x1 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078CE8 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7CC8 - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r1, r0, r1 - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bgt _080D7CC8 - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7CCE -_080D7CC8: - adds r0, r4, 0 - bl DestroyAnimSprite -_080D7CCE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7C8C - - thumb_func_start sub_80D7CD4 -sub_80D7CD4: @ 80D7CD4 - push {r4-r7,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r1, _080D7D18 @ =gBattleAnimArgs - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0xE - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D7D20 - ldr r4, _080D7D1C @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080D7D32 - .align 2, 0 -_080D7D18: .4byte gBattleAnimArgs -_080D7D1C: .4byte gAnimBankTarget -_080D7D20: - ldr r0, _080D7D50 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl SetAverageBattlerPositions -_080D7D32: - ldr r0, _080D7D54 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D7D5C - ldr r0, _080D7D58 @ =gBattleAnimArgs - ldrh r1, [r5, 0x32] - ldrh r2, [r0, 0x4] - subs r1, r2 - strh r1, [r5, 0x32] - adds r1, r0, 0 - b _080D7D66 - .align 2, 0 -_080D7D50: .4byte gAnimBankTarget -_080D7D54: .4byte gAnimBankAttacker -_080D7D58: .4byte gBattleAnimArgs -_080D7D5C: - ldr r1, _080D7E10 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] -_080D7D66: - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078D60 - adds r7, r5, 0 - adds r7, 0x2E - adds r2, r7, 0 - mov r1, sp - movs r4, 0x7 -_080D7D7E: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7D7E - ldrh r0, [r5, 0x30] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - eors r0, r1 - strh r0, [r5, 0x32] -_080D7D9A: - movs r0, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - bl sub_8078CE8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r2, 0x24 - ldrsh r0, [r5, r2] - adds r1, r0 - adds r1, 0x10 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bhi _080D7DCE - movs r0, 0x22 - ldrsh r1, [r5, r0] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7DCE - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7D9A -_080D7DCE: - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldr r1, _080D7E10 @ =gBattleAnimArgs - ldr r6, _080D7E14 @ =sub_80D7E18 - mov r3, sp - adds r2, r7, 0 - movs r4, 0x7 -_080D7DEE: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080D7DEE - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - ldrh r0, [r1, 0xC] - strh r0, [r5, 0x3A] - str r6, [r5, 0x1C] - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D7E10: .4byte gBattleAnimArgs -_080D7E14: .4byte sub_80D7E18 - thumb_func_end sub_80D7CD4 - - thumb_func_start sub_80D7E18 -sub_80D7E18: @ 80D7E18 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078CE8 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7E2C - movs r0, 0x1 - strh r0, [r4, 0x2E] -_080D7E2C: - movs r2, 0x3C - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D7E82 - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - adds r0, 0x10 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - bhi _080D7E7C - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r2, 0x26 - ldrsh r0, [r4, r2] - adds r1, r0 - cmp r1, 0xA0 - bgt _080D7E7C - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _080D7E82 -_080D7E7C: - adds r0, r4, 0 - bl DestroyAnimSprite -_080D7E82: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D7E18 - - thumb_func_start sub_80D7E88 -sub_80D7E88: @ 80D7E88 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D7EF4 - ldr r5, _080D7EA8 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D7EAC - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 - b _080D7EE2 - .align 2, 0 -_080D7EA8: .4byte gBattleAnimArgs -_080D7EAC: - ldr r0, _080D7EEC @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl SetAverageBattlerPositions - ldr r0, _080D7EF0 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D7ED2 - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D7ED2: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D7EE2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D7F08 - .align 2, 0 -_080D7EEC: .4byte gAnimBankTarget -_080D7EF0: .4byte gAnimBankAttacker -_080D7EF4: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080D7F08 - adds r0, r4, 0 - bl DestroyAnimSprite -_080D7F08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D7E88 - - thumb_func_start sub_80D7F10 -sub_80D7F10: @ 80D7F10 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D7F30 @ =gBattleAnimArgs - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F80 - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F34 - adds r0, r5, 0 - movs r1, 0 - bl InitAnimSpritePos - b _080D7F72 - .align 2, 0 -_080D7F30: .4byte gBattleAnimArgs -_080D7F34: - ldr r4, _080D7F5C @ =gAnimBankAttacker - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl SetAverageBattlerPositions - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D7F60 - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7F66 - .align 2, 0 -_080D7F5C: .4byte gAnimBankAttacker -_080D7F60: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7F66: - strh r0, [r5, 0x20] - ldr r0, _080D7F78 @ =gBattleAnimArgs - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7F72: - ldr r0, _080D7F7C @ =gAnimBankAttacker - b _080D7FD0 - .align 2, 0 -_080D7F78: .4byte gBattleAnimArgs -_080D7F7C: .4byte gAnimBankAttacker -_080D7F80: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D7F92 - adds r0, r5, 0 - movs r1, 0 - bl sub_8078764 - b _080D7FCE -_080D7F92: - ldr r4, _080D7FB8 @ =gAnimBankTarget - ldrb r0, [r4] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl SetAverageBattlerPositions - ldrb r0, [r4] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D7FBC - ldrh r0, [r5, 0x20] - ldrh r1, [r6] - subs r0, r1 - b _080D7FC2 - .align 2, 0 -_080D7FB8: .4byte gAnimBankTarget -_080D7FBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080D7FC2: - strh r0, [r5, 0x20] - ldr r0, _080D7FEC @ =gBattleAnimArgs - ldrh r0, [r0, 0x2] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] -_080D7FCE: - ldr r0, _080D7FF0 @ =gAnimBankTarget -_080D7FD0: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - ldr r0, _080D7FEC @ =gBattleAnimArgs - movs r1, 0xA - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080D7FE8 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - bne _080D7FF4 -_080D7FE8: - movs r0, 0x20 - b _080D7FF6 - .align 2, 0 -_080D7FEC: .4byte gBattleAnimArgs -_080D7FF0: .4byte gAnimBankTarget -_080D7FF4: - movs r0, 0x40 -_080D7FF6: - strh r0, [r5, 0x3A] - ldr r0, _080D803C @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - bne _080D800C - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r5, 0x22] -_080D800C: - ldr r1, _080D8040 @ =gBattleAnimArgs - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - ldrh r1, [r1, 0x4] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl InitAnimLinearTranslation - movs r0, 0x40 - strh r0, [r5, 0x38] - ldr r1, _080D8044 @ =sub_80D8048 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D803C: .4byte gAnimBankTarget -_080D8040: .4byte gBattleAnimArgs -_080D8044: .4byte sub_80D8048 - thumb_func_end sub_80D7F10 - - thumb_func_start sub_80D8048 -sub_80D8048: @ 80D8048 - push {r4,lr} - adds r4, r0, 0 - bl TranslateAnimLinear - lsls r0, 24 - cmp r0, 0 - bne _080D80D2 - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0x6 - negs r1, r1 - bl Cos - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D80A4 - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D80C6 -_080D80A4: - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_080D80C6: - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - b _080D80D8 -_080D80D2: - adds r0, r4, 0 - bl DestroyAnimSprite -_080D80D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8048 - - thumb_func_start sub_80D80E0 -sub_80D80E0: @ 80D80E0 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D81A8 @ =REG_BLDCNT - ldr r2, _080D81AC @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D81B0 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080D812A - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D812A: - ldr r0, _080D81B4 @ =gBattle_BG1_X - movs r1, 0 - strh r1, [r0] - ldr r0, _080D81B8 @ =gBattle_BG1_Y - strh r1, [r0] - ldr r0, _080D81BC @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D81C0 @ =0x040000d4 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D81C4 @ =0x85000400 - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D81C8 @ =gWeatherFog1Tiles - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D81CC @ =0x80000400 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D81D0 @ =gBattleAnimFogTilemap - bl LZDecompressVram - ldr r0, _080D81D4 @ =gUnknown_083970E8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D8190 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D8190: - ldr r0, _080D81D8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080D81DC @ =sub_80D81E0 - str r0, [r1] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D81A8: .4byte REG_BLDCNT -_080D81AC: .4byte 0x00003f42 -_080D81B0: .4byte REG_BG1CNT -_080D81B4: .4byte gBattle_BG1_X -_080D81B8: .4byte gBattle_BG1_Y -_080D81BC: .4byte REG_BG1HOFS -_080D81C0: .4byte 0x040000d4 -_080D81C4: .4byte 0x85000400 -_080D81C8: .4byte gWeatherFog1Tiles -_080D81CC: .4byte 0x80000400 -_080D81D0: .4byte gBattleAnimFogTilemap -_080D81D4: .4byte gUnknown_083970E8 -_080D81D8: .4byte gTasks -_080D81DC: .4byte sub_80D81E0 - thumb_func_end sub_80D80E0 - - thumb_func_start sub_80D81E0 -sub_80D81E0: @ 80D81E0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080D8220 @ =gBattle_BG1_X - ldr r1, _080D8224 @ =0x0000ffff - adds r0, r1, 0 - ldrh r4, [r2] - adds r0, r4 - strh r0, [r2] - ldr r1, _080D8228 @ =gBattle_BG1_Y - ldr r3, _080D822C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r3 - movs r4, 0x20 - ldrsh r0, [r0, r4] - adds r4, r1, 0 - cmp r0, 0x4 - bls _080D8214 - b _080D83B0 -_080D8214: - lsls r0, 2 - ldr r1, _080D8230 @ =_080D8234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8220: .4byte gBattle_BG1_X -_080D8224: .4byte 0x0000ffff -_080D8228: .4byte gBattle_BG1_Y -_080D822C: .4byte gTasks -_080D8230: .4byte _080D8234 - .align 2, 0 -_080D8234: - .4byte _080D8248 - .4byte _080D82A0 - .4byte _080D82C2 - .4byte _080D8304 - .4byte _080D838C -_080D8248: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080D8262 - b _080D83B0 -_080D8262: - strh r4, [r3, 0x1C] - ldrh r0, [r3, 0x1A] - adds r0, 0x1 - strh r0, [r3, 0x1A] - ldr r1, _080D8298 @ =gUnknown_083D9D6C - movs r2, 0x1A - ldrsh r0, [r3, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r3, 0x1E] - ldr r2, _080D829C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x1E - ldrsh r0, [r3, r1] - cmp r0, 0x9 - beq _080D828C - b _080D83B0 -_080D828C: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8298: .4byte gUnknown_083D9D6C -_080D829C: .4byte REG_BLDALPHA -_080D82A0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1E] - adds r0, 0x1 - strh r0, [r3, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D83B0 - movs r0, 0x9 - strh r0, [r3, 0x1E] - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - b _080D83B0 -_080D82C2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D83B0 - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080D8300 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080D83B0 - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080D83B0 - .align 2, 0 -_080D8300: .4byte REG_BLDALPHA -_080D8304: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r4, r6, 2 - mov r10, r4 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D83C0 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D83C4 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D832A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D832A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D83C0 @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D83C8 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080D8378 - ldr r2, _080D83CC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8378: - ldr r0, _080D83D0 @ =gTasks - mov r4, r10 - adds r1, r4, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r2, _080D83D4 @ =gBattle_BG1_X - ldr r4, _080D83D8 @ =gBattle_BG1_Y -_080D838C: - movs r1, 0 - strh r1, [r2] - strh r1, [r4] - ldr r0, _080D83DC @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D83CC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080D83B0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D83C0: .4byte 0x040000d4 -_080D83C4: .4byte 0x85000400 -_080D83C8: .4byte 0x85000200 -_080D83CC: .4byte REG_BG1CNT -_080D83D0: .4byte gTasks -_080D83D4: .4byte gBattle_BG1_X -_080D83D8: .4byte gBattle_BG1_Y -_080D83DC: .4byte REG_BLDCNT - thumb_func_end sub_80D81E0 - - thumb_func_start sub_80D83E0 -sub_80D83E0: @ 80D83E0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D840C @ =gAnimBankAttacker - ldrb r0, [r5] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - ldr r0, _080D8410 @ =TranslateAnimSpriteToTargetMonLocation - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D840C: .4byte gAnimBankAttacker -_080D8410: .4byte TranslateAnimSpriteToTargetMonLocation - thumb_func_end sub_80D83E0 - - thumb_func_start sub_80D8414 -sub_80D8414: @ 80D8414 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080D84E0 @ =REG_BLDCNT - ldr r2, _080D84E4 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080D84E8 @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080D845E - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080D845E: - ldr r0, _080D84EC @ =gBattle_BG1_X - movs r1, 0 - strh r1, [r0] - ldr r0, _080D84F0 @ =gBattle_BG1_Y - strh r1, [r0] - ldr r0, _080D84F4 @ =REG_BG1HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D84F8 @ =0x040000d4 - add r2, sp, 0xC - str r2, [r0] - str r1, [r0, 0x4] - ldr r2, _080D84FC @ =0x85000400 - str r2, [r0, 0x8] - ldr r2, [r0, 0x8] - ldr r2, _080D8500 @ =gWeatherFog1Tiles - ldr r3, [sp] - str r2, [r0] - str r3, [r0, 0x4] - ldr r2, _080D8504 @ =0x80000400 - str r2, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _080D8508 @ =gBattleAnimFogTilemap - bl LZDecompressVram - ldr r0, _080D850C @ =gUnknown_083970E8 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadPalette - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D84C4 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080D84C4: - ldr r1, _080D8510 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080D8514 @ =0x0000ffff - strh r1, [r0, 0x26] - ldr r1, _080D8518 @ =sub_80D851C - str r1, [r0] - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D84E0: .4byte REG_BLDCNT -_080D84E4: .4byte 0x00003f42 -_080D84E8: .4byte REG_BG1CNT -_080D84EC: .4byte gBattle_BG1_X -_080D84F0: .4byte gBattle_BG1_Y -_080D84F4: .4byte REG_BG1HOFS -_080D84F8: .4byte 0x040000d4 -_080D84FC: .4byte 0x85000400 -_080D8500: .4byte gWeatherFog1Tiles -_080D8504: .4byte 0x80000400 -_080D8508: .4byte gBattleAnimFogTilemap -_080D850C: .4byte gUnknown_083970E8 -_080D8510: .4byte gTasks -_080D8514: .4byte 0x0000ffff -_080D8518: .4byte sub_80D851C - thumb_func_end sub_80D8414 - - thumb_func_start sub_80D851C -sub_80D851C: @ 80D851C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _080D8558 @ =gBattle_BG1_X - ldr r4, _080D855C @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r4 - ldrh r0, [r1, 0x26] - ldrh r2, [r3] - adds r0, r2 - strh r0, [r3] - ldr r2, _080D8560 @ =gBattle_BG1_Y - movs r5, 0x20 - ldrsh r0, [r1, r5] - cmp r0, 0x4 - bls _080D854C - b _080D86D0 -_080D854C: - lsls r0, 2 - ldr r1, _080D8564 @ =_080D8568 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080D8558: .4byte gBattle_BG1_X -_080D855C: .4byte gTasks -_080D8560: .4byte gBattle_BG1_Y -_080D8564: .4byte _080D8568 - .align 2, 0 -_080D8568: - .4byte _080D857C - .4byte _080D85C0 - .4byte _080D85E2 - .4byte _080D8624 - .4byte _080D86AC -_080D857C: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - ldr r1, _080D85B8 @ =gUnknown_083D9D98 - movs r2, 0x1A - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r1, [r0] - strh r1, [r4, 0x1E] - ldr r2, _080D85BC @ =REG_BLDALPHA - movs r0, 0x11 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r5, 0x1E - ldrsh r0, [r4, r5] - cmp r0, 0x5 - beq _080D85AC - b _080D86D0 -_080D85AC: - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - movs r0, 0 - strh r0, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D85B8: .4byte gUnknown_083D9D98 -_080D85BC: .4byte REG_BLDALPHA -_080D85C0: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r1, r0, r4 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x51 - bne _080D86D0 - movs r0, 0x5 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080D86D0 -_080D85E2: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r4 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080D86D0 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - subs r1, 0x1 - strh r1, [r4, 0x1E] - ldr r2, _080D8620 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r0, 0x1E - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _080D86D0 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - strh r0, [r4, 0x20] - strh r1, [r4, 0x1E] - b _080D86D0 - .align 2, 0 -_080D8620: .4byte REG_BLDALPHA -_080D8624: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - lsls r1, r6, 2 - mov r10, r1 - add r5, sp, 0xC - movs r7, 0 - ldr r1, _080D86E0 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r8, r5 - ldr r0, _080D86E4 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r9, r0 -_080D864A: - str r7, [sp, 0xC] - mov r0, r8 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080D864A - str r7, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r9 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080D86E0 @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080D86E8 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080D8698 - ldr r2, _080D86EC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080D8698: - ldr r0, _080D86F0 @ =gTasks - mov r5, r10 - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r3, _080D86F4 @ =gBattle_BG1_X - ldr r2, _080D86F8 @ =gBattle_BG1_Y -_080D86AC: - movs r1, 0 - strh r1, [r3] - strh r1, [r2] - ldr r0, _080D86FC @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080D86EC @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080D86D0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D86E0: .4byte 0x040000d4 -_080D86E4: .4byte 0x85000400 -_080D86E8: .4byte 0x85000200 -_080D86EC: .4byte REG_BG1CNT -_080D86F0: .4byte gTasks -_080D86F4: .4byte gBattle_BG1_X -_080D86F8: .4byte gBattle_BG1_Y -_080D86FC: .4byte REG_BLDCNT - thumb_func_end sub_80D851C - - thumb_func_start sub_80D8700 -sub_80D8700: @ 80D8700 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r6, _080D87E8 @ =gBattleAnimArgs - ldrh r0, [r6] - strh r0, [r5, 0x2E] - ldr r0, _080D87EC @ =gAnimBankAttacker - mov r8, r0 - ldrb r0, [r0] - movs r1, 0x2 - bl GetBattlerSpriteCoord - adds r4, r0, 0 - ldr r7, _080D87F0 @ =gAnimBankTarget - ldrb r0, [r7] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcs _080D8734 - movs r0, 0x80 - lsls r0, 8 - strh r0, [r5, 0x3C] -_080D8734: - ldr r3, _080D87F4 @ =gBanksBySide - ldrb r0, [r7] - adds r0, r3 - ldrb r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8794 - ldrh r0, [r6, 0x2] - negs r0, r0 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x6] - negs r0, r0 - strh r0, [r6, 0x6] - movs r1, 0x3C - ldrsh r0, [r5, r1] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080D8790 - mov r1, r8 - ldrb r0, [r1] - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080D8790 - movs r0, 0x1 - bl GetAnimBattlerSpriteId - ldr r2, _080D87F8 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] -_080D8790: - movs r0, 0x1 - strh r0, [r5, 0x3A] -_080D8794: - ldr r4, _080D87EC @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r6, _080D87E8 @ =gBattleAnimArgs - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080D87FC - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D87F0 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x3 - b _080D8824 - .align 2, 0 -_080D87E8: .4byte gBattleAnimArgs -_080D87EC: .4byte gAnimBankAttacker -_080D87F0: .4byte gAnimBankTarget -_080D87F4: .4byte gBanksBySide -_080D87F8: .4byte gSprites -_080D87FC: - ldrh r0, [r6, 0x2] - ldrh r1, [r5, 0x20] - adds r0, r1 - strh r0, [r5, 0x30] - ldr r4, _080D886C @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r6, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x34] - ldrb r0, [r4] - movs r1, 0x1 -_080D8824: - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x8] - adds r0, r6 - strh r0, [r5, 0x36] - ldrb r0, [r4] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 16 - ldrh r1, [r5, 0x3C] - orrs r0, r1 - strh r0, [r5, 0x3C] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D8858 - movs r0, 0x1 - strh r0, [r5, 0x3A] - adds r1, r5, 0 - adds r1, 0x43 - movs r0, 0x80 - strb r0, [r1] -_080D8858: - adds r0, r5, 0 - bl InitAnimLinearTranslation - ldr r0, _080D8870 @ =sub_80D8874 - str r0, [r5, 0x1C] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D886C: .4byte gAnimBankTarget -_080D8870: .4byte sub_80D8874 - thumb_func_end sub_80D8700 - - thumb_func_start sub_80D8874 -sub_80D8874: @ 80D8874 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - movs r5, 0xFF - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x1 - beq _080D8968 - cmp r1, 0x1 - bgt _080D888E - cmp r1, 0 - beq _080D8896 - b _080D8AD0 -_080D888E: - cmp r1, 0x2 - bne _080D8894 - b _080D8A94 -_080D8894: - b _080D8AD0 -_080D8896: - adds r0, r4, 0 - bl TranslateAnimLinear - ldr r1, _080D88C0 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 4 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080D88C4 - ldrh r0, [r4, 0x38] - subs r0, 0x8 - b _080D88C8 - .align 2, 0 -_080D88C0: .4byte gSineTable -_080D88C4: - ldrh r0, [r4, 0x38] - adds r0, 0x8 -_080D88C8: - ands r0, r5 - strh r0, [r4, 0x38] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _080D88D6 - b _080D8AD0 -_080D88D6: - movs r5, 0x50 - strh r5, [r4, 0x2E] - ldr r6, _080D8928 @ =gAnimBankTarget - ldrb r0, [r6] - movs r1, 0 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x1D - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldr r0, _080D892C @ =gMain - ldr r2, _080D8930 @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - ldr r1, _080D8934 @ =gBanksBySide - ldrb r0, [r6] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8938 - movs r0, 0xCC - strh r0, [r4, 0x38] - b _080D893A - .align 2, 0 -_080D8928: .4byte gAnimBankTarget -_080D892C: .4byte gMain -_080D8930: .4byte 0x0000043d -_080D8934: .4byte gBanksBySide -_080D8938: - strh r5, [r4, 0x38] -_080D893A: - movs r0, 0 - strh r0, [r4, 0x26] - ldr r1, _080D8964 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - asrs r0, 3 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl InitAnimLinearTranslation - b _080D8AD0 - .align 2, 0 -_080D8964: .4byte gSineTable -_080D8968: - adds r0, r4, 0 - bl TranslateAnimLinear - ldr r1, _080D89C8 @ =gSineTable - movs r2, 0x38 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - asrs r0, 3 - ldrh r2, [r4, 0x24] - adds r0, r2 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - adds r0, 0x40 - lsls r0, 1 - adds r0, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - negs r0, r0 - asrs r0, 8 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldr r0, _080D89CC @ =gMain - ldr r2, _080D89D0 @ =0x0000043d - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D89F2 - ldrh r1, [r4, 0x38] - adds r0, r1, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - adds r3, r1, 0 - cmp r0, 0x7F - bhi _080D89D4 - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - b _080D89DC - .align 2, 0 -_080D89C8: .4byte gSineTable -_080D89CC: .4byte gMain -_080D89D0: .4byte 0x0000043d -_080D89D4: - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 24 - adds r1, 0x1 -_080D89DC: - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r3, 0x4 - b _080D8A12 -_080D89F2: - ldrh r0, [r4, 0x38] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7F - bhi _080D8A06 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x80 - b _080D8A0C -_080D8A06: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x8C -_080D8A0C: - strb r0, [r1] - ldrh r0, [r4, 0x38] - subs r0, 0x4 -_080D8A12: - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bgt _080D8AD0 - movs r2, 0 - movs r0, 0xC0 - lsls r0, 2 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x26] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x36] - ldr r0, _080D8A68 @ =gMain - ldr r1, _080D8A6C @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - ldr r1, _080D8A70 @ =gBanksBySide - ldr r0, _080D8A74 @ =gAnimBankTarget - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8A78 - movs r0, 0x80 - lsls r0, 1 - b _080D8A7A - .align 2, 0 -_080D8A68: .4byte gMain -_080D8A6C: .4byte 0x0000043d -_080D8A70: .4byte gBanksBySide -_080D8A74: .4byte gAnimBankTarget -_080D8A78: - ldr r0, _080D8A90 @ =0x0000fff0 -_080D8A7A: - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x3C] - strh r1, [r4, 0x26] - strh r1, [r4, 0x24] - adds r0, r4, 0 - bl sub_8078BD4 - b _080D8AD0 - .align 2, 0 -_080D8A90: .4byte 0x0000fff0 -_080D8A94: - adds r0, r4, 0 - bl TranslateAnimLinear - lsls r0, 24 - cmp r0, 0 - beq _080D8AD0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D8AC2 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080D8AC2: - adds r0, r4, 0 - bl DestroySprite - ldr r1, _080D8AD8 @ =gAnimVisualTaskCount - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] -_080D8AD0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8AD8: .4byte gAnimVisualTaskCount - thumb_func_end sub_80D8874 - - thumb_func_start sub_80D8ADC -sub_80D8ADC: @ 80D8ADC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D8AF0 @ =gTasks - adds r1, r0 - ldr r0, _080D8AF4 @ =sub_80D8AF8 - str r0, [r1] - bx lr - .align 2, 0 -_080D8AF0: .4byte gTasks -_080D8AF4: .4byte sub_80D8AF8 - thumb_func_end sub_80D8ADC - - thumb_func_start sub_80D8AF8 -sub_80D8AF8: @ 80D8AF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080D8B1C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080D8B3C - cmp r5, 0x1 - bgt _080D8B20 - cmp r5, 0 - beq _080D8B26 - b _080D8BA0 - .align 2, 0 -_080D8B1C: .4byte gTasks -_080D8B20: - cmp r5, 0x2 - beq _080D8B92 - b _080D8BA0 -_080D8B26: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080D8BA0 - strh r5, [r4, 0x10] - strh r5, [r4, 0x12] - strh r5, [r4, 0xC] - b _080D8B78 -_080D8B3C: - ldrh r1, [r4, 0x12] - movs r3, 0x12 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080D8B8C - ldrb r0, [r4, 0xE] - ldrb r1, [r4, 0xC] - movs r3, 0x1 - bl sub_80D8BA8 - lsls r0, 24 - cmp r0, 0 - beq _080D8B5C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_080D8B5C: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080D8B88 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080D8B80 -_080D8B78: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B80: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] - b _080D8BA0 -_080D8B88: - strh r5, [r4, 0x12] - b _080D8BA0 -_080D8B8C: - subs r0, r1, 0x1 - strh r0, [r4, 0x12] - b _080D8BA0 -_080D8B92: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8BA0 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080D8BA0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D8AF8 - - thumb_func_start sub_80D8BA8 -sub_80D8BA8: @ 80D8BA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _080D8C20 @ =gUnknown_083D9DC4 - lsrs r0, 22 - adds r4, r0, r1 - ldrb r0, [r4, 0x3] - lsls r0, 24 - asrs r0, 28 - mov r8, r0 - cmp r0, 0x2 - beq _080D8C94 - ldrh r0, [r4, 0x2] - lsls r0, 20 - lsrs r0, 24 - bl GetBattlerAtPosition - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080D8C94 - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r5, 0 - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r8 - cmp r1, 0 - beq _080D8C24 - cmp r1, 0x1 - beq _080D8C5A - b _080D8CA6 - .align 2, 0 -_080D8C20: .4byte gUnknown_083D9DC4 -_080D8C24: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r0 - b _080D8C8E -_080D8C5A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r7, 16 - asrs r1, 16 - adds r1, r0 - lsls r1, 16 - lsrs r7, r1, 16 - adds r0, r5, 0 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x6 - bl __divsi3 - lsls r1, r6, 16 - asrs r1, 16 - adds r1, r0 -_080D8C8E: - lsls r1, 16 - lsrs r6, r1, 16 - b _080D8CA6 -_080D8C94: - ldrh r0, [r4] - lsls r0, 22 - asrs r0, 6 - lsrs r7, r0, 16 - ldr r0, [r4] - lsls r0, 12 - asrs r0, 22 - lsls r0, 16 - lsrs r6, r0, 16 -_080D8CA6: - lsls r0, r6, 16 - asrs r0, 16 - adds r0, 0x8 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r1, r7, 16 - asrs r1, 16 - subs r1, r0 - ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C - lsls r1, 16 - asrs r1, 16 - movs r2, 0x8 - negs r2, r2 - movs r3, 0x12 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080D8D08 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r0, _080D8D04 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - mov r1, r9 - bl StartSpriteAffineAnim - mov r0, sp - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - strh r7, [r4, 0x34] - strh r6, [r4, 0x36] - mov r1, r9 - strh r1, [r4, 0x38] - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x3A] - mov r1, r10 - strh r1, [r4, 0x3C] - movs r0, 0x1 - b _080D8D0A - .align 2, 0 -_080D8D00: .4byte gSpriteTemplate_83D9E3C -_080D8D04: .4byte gSprites -_080D8D08: - movs r0, 0 -_080D8D0A: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D8BA8 - - thumb_func_start sub_80D8D1C -sub_80D8D1C: @ 80D8D1C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - adds r2, r1, 0 - adds r2, 0x8 - strh r2, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _080D8D46 - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080D8DF6 -_080D8D46: - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _080D8DC8 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D8DC8 - ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78 - movs r2, 0x34 - ldrsh r1, [r4, r2] - movs r3, 0x36 - ldrsh r2, [r4, r3] - adds r3, r4, 0 - adds r3, 0x43 - ldrb r3, [r3] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x2E] - cmp r0, 0x40 - beq _080D8DAA - ldr r2, _080D8DC0 @ =gSprites - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080D8DC4 @ =sub_80D8E00 - str r1, [r0] - movs r3, 0x2E - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3A] - strh r1, [r0, 0x3A] - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r4, 0x3C] - strh r1, [r0, 0x3C] -_080D8DAA: - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _080D8DF6 - .align 2, 0 -_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78 -_080D8DC0: .4byte gSprites -_080D8DC4: .4byte sub_80D8E00 -_080D8DC8: - ldr r3, _080D8DFC @ =gTasks - movs r2, 0x3C - ldrsh r1, [r4, r2] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8DF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8DFC: .4byte gTasks - thumb_func_end sub_80D8D1C - - thumb_func_start sub_80D8E00 -sub_80D8E00: @ 80D8E00 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080D8E40 - ldr r3, _080D8E48 @ =gTasks - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r1, 1 - movs r0, 0x3A - ldrsh r2, [r4, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r3, 0x8 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080D8E40: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8E48: .4byte gTasks - thumb_func_end sub_80D8E00 - - thumb_func_start unc_080B06FC -unc_080B06FC: @ 80D8E4C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080D8ECC @ =gAnimDisableStructPtr - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - subs r0, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080D8E6A - movs r1, 0x4 -_080D8E6A: - adds r0, r5, 0 - bl StartSpriteAffineAnim - adds r0, r5, 0 - movs r1, 0x1 - bl InitAnimSpritePos - ldr r6, _080D8ED0 @ =gBattleAnimArgs - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080D8ED4 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBattlerSide - lsls r0, 24 - cmp r0, 0 - beq _080D8E92 - ldrh r0, [r6, 0x4] - negs r0, r0 - strh r0, [r6, 0x4] -_080D8E92: - ldr r4, _080D8ED8 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBattlerSpriteCoord - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x6] - adds r0, r1 - strh r0, [r5, 0x36] - ldrh r0, [r6, 0xA] - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl InitAnimArcTranslation - ldr r0, _080D8EDC @ =sub_80D8EE0 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8ECC: .4byte gAnimDisableStructPtr -_080D8ED0: .4byte gBattleAnimArgs -_080D8ED4: .4byte gAnimBankAttacker -_080D8ED8: .4byte gAnimBankTarget -_080D8EDC: .4byte sub_80D8EE0 - thumb_func_end unc_080B06FC - - thumb_func_start sub_80D8EE0 -sub_80D8EE0: @ 80D8EE0 - push {r4,lr} - adds r4, r0, 0 - bl TranslateAnimArc - lsls r0, 24 - cmp r0, 0 - beq _080D8F02 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _080D8F08 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080D8F0C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData -_080D8F02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D8F08: .4byte sub_8078600 -_080D8F0C: .4byte DestroyAnimSprite - thumb_func_end sub_80D8EE0 - - thumb_func_start sub_80D8F10 -sub_80D8F10: @ 80D8F10 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x8 - ldr r3, _080D8F64 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D8F68 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - bl Random - movs r5, 0xFF - ands r5, r0 - movs r0, 0x80 - lsls r0, 1 - adds r6, r0, 0 - orrs r5, r6 - bl Random - ldr r1, _080D8F6C @ =0x000001ff - ands r1, r0 - adds r0, r1, 0 - cmp r0, 0xFF - ble _080D8F56 - subs r0, r6, r0 - lsls r0, 16 - lsrs r1, r0, 16 -_080D8F56: - strh r5, [r4, 0x30] - strh r1, [r4, 0x32] - ldr r0, _080D8F70 @ =sub_80D8F74 - str r0, [r4, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D8F64: .4byte 0x000003ff -_080D8F68: .4byte 0xfffffc00 -_080D8F6C: .4byte 0x000001ff -_080D8F70: .4byte sub_80D8F74 - thumb_func_end sub_80D8F10 - - thumb_func_start sub_80D8F74 -sub_80D8F74: @ 80D8F74 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r3, r0, r1 - strh r3, [r2, 0x34] - ldrh r1, [r2, 0x32] - ldrh r4, [r2, 0x36] - adds r1, r4 - strh r1, [r2, 0x36] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080D8F98 - lsls r0, r3, 16 - asrs r0, 24 - negs r0, r0 - b _080D8F9C -_080D8F98: - lsls r0, r3, 16 - asrs r0, 24 -_080D8F9C: - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _080D8FBA - adds r0, r2, 0 - bl DestroyAnimSprite -_080D8FBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D8F74 - - thumb_func_start sub_80D8FC0 -sub_80D8FC0: @ 80D8FC0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080D8FE8 @ =gBattleAnimArgs - ldrb r3, [r1] - lsls r3, 1 - adds r3, r1 - ldr r1, _080D8FEC @ =gAnimDisableStructPtr - ldr r1, [r1] - ldrb r1, [r1, 0x11] - lsrs r2, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r2, r1 - subs r2, 0x1 - strh r2, [r3] - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080D8FE8: .4byte gBattleAnimArgs -_080D8FEC: .4byte gAnimDisableStructPtr - thumb_func_end sub_80D8FC0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_header.inc b/asm/rom_header.inc deleted file mode 100644 index a852a9f23..000000000 --- a/asm/rom_header.inc +++ /dev/null @@ -1,77 +0,0 @@ - .global RomHeaderNintendoLogo -RomHeaderNintendoLogo: - .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21 - .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad - .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21 - .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20 - .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec - .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf - .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1 - .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc - .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61 - .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76 - .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56 - .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd - .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1 - .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25 - .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2 - .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44 - .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94 - .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf - .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72 - .byte 0x21,0xd4,0xf8,0x07 - -RomHeaderGameTitle: - .ifdef SAPPHIRE - .ascii "POKEMON SAPP" - .else - .ascii "POKEMON RUBY" - .endif - -RomHeaderGameCode: - .ifdef SAPPHIRE - .ascii "AXP" - .else - .ascii "AXV" - .endif - .ifdef ENGLISH - .ascii "E" - .else - .ascii "D" - .endif - -RomHeaderMakerCode: - .ascii "01" - -RomHeaderMagic: - .byte 0x96 - -RomHeaderMainUnitCode: - .byte 0 - -RomHeaderDeviceType: - .byte 0 - -RomHeaderReserved1: - .space 7 - -RomHeaderSoftwareVersion: - .byte REVISION - -RomHeaderChecksum: - .ifdef ENGLISH - .ifdef SAPPHIRE - .byte 0x55 - REVISION - .else - .byte 0x41 - REVISION - .endif - .else - .ifdef SAPPHIRE - .byte 0x56 - .else - .byte 0x42 - .endif - .endif - -RomHeaderReserved2: - .space 2 |