summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-01-01 12:52:24 -0800
committerYamaArashi <shadow962@live.com>2017-01-01 12:52:24 -0800
commit6016d18c1dba45bcd55471ca656d5d53b2118cc6 (patch)
tree77d0a7a44c48691dcce91bd6c4610e47d91ebbbe
parent80548d5288662ac50e2866ffc0780fbda1556f84 (diff)
split out some battle anim code
-rw-r--r--asm/battle_anim_807B69C.s960
-rw-r--r--asm/rom5.s951
-rw-r--r--ld_script.txt1
3 files changed, 961 insertions, 951 deletions
diff --git a/asm/battle_anim_807B69C.s b/asm/battle_anim_807B69C.s
new file mode 100644
index 000000000..faf9f4cf4
--- /dev/null
+++ b/asm/battle_anim_807B69C.s
@@ -0,0 +1,960 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_807B69C
+unref_sub_807B69C: @ 807B69C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0807B740 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r6, [r0]
+ ldr r0, _0807B744 @ =sub_807B7E0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
+ bl LoadCompressedObjectPic
+ ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
+ bl LoadCompressedObjectPalette
+ ldr r1, _0807B750 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ strh r4, [r1, 0x8]
+ cmp r5, 0
+ beq _0807B75C
+ movs r0, 0x1F
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B754 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B6F0:
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r6, 0x22]
+ adds r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0xFF
+ lsls r0, 8
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B734
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B734:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B6F0
+ b _0807B7BC
+ .align 2, 0
+_0807B740: .4byte gUnknown_02024BE0
+_0807B744: .4byte sub_807B7E0
+_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
+_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
+_0807B750: .4byte gTasks
+_0807B754: .4byte gSprites
+_0807B758: .4byte gSpriteTemplate_83931F8
+_0807B75C:
+ movs r0, 0xF8
+ lsls r0, 7
+ strh r0, [r1, 0xA]
+ movs r5, 0
+ lsls r0, r6, 4
+ ldr r7, _0807B7D8 @ =gSprites
+ adds r0, r6
+ lsls r0, 2
+ adds r6, r0, r7
+_0807B76E:
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ ldrh r2, [r6, 0x22]
+ subs r2, 0x20
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r3, r0, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r1, r0, 4
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x30]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ cmp r5, 0x4
+ bls _0807B7B2
+ movs r0, 0x15
+ strh r0, [r3, 0x3A]
+_0807B7B2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0807B76E
+_0807B7BC:
+ ldr r0, _0807B7D8 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807B7D8: .4byte gSprites
+_0807B7DC: .4byte gSpriteTemplate_83931F8
+ thumb_func_end unref_sub_807B69C
+
+ thumb_func_start sub_807B7E0
+sub_807B7E0: @ 807B7E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0807B838 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x2
+ bne _0807B866
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x10]
+ ldrh r3, [r4, 0xA]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r2, [r4, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0807B83C
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807B86A
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ b _0807B86A
+ .align 2, 0
+_0807B838: .4byte gTasks
+_0807B83C:
+ ldrh r1, [r4, 0x10]
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0807B86A
+ strh r1, [r4, 0x10]
+ movs r0, 0x1
+ eors r0, r2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807B86A
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0807B86A
+_0807B866:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_0807B86A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B7E0
+
+ thumb_func_start sub_807B870
+sub_807B870: @ 807B870
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0807B89C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldr r1, _0807B898 @ =sub_807B8A4
+ str r1, [r2, 0x1C]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _0807B8A0
+ .align 2, 0
+_0807B898: .4byte sub_807B8A4
+_0807B89C:
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+_0807B8A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B870
+
+ thumb_func_start sub_807B8A4
+sub_807B8A4: @ 807B8A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _0807B8D0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _0807B8D6
+_0807B8D0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_0807B8D6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x34
+ bne _0807B918
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0807B912
+ adds r0, r4, 0
+ bl DestroySpriteAndFreeResources
+ b _0807B918
+_0807B912:
+ adds r0, r4, 0
+ bl DestroySprite
+_0807B918:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B8A4
+
+ thumb_func_start sub_807B920
+sub_807B920: @ 807B920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _0807B9B4 @ =0xffe00000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r2, _0807B9B8 @ =0xffdc0000
+ adds r0, r2
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B95E
+ lsls r0, r5, 16
+ ldr r1, _0807B9BC @ =0xfffa0000
+ adds r0, r1
+ lsrs r5, r0, 16
+_0807B95E:
+ ldr r1, _0807B9C0 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r4, 16
+ asrs r2, 16
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0807B9C8 @ =gSprites
+ adds r0, r1
+ ldr r1, _0807B9CC @ =gUnknown_083931D8
+ bl SetSubspriteTables
+ ldr r1, _0807B9D0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x26]
+ ldr r1, _0807B9D4 @ =sub_807B9D8
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B9B0: .4byte gUnknown_0202F7C9
+_0807B9B4: .4byte 0xffe00000
+_0807B9B8: .4byte 0xffdc0000
+_0807B9BC: .4byte 0xfffa0000
+_0807B9C0: .4byte REG_BLDCNT
+_0807B9C4: .4byte gSpriteTemplate_83931E0
+_0807B9C8: .4byte gSprites
+_0807B9CC: .4byte gUnknown_083931D8
+_0807B9D0: .4byte gTasks
+_0807B9D4: .4byte sub_807B9D8
+ thumb_func_end sub_807B920
+
+ thumb_func_start sub_807B9D8
+sub_807B9D8: @ 807B9D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BA04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ adds r2, r0, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0807BA0C
+ ldr r0, _0807BA08 @ =sub_807BA24
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _0807BA1C
+ .align 2, 0
+_0807BA04: .4byte gTasks
+_0807BA08: .4byte sub_807BA24
+_0807BA0C:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ ldr r2, _0807BA20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BA1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BA20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807B9D8
+
+ thumb_func_start sub_807BA24
+sub_807BA24: @ 807BA24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0807BABC @ =0x0000271a
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0807BAC0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0807BAB4
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ ldr r3, _0807BAC4 @ =gPlttBufferFaded
+ lsls r2, 4
+ mov r12, r2
+ ldr r1, _0807BAC8 @ =0x0000010d
+ add r1, r12
+ lsls r1, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ movs r2, 0x87
+ lsls r2, 1
+ add r2, r12
+ lsls r2, 1
+ adds r2, r3
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r0, _0807BACC @ =0x0000010f
+ add r0, r12
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r4, [r0]
+ strh r6, [r5, 0xC]
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0807BAB4
+ strh r6, [r5, 0xE]
+ strh r6, [r5, 0xA]
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0807BAB4
+ movs r0, 0x9
+ strh r0, [r5, 0xA]
+ ldr r0, _0807BAD0 @ =sub_807BAD4
+ str r0, [r5]
+_0807BAB4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BABC: .4byte 0x0000271a
+_0807BAC0: .4byte gTasks
+_0807BAC4: .4byte gPlttBufferFaded
+_0807BAC8: .4byte 0x0000010d
+_0807BACC: .4byte 0x0000010f
+_0807BAD0: .4byte sub_807BAD4
+ thumb_func_end sub_807BA24
+
+ thumb_func_start sub_807BAD4
+sub_807BAD4: @ 807BAD4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BB04 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ adds r3, r0, 0
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0807BB0C
+ ldr r0, _0807BB08 @ =sub_807BB24
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ b _0807BB1C
+ .align 2, 0
+_0807BB04: .4byte gTasks
+_0807BB08: .4byte sub_807BB24
+_0807BB0C:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldr r2, _0807BB20 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 8
+ orrs r1, r0
+ strh r1, [r2]
+_0807BB1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB20: .4byte REG_BLDALPHA
+ thumb_func_end sub_807BAD4
+
+ thumb_func_start sub_807BB24
+sub_807BB24: @ 807BB24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0807BB64 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x25
+ bne _0807BB6C
+ ldrh r0, [r1, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807BB68 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0807BB7E
+ .align 2, 0
+_0807BB64: .4byte gTasks
+_0807BB68: .4byte gSprites
+_0807BB6C:
+ cmp r0, 0x27
+ bne _0807BB7E
+ ldr r0, _0807BB84 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0807BB7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BB84: .4byte REG_BLDCNT
+ thumb_func_end sub_807BB24
+
+ thumb_func_start sub_807BB88
+sub_807BB88: @ 807BB88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _0807BBA8 @ =0x02017840
+ ldrh r0, [r0]
+ subs r0, 0xF
+ cmp r0, 0x2B
+ bls _0807BB9C
+ b _0807BD20
+_0807BB9C:
+ lsls r0, 2
+ ldr r1, _0807BBAC @ =_0807BBB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807BBA8: .4byte 0x02017840
+_0807BBAC: .4byte _0807BBB0
+ .align 2, 0
+_0807BBB0:
+ .4byte _0807BC60
+ .4byte _0807BC66
+ .4byte _0807BC6C
+ .4byte _0807BC72
+ .4byte _0807BC78
+ .4byte _0807BC7E
+ .4byte _0807BC84
+ .4byte _0807BC8A
+ .4byte _0807BC90
+ .4byte _0807BC96
+ .4byte _0807BC9C
+ .4byte _0807BCA2
+ .4byte _0807BCA8
+ .4byte _0807BCAE
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BCB4
+ .4byte _0807BCB8
+ .4byte _0807BCBC
+ .4byte _0807BCC0
+ .4byte _0807BCC4
+ .4byte _0807BCC8
+ .4byte _0807BCCC
+ .4byte _0807BCD0
+ .4byte _0807BCD8
+ .4byte _0807BCE0
+ .4byte _0807BCE8
+ .4byte _0807BCF0
+ .4byte _0807BCF8
+ .4byte _0807BD00
+ .4byte _0807BD20
+ .4byte _0807BD20
+ .4byte _0807BD08
+ .4byte _0807BD0C
+ .4byte _0807BD10
+ .4byte _0807BD18
+_0807BC60:
+ movs r5, 0
+ movs r2, 0
+ b _0807BD28
+_0807BC66:
+ movs r5, 0
+ movs r2, 0x1
+ b _0807BD28
+_0807BC6C:
+ movs r5, 0
+ movs r2, 0x3
+ b _0807BD28
+_0807BC72:
+ movs r5, 0
+ movs r2, 0x5
+ b _0807BD28
+_0807BC78:
+ movs r5, 0
+ movs r2, 0x6
+ b _0807BD28
+_0807BC7E:
+ movs r5, 0
+ movs r2, 0x2
+ b _0807BD28
+_0807BC84:
+ movs r5, 0
+ movs r2, 0x4
+ b _0807BD28
+_0807BC8A:
+ movs r5, 0x1
+ movs r2, 0
+ b _0807BD28
+_0807BC90:
+ movs r5, 0x1
+ movs r2, 0x1
+ b _0807BD28
+_0807BC96:
+ movs r5, 0x1
+ movs r2, 0x3
+ b _0807BD28
+_0807BC9C:
+ movs r5, 0x1
+ movs r2, 0x5
+ b _0807BD28
+_0807BCA2:
+ movs r5, 0x1
+ movs r2, 0x6
+ b _0807BD28
+_0807BCA8:
+ movs r5, 0x1
+ movs r2, 0x2
+ b _0807BD28
+_0807BCAE:
+ movs r5, 0x1
+ movs r2, 0x4
+ b _0807BD28
+_0807BCB4:
+ movs r5, 0
+ b _0807BCD2
+_0807BCB8:
+ movs r5, 0
+ b _0807BCDA
+_0807BCBC:
+ movs r5, 0
+ b _0807BCE2
+_0807BCC0:
+ movs r5, 0
+ b _0807BCEA
+_0807BCC4:
+ movs r5, 0
+ b _0807BCF2
+_0807BCC8:
+ movs r5, 0
+ b _0807BCFA
+_0807BCCC:
+ movs r5, 0
+ b _0807BD02
+_0807BCD0:
+ movs r5, 0x1
+_0807BCD2:
+ movs r2, 0
+ movs r3, 0x1
+ b _0807BD28
+_0807BCD8:
+ movs r5, 0x1
+_0807BCDA:
+ movs r2, 0x1
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE0:
+ movs r5, 0x1
+_0807BCE2:
+ movs r2, 0x3
+ movs r3, 0x1
+ b _0807BD28
+_0807BCE8:
+ movs r5, 0x1
+_0807BCEA:
+ movs r2, 0x5
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF0:
+ movs r5, 0x1
+_0807BCF2:
+ movs r2, 0x6
+ movs r3, 0x1
+ b _0807BD28
+_0807BCF8:
+ movs r5, 0x1
+_0807BCFA:
+ movs r2, 0x2
+ movs r3, 0x1
+ b _0807BD28
+_0807BD00:
+ movs r5, 0x1
+_0807BD02:
+ movs r2, 0x4
+ movs r3, 0x1
+ b _0807BD28
+_0807BD08:
+ movs r5, 0
+ b _0807BD12
+_0807BD0C:
+ movs r5, 0
+ b _0807BD1A
+_0807BD10:
+ movs r5, 0x1
+_0807BD12:
+ movs r2, 0xFF
+ movs r3, 0
+ b _0807BD28
+_0807BD18:
+ movs r5, 0x1
+_0807BD1A:
+ movs r2, 0xFF
+ movs r3, 0x1
+ b _0807BD28
+_0807BD20:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0807BD4A
+_0807BD28:
+ ldr r0, _0807BD50 @ =gBattleAnimArgs
+ movs r1, 0
+ strh r5, [r0]
+ strh r2, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r3, [r0, 0x8]
+ ldr r1, _0807BD54 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0807BD58 @ =sub_80E32E0
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0807BD4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD50: .4byte gBattleAnimArgs
+_0807BD54: .4byte gTasks
+_0807BD58: .4byte sub_80E32E0
+ thumb_func_end sub_807BB88
+
+ thumb_func_start move_anim_start_t2
+move_anim_start_t2: @ 807BD5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _0807BD98 @ =gUnknown_0202F7C8
+ strb r4, [r0]
+ ldr r0, _0807BD9C @ =gUnknown_0202F7C9
+ strb r4, [r0]
+ ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
+ movs r2, 0
+ bl move_something
+ ldr r0, _0807BDA4 @ =sub_807BDAC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0807BDA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BD98: .4byte gUnknown_0202F7C8
+_0807BD9C: .4byte gUnknown_0202F7C9
+_0807BDA0: .4byte gBattleAnims_StatusConditions
+_0807BDA4: .4byte sub_807BDAC
+_0807BDA8: .4byte gTasks
+ thumb_func_end move_anim_start_t2
+
+ thumb_func_start sub_807BDAC
+sub_807BDAC: @ 807BDAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807BDEA
+ ldr r1, _0807BDF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0807BDFC @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0807BDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BDF0: .4byte gUnknown_0202F7AC
+_0807BDF4: .4byte gUnknown_0202F7B1
+_0807BDF8: .4byte gTasks
+_0807BDFC: .4byte 0x02017810
+ thumb_func_end sub_807BDAC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom5.s b/asm/rom5.s
index a3ef6764a..a228374e3 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -1094,955 +1094,4 @@ _0807B694: .4byte gUnknown_02024A6A
_0807B698: .4byte gPlayerParty
thumb_func_end sub_807B508
- thumb_func_start unref_sub_807B69C
-unref_sub_807B69C: @ 807B69C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0807B740 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r6, [r0]
- ldr r0, _0807B744 @ =sub_807B7E0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0807B748 @ =gBattleAnimPicTable + (136 * 8)
- bl LoadCompressedObjectPic
- ldr r0, _0807B74C @ =gBattleAnimPaletteTable + (136 * 8)
- bl LoadCompressedObjectPalette
- ldr r1, _0807B750 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x8]
- cmp r5, 0
- beq _0807B75C
- movs r0, 0x1F
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B754 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B6F0:
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r6, 0x22]
- adds r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B758 @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0xFF
- lsls r0, 8
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B734
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B734:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B6F0
- b _0807B7BC
- .align 2, 0
-_0807B740: .4byte gUnknown_02024BE0
-_0807B744: .4byte sub_807B7E0
-_0807B748: .4byte gBattleAnimPicTable + (136 * 8)
-_0807B74C: .4byte gBattleAnimPaletteTable + (136 * 8)
-_0807B750: .4byte gTasks
-_0807B754: .4byte gSprites
-_0807B758: .4byte gSpriteTemplate_83931F8
-_0807B75C:
- movs r0, 0xF8
- lsls r0, 7
- strh r0, [r1, 0xA]
- movs r5, 0
- lsls r0, r6, 4
- ldr r7, _0807B7D8 @ =gSprites
- adds r0, r6
- lsls r0, 2
- adds r6, r0, r7
-_0807B76E:
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- ldrh r2, [r6, 0x22]
- subs r2, 0x20
- lsls r2, 16
- asrs r2, 16
- ldr r0, _0807B7DC @ =gSpriteTemplate_83931F8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r3, r0, r7
- lsls r0, r5, 1
- adds r0, r5
- lsls r1, r0, 4
- adds r0, r1
- strh r0, [r3, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x30]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- cmp r5, 0x4
- bls _0807B7B2
- movs r0, 0x15
- strh r0, [r3, 0x3A]
-_0807B7B2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0807B76E
-_0807B7BC:
- ldr r0, _0807B7D8 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807B7D8: .4byte gSprites
-_0807B7DC: .4byte gSpriteTemplate_83931F8
- thumb_func_end unref_sub_807B69C
-
- thumb_func_start sub_807B7E0
-sub_807B7E0: @ 807B7E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807B838 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x2
- bne _0807B866
- movs r0, 0
- strh r0, [r4, 0xC]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x10]
- ldrh r3, [r4, 0xA]
- movs r1, 0x10
- bl BlendPalette
- ldrh r2, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0807B83C
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0807B86A
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- b _0807B86A
- .align 2, 0
-_0807B838: .4byte gTasks
-_0807B83C:
- ldrh r1, [r4, 0x10]
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0807B86A
- strh r1, [r4, 0x10]
- movs r0, 0x1
- eors r0, r2
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807B86A
- adds r0, r5, 0
- bl DestroyTask
- b _0807B86A
-_0807B866:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
-_0807B86A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_807B7E0
-
- thumb_func_start sub_807B870
-sub_807B870: @ 807B870
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0807B89C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldr r1, _0807B898 @ =sub_807B8A4
- str r1, [r2, 0x1C]
- adds r0, r2, 0
- bl _call_via_r1
- b _0807B8A0
- .align 2, 0
-_0807B898: .4byte sub_807B8A4
-_0807B89C:
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
-_0807B8A0:
- pop {r0}
- bx r0
- thumb_func_end sub_807B870
-
- thumb_func_start sub_807B8A4
-sub_807B8A4: @ 807B8A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _0807B8D0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _0807B8D6
-_0807B8D0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_0807B8D6:
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x34
- bne _0807B918
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807B912
- adds r0, r4, 0
- bl DestroySpriteAndFreeResources
- b _0807B918
-_0807B912:
- adds r0, r4, 0
- bl DestroySprite
-_0807B918:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_807B8A4
-
- thumb_func_start sub_807B920
-sub_807B920: @ 807B920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0807B9B0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0807B9B4 @ =0xffe00000
- adds r0, r1
- lsrs r5, r0, 16
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- ldr r2, _0807B9B8 @ =0xffdc0000
- adds r0, r2
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807B95E
- lsls r0, r5, 16
- ldr r1, _0807B9BC @ =0xfffa0000
- adds r0, r1
- lsrs r5, r0, 16
-_0807B95E:
- ldr r1, _0807B9C0 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0807B9C4 @ =gSpriteTemplate_83931E0
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _0807B9C8 @ =gSprites
- adds r0, r1
- ldr r1, _0807B9CC @ =gUnknown_083931D8
- bl SetSubspriteTables
- ldr r1, _0807B9D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x26]
- ldr r1, _0807B9D4 @ =sub_807B9D8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807B9B0: .4byte gUnknown_0202F7C9
-_0807B9B4: .4byte 0xffe00000
-_0807B9B8: .4byte 0xffdc0000
-_0807B9BC: .4byte 0xfffa0000
-_0807B9C0: .4byte REG_BLDCNT
-_0807B9C4: .4byte gSpriteTemplate_83931E0
-_0807B9C8: .4byte gSprites
-_0807B9CC: .4byte gUnknown_083931D8
-_0807B9D0: .4byte gTasks
-_0807B9D4: .4byte sub_807B9D8
- thumb_func_end sub_807B920
-
- thumb_func_start sub_807B9D8
-sub_807B9D8: @ 807B9D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BA04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0807BA0C
- ldr r0, _0807BA08 @ =sub_807BA24
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xA]
- b _0807BA1C
- .align 2, 0
-_0807BA04: .4byte gTasks
-_0807BA08: .4byte sub_807BA24
-_0807BA0C:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, _0807BA20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BA1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BA20: .4byte REG_BLDALPHA
- thumb_func_end sub_807B9D8
-
- thumb_func_start sub_807BA24
-sub_807BA24: @ 807BA24
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807BABC @ =0x0000271a
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0807BAC0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r1, r0, 0x1
- strh r1, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0807BAB4
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- ldr r3, _0807BAC4 @ =gPlttBufferFaded
- lsls r2, 4
- mov r12, r2
- ldr r1, _0807BAC8 @ =0x0000010d
- add r1, r12
- lsls r1, 1
- adds r1, r3
- ldrh r4, [r1]
- movs r2, 0x87
- lsls r2, 1
- add r2, r12
- lsls r2, 1
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r0, _0807BACC @ =0x0000010f
- add r0, r12
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- strh r1, [r2]
- strh r4, [r0]
- strh r6, [r5, 0xC]
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0807BAB4
- strh r6, [r5, 0xE]
- strh r6, [r5, 0xA]
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0807BAB4
- movs r0, 0x9
- strh r0, [r5, 0xA]
- ldr r0, _0807BAD0 @ =sub_807BAD4
- str r0, [r5]
-_0807BAB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BABC: .4byte 0x0000271a
-_0807BAC0: .4byte gTasks
-_0807BAC4: .4byte gPlttBufferFaded
-_0807BAC8: .4byte 0x0000010d
-_0807BACC: .4byte 0x0000010f
-_0807BAD0: .4byte sub_807BAD4
- thumb_func_end sub_807BA24
-
- thumb_func_start sub_807BAD4
-sub_807BAD4: @ 807BAD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BB04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- adds r3, r0, 0
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0807BB0C
- ldr r0, _0807BB08 @ =sub_807BB24
- str r0, [r2]
- movs r0, 0
- strh r0, [r2, 0xA]
- b _0807BB1C
- .align 2, 0
-_0807BB04: .4byte gTasks
-_0807BB08: .4byte sub_807BB24
-_0807BB0C:
- lsls r0, r3, 24
- lsrs r0, 24
- ldr r2, _0807BB20 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r1, 8
- orrs r1, r0
- strh r1, [r2]
-_0807BB1C:
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB20: .4byte REG_BLDALPHA
- thumb_func_end sub_807BAD4
-
- thumb_func_start sub_807BB24
-sub_807BB24: @ 807BB24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0807BB64 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x25
- bne _0807BB6C
- ldrh r0, [r1, 0x26]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BB68 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _0807BB7E
- .align 2, 0
-_0807BB64: .4byte gTasks
-_0807BB68: .4byte gSprites
-_0807BB6C:
- cmp r0, 0x27
- bne _0807BB7E
- ldr r0, _0807BB84 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_0807BB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BB84: .4byte REG_BLDCNT
- thumb_func_end sub_807BB24
-
- thumb_func_start sub_807BB88
-sub_807BB88: @ 807BB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _0807BBA8 @ =0x02017840
- ldrh r0, [r0]
- subs r0, 0xF
- cmp r0, 0x2B
- bls _0807BB9C
- b _0807BD20
-_0807BB9C:
- lsls r0, 2
- ldr r1, _0807BBAC @ =_0807BBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807BBA8: .4byte 0x02017840
-_0807BBAC: .4byte _0807BBB0
- .align 2, 0
-_0807BBB0:
- .4byte _0807BC60
- .4byte _0807BC66
- .4byte _0807BC6C
- .4byte _0807BC72
- .4byte _0807BC78
- .4byte _0807BC7E
- .4byte _0807BC84
- .4byte _0807BC8A
- .4byte _0807BC90
- .4byte _0807BC96
- .4byte _0807BC9C
- .4byte _0807BCA2
- .4byte _0807BCA8
- .4byte _0807BCAE
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BCB4
- .4byte _0807BCB8
- .4byte _0807BCBC
- .4byte _0807BCC0
- .4byte _0807BCC4
- .4byte _0807BCC8
- .4byte _0807BCCC
- .4byte _0807BCD0
- .4byte _0807BCD8
- .4byte _0807BCE0
- .4byte _0807BCE8
- .4byte _0807BCF0
- .4byte _0807BCF8
- .4byte _0807BD00
- .4byte _0807BD20
- .4byte _0807BD20
- .4byte _0807BD08
- .4byte _0807BD0C
- .4byte _0807BD10
- .4byte _0807BD18
-_0807BC60:
- movs r5, 0
- movs r2, 0
- b _0807BD28
-_0807BC66:
- movs r5, 0
- movs r2, 0x1
- b _0807BD28
-_0807BC6C:
- movs r5, 0
- movs r2, 0x3
- b _0807BD28
-_0807BC72:
- movs r5, 0
- movs r2, 0x5
- b _0807BD28
-_0807BC78:
- movs r5, 0
- movs r2, 0x6
- b _0807BD28
-_0807BC7E:
- movs r5, 0
- movs r2, 0x2
- b _0807BD28
-_0807BC84:
- movs r5, 0
- movs r2, 0x4
- b _0807BD28
-_0807BC8A:
- movs r5, 0x1
- movs r2, 0
- b _0807BD28
-_0807BC90:
- movs r5, 0x1
- movs r2, 0x1
- b _0807BD28
-_0807BC96:
- movs r5, 0x1
- movs r2, 0x3
- b _0807BD28
-_0807BC9C:
- movs r5, 0x1
- movs r2, 0x5
- b _0807BD28
-_0807BCA2:
- movs r5, 0x1
- movs r2, 0x6
- b _0807BD28
-_0807BCA8:
- movs r5, 0x1
- movs r2, 0x2
- b _0807BD28
-_0807BCAE:
- movs r5, 0x1
- movs r2, 0x4
- b _0807BD28
-_0807BCB4:
- movs r5, 0
- b _0807BCD2
-_0807BCB8:
- movs r5, 0
- b _0807BCDA
-_0807BCBC:
- movs r5, 0
- b _0807BCE2
-_0807BCC0:
- movs r5, 0
- b _0807BCEA
-_0807BCC4:
- movs r5, 0
- b _0807BCF2
-_0807BCC8:
- movs r5, 0
- b _0807BCFA
-_0807BCCC:
- movs r5, 0
- b _0807BD02
-_0807BCD0:
- movs r5, 0x1
-_0807BCD2:
- movs r2, 0
- movs r3, 0x1
- b _0807BD28
-_0807BCD8:
- movs r5, 0x1
-_0807BCDA:
- movs r2, 0x1
- movs r3, 0x1
- b _0807BD28
-_0807BCE0:
- movs r5, 0x1
-_0807BCE2:
- movs r2, 0x3
- movs r3, 0x1
- b _0807BD28
-_0807BCE8:
- movs r5, 0x1
-_0807BCEA:
- movs r2, 0x5
- movs r3, 0x1
- b _0807BD28
-_0807BCF0:
- movs r5, 0x1
-_0807BCF2:
- movs r2, 0x6
- movs r3, 0x1
- b _0807BD28
-_0807BCF8:
- movs r5, 0x1
-_0807BCFA:
- movs r2, 0x2
- movs r3, 0x1
- b _0807BD28
-_0807BD00:
- movs r5, 0x1
-_0807BD02:
- movs r2, 0x4
- movs r3, 0x1
- b _0807BD28
-_0807BD08:
- movs r5, 0
- b _0807BD12
-_0807BD0C:
- movs r5, 0
- b _0807BD1A
-_0807BD10:
- movs r5, 0x1
-_0807BD12:
- movs r2, 0xFF
- movs r3, 0
- b _0807BD28
-_0807BD18:
- movs r5, 0x1
-_0807BD1A:
- movs r2, 0xFF
- movs r3, 0x1
- b _0807BD28
-_0807BD20:
- adds r0, r4, 0
- bl move_anim_task_del
- b _0807BD4A
-_0807BD28:
- ldr r0, _0807BD50 @ =gBattleAnimArgs
- movs r1, 0
- strh r5, [r0]
- strh r2, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r3, [r0, 0x8]
- ldr r1, _0807BD54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0807BD58 @ =sub_80E32E0
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_0807BD4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD50: .4byte gBattleAnimArgs
-_0807BD54: .4byte gTasks
-_0807BD58: .4byte sub_80E32E0
- thumb_func_end sub_807BB88
-
- thumb_func_start move_anim_start_t2
-move_anim_start_t2: @ 807BD5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0807BD98 @ =gUnknown_0202F7C8
- strb r4, [r0]
- ldr r0, _0807BD9C @ =gUnknown_0202F7C9
- strb r4, [r0]
- ldr r0, _0807BDA0 @ =gBattleAnims_StatusConditions
- movs r2, 0
- bl move_something
- ldr r0, _0807BDA4 @ =sub_807BDAC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807BDA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BD98: .4byte gUnknown_0202F7C8
-_0807BD9C: .4byte gUnknown_0202F7C9
-_0807BDA0: .4byte gBattleAnims_StatusConditions
-_0807BDA4: .4byte sub_807BDAC
-_0807BDA8: .4byte gTasks
- thumb_func_end move_anim_start_t2
-
- thumb_func_start sub_807BDAC
-sub_807BDAC: @ 807BDAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807BDF0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0807BDF4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807BDEA
- ldr r1, _0807BDF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0807BDFC @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0807BDEA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BDF0: .4byte gUnknown_0202F7AC
-_0807BDF4: .4byte gUnknown_0202F7B1
-_0807BDF8: .4byte gTasks
-_0807BDFC: .4byte 0x02017810
- thumb_func_end sub_807BDAC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 69cbc2ddc..6ed88f4ac 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -100,6 +100,7 @@ SECTIONS {
asm/rom_8077ABC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
+ asm/battle_anim_807B69C.o(.text);
src/title_screen.o(.text);
src/weather.o(.text);
asm/weather.o(.text);