summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_anim.s1595
-rw-r--r--src/battle_anim.c680
2 files changed, 638 insertions, 1637 deletions
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index d7efbc466..d63a8a7c3 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -6,1601 +6,6 @@
.text
- thumb_func_start sub_8076380
-sub_8076380: @ 8076380
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r0, _080763F8 @ =0x02019348
- ldrh r0, [r0]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _080763EE
- mov r0, sp
- bl sub_8078914
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080763A2:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080763AC:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080763AC
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080763A2
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080763D2:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080763DA:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080763DA
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080763D2
-_080763EE:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080763F8: .4byte 0x02019348
- thumb_func_end sub_8076380
-
- thumb_func_start sub_80763FC
-sub_80763FC: @ 80763FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r12, r1
- adds r7, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r9, r0
- cmp r3, 0
- bne _0807641A
- movs r1, 0x20
- mov r9, r1
-_0807641A:
- lsls r0, r6, 28
- lsrs r6, r0, 16
- movs r0, 0
- cmp r0, r9
- bcs _08076452
- ldr r1, _08076460 @ =0x00000fff
- mov r8, r1
-_08076428:
- movs r3, 0
- adds r5, r0, 0x1
- lsls r4, r0, 5
-_0807642E:
- adds r1, r4, r3
- lsls r1, 1
- add r1, r12
- ldrh r2, [r1]
- mov r0, r8
- ands r0, r2
- orrs r0, r6
- adds r0, r7
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _0807642E
- lsls r0, r5, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08076428
-_08076452:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076460: .4byte 0x00000fff
- thumb_func_end sub_80763FC
-
- thumb_func_start sub_8076464
-sub_8076464: @ 8076464
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- cmp r4, 0
- beq _0807648C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080764F0
-_0807648C:
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _080764E0 @ =gUnknown_030042C0
- mov r9, r0
- ldr r0, _080764E4 @ =gUnknown_030041B4
- mov r10, r0
- movs r6, 0
- ldr r1, _080764E8 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _080764EC @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_080764AE:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080764AE
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, [sp, 0x8]
- b _08076540
- .align 2, 0
-_080764E0: .4byte gUnknown_030042C0
-_080764E4: .4byte gUnknown_030041B4
-_080764E8: .4byte 0x040000d4
-_080764EC: .4byte 0x85000400
-_080764F0:
- ldr r2, _08076568 @ =0x06006000
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0x10
- ldr r0, _0807656C @ =gUnknown_03004288
- mov r9, r0
- ldr r0, _08076570 @ =gUnknown_03004280
- mov r10, r0
- movs r6, 0
- ldr r1, _08076574 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r12, r5
- ldr r7, _08076578 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r8, r0
-_08076512:
- str r6, [sp, 0x10]
- mov r0, r12
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _08076512
- str r6, [sp, 0x10]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- ldr r1, _0807657C @ =0x0600f000
-_08076540:
- movs r2, 0
- str r2, [sp, 0x10]
- ldr r0, _08076574 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076580 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r9
- strh r2, [r0]
- mov r0, r10
- strh r2, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076568: .4byte 0x06006000
-_0807656C: .4byte gUnknown_03004288
-_08076570: .4byte gUnknown_03004280
-_08076574: .4byte 0x040000d4
-_08076578: .4byte 0x85000400
-_0807657C: .4byte 0x0600f000
-_08076580: .4byte 0x85000200
- thumb_func_end sub_8076464
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-task_pA_ma0A_obj_to_bg_pal: @ 8076584
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080765FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_8078914
- ldr r0, _08076600 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08076614
- ldr r1, _08076604 @ =gUnknown_030042C0
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _08076608 @ =gUnknown_030041B4
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r1, _0807660C @ =gPlttBufferFaded + 0x200
- adds r2, r1
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 5
- ldr r3, _08076610 @ =0xfffffe00
- adds r1, r3
- adds r0, r1
- b _08076634
- .align 2, 0
-_080765FC: .4byte gTasks
-_08076600: .4byte gSprites
-_08076604: .4byte gUnknown_030042C0
-_08076608: .4byte gUnknown_030041B4
-_0807660C: .4byte gPlttBufferFaded + 0x200
-_08076610: .4byte 0xfffffe00
-_08076614:
- ldr r1, _08076648 @ =gUnknown_03004288
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _0807664C @ =gUnknown_03004280
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r2, r6, 5
- ldr r0, _08076650 @ =gPlttBufferFaded + 0x200
- adds r2, r0
- subs r0, 0xE0
-_08076634:
- ldr r1, _08076654 @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08076658 @ =0x84000008
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076648: .4byte gUnknown_03004288
-_0807664C: .4byte gUnknown_03004280
-_08076650: .4byte gPlttBufferFaded + 0x200
-_08076654: .4byte 0x040000d4
-_08076658: .4byte 0x84000008
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 807665C
- push {r4,r5,lr}
- ldr r0, _08076670 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _08076674
- movs r4, 0x2
- b _0807667E
- .align 2, 0
-_08076670: .4byte gUnknown_0202F7A4
-_08076674:
- cmp r4, 0x1
- bne _0807667A
- movs r4, 0x3
-_0807667A:
- cmp r4, 0
- beq _08076682
-_0807667E:
- cmp r4, 0x2
- bne _0807668C
-_08076682:
- ldr r0, _08076688 @ =gUnknown_0202F7C8
- b _0807668E
- .align 2, 0
-_08076688: .4byte gUnknown_0202F7C8
-_0807668C:
- ldr r0, _080766E4 @ =gUnknown_0202F7C9
-_0807668E:
- ldrb r5, [r0]
- ldr r3, _080766E8 @ =gUnknown_0202F7C2
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080766B4
- ldr r2, _080766EC @ =gSprites
- ldr r0, _080766F0 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080766B4:
- cmp r4, 0x1
- bls _080766F4
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080766F4
- ldr r3, _080766EC @ =gSprites
- ldr r2, _080766F0 @ =gUnknown_02024BE0
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080766F6
- .align 2, 0
-_080766E4: .4byte gUnknown_0202F7C9
-_080766E8: .4byte gUnknown_0202F7C2
-_080766EC: .4byte gSprites
-_080766F0: .4byte gUnknown_02024BE0
-_080766F4:
- movs r4, 0
-_080766F6:
- ldr r0, _08076720 @ =sub_807672C
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076724 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, _08076728 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076720: .4byte sub_807672C
-_08076724: .4byte gTasks
-_08076728: .4byte gUnknown_0202F7A4
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_807672C
-sub_807672C: @ 807672C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0807676C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080767B6
- ldrb r0, [r1, 0xC]
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076770
-_08076768:
- movs r4, 0
- b _08076772
- .align 2, 0
-_0807676C: .4byte gTasks
-_08076770:
- movs r4, 0x1
-_08076772:
- ldr r6, _080767BC @ =gUnknown_0202F7C2
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _0807678A
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_0807678A:
- ldr r0, _080767C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080767B0
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_8076464
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080767B0:
- adds r0, r5, 0
- bl DestroyTask
-_080767B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080767BC: .4byte gUnknown_0202F7C2
-_080767C0: .4byte gTasks
- thumb_func_end sub_807672C
-
- thumb_func_start sub_80767C4
-sub_80767C4: @ 80767C4
- push {r4,r5,lr}
- ldr r0, _080767D8 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080767DC
- movs r5, 0x2
- b _080767E6
- .align 2, 0
-_080767D8: .4byte gUnknown_0202F7A4
-_080767DC:
- cmp r5, 0x1
- bne _080767E2
- movs r5, 0x3
-_080767E2:
- cmp r5, 0
- beq _080767EA
-_080767E6:
- cmp r5, 0x2
- bne _080767F4
-_080767EA:
- ldr r0, _080767F0 @ =gUnknown_0202F7C8
- b _080767F6
- .align 2, 0
-_080767F0: .4byte gUnknown_0202F7C8
-_080767F4:
- ldr r0, _08076828 @ =gUnknown_0202F7C9
-_080767F6:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076850
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076822
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0807682C
-_08076822:
- movs r1, 0
- b _0807682E
- .align 2, 0
-_08076828: .4byte gUnknown_0202F7C9
-_0807682C:
- movs r1, 0x1
-_0807682E:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _08076888 @ =gSprites
- ldr r0, _0807688C @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08076850:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080768B4
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080768B4
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _08076882
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076890
-_08076882:
- movs r1, 0
- b _08076892
- .align 2, 0
-_08076888: .4byte gSprites
-_0807688C: .4byte gUnknown_02024BE0
-_08076890:
- movs r1, 0x1
-_08076892:
- adds r0, r4, 0
- bl sub_8076034
- ldr r2, _080768C4 @ =gSprites
- ldr r0, _080768C8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080768B4:
- ldr r1, _080768CC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080768C4: .4byte gSprites
-_080768C8: .4byte gUnknown_02024BE0
-_080768CC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_80767C4
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80768D0
- push {r4-r6,lr}
- ldr r0, _080768E4 @ =gUnknown_0202F7A4
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080768E8
- movs r5, 0x2
- b _080768F2
- .align 2, 0
-_080768E4: .4byte gUnknown_0202F7A4
-_080768E8:
- cmp r5, 0x1
- bne _080768EE
- movs r5, 0x3
-_080768EE:
- cmp r5, 0
- beq _080768F6
-_080768F2:
- cmp r5, 0x2
- bne _08076900
-_080768F6:
- ldr r0, _080768FC @ =gUnknown_0202F7C8
- b _08076902
- .align 2, 0
-_080768FC: .4byte gUnknown_0202F7C8
-_08076900:
- ldr r0, _08076960 @ =gUnknown_0202F7C9
-_08076902:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807692C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0807692C:
- cmp r5, 0x1
- bls _0807696C
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _0807696C
- ldr r2, _08076964 @ =gSprites
- ldr r0, _08076968 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _0807696E
- .align 2, 0
-_08076960: .4byte gUnknown_0202F7C9
-_08076964: .4byte gSprites
-_08076968: .4byte gUnknown_02024BE0
-_0807696C:
- movs r5, 0
-_0807696E:
- ldr r0, _08076998 @ =sub_80769A4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807699C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, _080769A0 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076998: .4byte sub_80769A4
-_0807699C: .4byte gTasks
-_080769A0: .4byte gUnknown_0202F7A4
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80769A4
-sub_80769A4: @ 80769A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080769E8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08076A32
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080769E2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080769EC
-_080769E2:
- movs r5, 0
- b _080769EE
- .align 2, 0
-_080769E8: .4byte gTasks
-_080769EC:
- movs r5, 0x1
-_080769EE:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A00
- adds r0, r5, 0
- bl sub_8076464
-_08076A00:
- ldr r0, _08076A38 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08076A2C
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _08076A2C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_08076A2C:
- adds r0, r6, 0
- bl DestroyTask
-_08076A32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A38: .4byte gTasks
- thumb_func_end sub_80769A4
-
- thumb_func_start sub_8076A3C
-sub_8076A3C: @ 8076A3C
- push {r4,lr}
- ldr r2, _08076A6C @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r2, _08076A70 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r2]
- ldr r0, _08076A74 @ =REG_BLDALPHA
- orrs r3, r1
- strh r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076A6C: .4byte gUnknown_0202F7A4
-_08076A70: .4byte REG_BLDCNT
-_08076A74: .4byte REG_BLDALPHA
- thumb_func_end sub_8076A3C
-
- thumb_func_start sub_8076A78
-sub_8076A78: @ 8076A78
- ldr r2, _08076A98 @ =gUnknown_0202F7A4
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r3, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- adds r0, 0x1
- str r0, [r2]
- ldr r0, _08076A9C @ =REG_BLDCNT
- orrs r3, r1
- strh r3, [r0]
- bx lr
- .align 2, 0
-_08076A98: .4byte gUnknown_0202F7A4
-_08076A9C: .4byte REG_BLDCNT
- thumb_func_end sub_8076A78
-
- thumb_func_start sub_8076AA0
-sub_8076AA0: @ 8076AA0
- ldr r1, _08076AB4 @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076AB8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08076AB4: .4byte gUnknown_0202F7A4
-_08076AB8: .4byte REG_BLDCNT
- thumb_func_end sub_8076AA0
-
- thumb_func_start ma0E_call
-ma0E_call: @ 8076ABC
- push {r4,lr}
- ldr r4, _08076AE8 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, _08076AEC @ =gUnknown_0202F7A8
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076AE8: .4byte gUnknown_0202F7A4
-_08076AEC: .4byte gUnknown_0202F7A8
- thumb_func_end ma0E_call
-
- thumb_func_start sub_8076AF0
-sub_8076AF0: @ 8076AF0
- ldr r0, _08076AFC @ =gUnknown_0202F7A4
- ldr r1, _08076B00 @ =gUnknown_0202F7A8
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08076AFC: .4byte gUnknown_0202F7A4
-_08076B00: .4byte gUnknown_0202F7A8
- thumb_func_end sub_8076AF0
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 8076B04
- push {r4,r5,lr}
- ldr r5, _08076B30 @ =gUnknown_0202F7A4
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, _08076B34 @ =gBattleAnimArgs
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08076B30: .4byte gUnknown_0202F7A4
-_08076B34: .4byte gBattleAnimArgs
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 8076B38
- push {lr}
- ldr r3, _08076B70 @ =gUnknown_0202F7A4
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, _08076B74 @ =gUnknown_0202F7C4
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08076B52
- adds r0, r2, 0x5
- str r0, [r3]
-_08076B52:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08076B70: .4byte gUnknown_0202F7A4
-_08076B74: .4byte gUnknown_0202F7C4
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 8076B78
- push {r4,r5,lr}
- ldr r5, _08076BA8 @ =gUnknown_0202F7A4
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, _08076BAC @ =gUnknown_0202F7C4
- ldrb r0, [r0]
- cmp r1, r0
- bne _08076BB0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _08076BB4
- .align 2, 0
-_08076BA8: .4byte gUnknown_0202F7A4
-_08076BAC: .4byte gUnknown_0202F7C4
-_08076BB0:
- adds r0, r4, 0x6
- str r0, [r5]
-_08076BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start sub_8076BBC
-sub_8076BBC: @ 8076BBC
- ldr r3, _08076BDC @ =gUnknown_0202F7A4
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08076BDC: .4byte gUnknown_0202F7A4
- thumb_func_end sub_8076BBC
-
- thumb_func_start sub_8076BE0
-sub_8076BE0: @ 8076BE0
- push {lr}
- ldr r0, _08076BF8 @ =gMain
- ldr r1, _08076BFC @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08076C00
- movs r0, 0
- b _08076C02
- .align 2, 0
-_08076BF8: .4byte gMain
-_08076BFC: .4byte 0x0000043d
-_08076C00:
- movs r0, 0x1
-_08076C02:
- pop {r1}
- bx r1
- thumb_func_end sub_8076BE0
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 8076C08
- push {r4,lr}
- ldr r1, _08076C3C @ =gUnknown_0202F7A4
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076C40 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r1, _08076C48 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076C3C: .4byte gUnknown_0202F7A4
-_08076C40: .4byte task_p5_load_battle_screen_elements
-_08076C44: .4byte gTasks
-_08076C48: .4byte gUnknown_0202F7C5
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_8076C4C
-sub_8076C4C: @ 8076C4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08076C8C @ =gUnknown_0202F7A4
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, _08076C90 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076C98
- ldr r1, _08076C94 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076C8C: .4byte gUnknown_0202F7A4
-_08076C90: .4byte task_p5_load_battle_screen_elements
-_08076C94: .4byte gTasks
-_08076C98:
- ldr r0, _08076CB4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08076CBC
- ldr r1, _08076CB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _08076CCA
- .align 2, 0
-_08076CB4: .4byte gUnknown_0202F7C9
-_08076CB8: .4byte gTasks
-_08076CBC:
- ldr r1, _08076CDC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_08076CCA:
- ldr r1, _08076CE0 @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076CDC: .4byte gTasks
-_08076CE0: .4byte gUnknown_0202F7C5
- thumb_func_end sub_8076C4C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 8076CE4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08076D18 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _08076D1C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D18: .4byte gTasks
-_08076D1C:
- ldr r2, _08076D38 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08076DAC
- cmp r3, 0x1
- bne _08076D40
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, _08076D3C @ =gUnknown_0202F7C5
- movs r0, 0x2
- strb r0, [r1]
- b _08076D84
- .align 2, 0
-_08076D38: .4byte gPaletteFade
-_08076D3C: .4byte gUnknown_0202F7C5
-_08076D40:
- cmp r3, 0x2
- bne _08076D84
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08076D58
- bl dp01t_11_3_message_for_player_only
- b _08076D5E
-_08076D58:
- lsrs r0, r2, 16
- bl sub_8076DB8
-_08076D5E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, _08076D80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _08076DAC
- .align 2, 0
-_08076D80: .4byte gTasks
-_08076D84:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08076DAC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _08076DAC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _08076DB4 @ =gUnknown_0202F7C5
- strb r4, [r0]
-_08076DAC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076DB4: .4byte gUnknown_0202F7C5
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_8076DB8
-sub_8076DB8: @ 8076DB8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076E70
- ldr r7, _08076E54 @ =gBattleAnimBackgroundTable
- lsls r0, r6, 1
- adds r0, r6
- lsls r4, r0, 2
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r5, [r0]
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076DE8
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076DE8:
- adds r0, r5, 0
- bl sub_800D238
- bl sub_80789BC
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E06
- ldr r0, _08076E5C @ =0xffffc800
- adds r1, r0
-_08076E06:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- movs r3, 0
- bl sub_80763FC
- bl sub_8076BE0
- lsls r0, 24
- ldr r2, _08076E58 @ =0x02018000
- cmp r0, 0
- beq _08076E22
- ldr r0, _08076E5C @ =0xffffc800
- adds r2, r0
-_08076E22:
- ldr r1, _08076E60 @ =0x0600d000
- ldr r0, _08076E64 @ =0x040000d4
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _08076E68 @ =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r7
- ldr r0, [r0]
- ldr r1, _08076E6C @ =0x06002000
- bl LZDecompressVram
- adds r0, r7, 0x4
- adds r0, r4, r0
- ldr r4, [r0]
- bl sub_80789BC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08076E9E
- .align 2, 0
-_08076E54: .4byte gBattleAnimBackgroundTable
-_08076E58: .4byte 0x02018000
-_08076E5C: .4byte 0xffffc800
-_08076E60: .4byte 0x0600d000
-_08076E64: .4byte 0x040000d4
-_08076E68: .4byte 0x84000200
-_08076E6C: .4byte 0x06002000
-_08076E70:
- ldr r5, _08076EA4 @ =gBattleAnimBackgroundTable
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08076EA8 @ =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08076EAC @ =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_08076E9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08076EA4: .4byte gBattleAnimBackgroundTable
-_08076EA8: .4byte 0x0600d000
-_08076EAC: .4byte 0x06008000
- thumb_func_end sub_8076DB8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 8076EB0
- push {lr}
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08076EC2
- bl sub_80AB2AC
- b _08076EC6
-_08076EC2:
- bl sub_800D7B8
-_08076EC6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 8076ECC
- push {lr}
- ldr r1, _08076EFC @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _08076F00 @ =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08076F04 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08076F08 @ =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, _08076F0C @ =gUnknown_0202F7C5
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076EFC: .4byte gUnknown_0202F7A4
-_08076F00: .4byte task_p5_load_battle_screen_elements
-_08076F04: .4byte gTasks
-_08076F08: .4byte 0x0000ffff
-_08076F0C: .4byte gUnknown_0202F7C5
- thumb_func_end ma15_load_battle_screen_elements
-
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 8076F10
- push {lr}
- ldr r0, _08076F28 @ =gUnknown_0202F7C5
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08076F34
- ldr r1, _08076F2C @ =gUnknown_0202F7A4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, _08076F30 @ =gUnknown_0202F7B0
- movs r0, 0
- b _08076F38
- .align 2, 0
-_08076F28: .4byte gUnknown_0202F7C5
-_08076F2C: .4byte gUnknown_0202F7A4
-_08076F30: .4byte gUnknown_0202F7B0
-_08076F34:
- ldr r1, _08076F40 @ =gUnknown_0202F7B0
- movs r0, 0x1
-_08076F38:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08076F40: .4byte gUnknown_0202F7B0
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_8076F44
-sub_8076F44: @ 8076F44
- push {lr}
- ldr r0, _08076F5C @ =gUnknown_0202F7C5
- ldrb r2, [r0]
- cmp r2, 0
- bne _08076F68
- ldr r0, _08076F60 @ =gUnknown_0202F7A4
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _08076F64 @ =gUnknown_0202F7B0
- strb r2, [r0]
- b _08076F6E
- .align 2, 0
-_08076F5C: .4byte gUnknown_0202F7C5
-_08076F60: .4byte gUnknown_0202F7A4
-_08076F64: .4byte gUnknown_0202F7B0
-_08076F68:
- ldr r1, _08076F74 @ =gUnknown_0202F7B0
- movs r0, 0x1
- strb r0, [r1]
-_08076F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_08076F74: .4byte gUnknown_0202F7B0
- thumb_func_end sub_8076F44
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 8076F78
- push {r4,lr}
- ldr r4, _08076F94 @ =gUnknown_0202F7A4
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_8076DB8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08076F94: .4byte gUnknown_0202F7A4
- thumb_func_end ma18_load_background_probably
-
thumb_func_start sub_8076F98
sub_8076F98: @ 8076F98
push {r4,lr}
diff --git a/src/battle_anim.c b/src/battle_anim.c
index 914c94b6c..3fffe5dd6 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -12,11 +12,18 @@ struct UnknownStruct1
u8 unk0;
};
+struct UnknownStruct3
+{
+ u8 unk0;
+ u8 filler1[0xB];
+};
+
extern u16 gUnknown_02024A6A[4];
extern u8 gUnknown_02024BE0[];
extern u8 gUnknown_02024C07;
extern u8 gUnknown_02024C08;
extern const u8 *gUnknown_0202F7A4;
+extern const u8 *gUnknown_0202F7A8;
extern void (*gUnknown_0202F7AC)(void);
extern s8 gUnknown_0202F7B0;
extern u8 gUnknown_0202F7B1;
@@ -57,7 +64,10 @@ extern const struct SpritePalette gBattleAnimPaletteTable[];
extern u8 unk_2000000[];
+#define EWRAM_14800 ((u16 *)(unk_2000000 + 0x14800))
#define EWRAM_17800 ((struct UnknownStruct1 *)(unk_2000000 + 0x17800))
+#define EWRAM_17810 ((struct UnknownStruct3 *)(unk_2000000 + 0x17810))
+#define EWRAM_18000 ((u16 *)(unk_2000000 + 0x18000))
#define EWRAM_19348 (*(u16 *)(unk_2000000 + 0x19348))
void sub_8075624(void)
@@ -226,11 +236,11 @@ void sub_80759D0(void)
void ma00_load_graphics(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
u32 r4;
+ //TODO: Clean this up
gUnknown_0202F7A4++;
- r4 = ptr[1] | (gUnknown_0202F7A4[1] << 8);
+ r4 = gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8);
LoadCompressedObjectPic(&gBattleAnimPicTable[r4 - 10000]);
LoadCompressedObjectPalette(&gBattleAnimPaletteTable[r4 - 10000]);
gUnknown_0202F7A4 += 2;
@@ -241,11 +251,10 @@ void ma00_load_graphics(void)
void ma01_080728D0(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
u32 r4;
gUnknown_0202F7A4++;
- r4 = ptr[1] | (gUnknown_0202F7A4[1] << 8);
+ r4 = gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8);
FreeSpriteTilesByTag(gBattleAnimPicTable[r4 - 10000].tag);
FreeSpritePaletteByTag(gBattleAnimPicTable[r4 - 10000].tag);
gUnknown_0202F7A4 += 2;
@@ -260,32 +269,35 @@ void ma02_instanciate_template(void)
{
s32 i;
struct SpriteTemplate *r7;
- const u8 *ptr = gUnknown_0202F7A4;
- s8 r4;
+ u8 r4;
u8 r0;
- s8 _r0;
- s16 r6;
+ u8 _r0;
+ u16 r6;
u8 r2;
+ s8 r1;
gUnknown_0202F7A4++;
- r7 = (struct SpriteTemplate *)(*(ptr + 1) + (*(gUnknown_0202F7A4 + 1) << 8) + (*(gUnknown_0202F7A4 + 2) << 16) + (*(gUnknown_0202F7A4 + 3) << 24));
- gUnknown_0202F7A4 = ptr + 5;
- r4 = *(ptr + 5);
- gUnknown_0202F7A4 = ptr + 6;
- r0 = *(ptr + 6);
- gUnknown_0202F7A4 = ptr + 7;
+ r7 = (struct SpriteTemplate *)(gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24));
+ gUnknown_0202F7A4 += 4;
+ r4 = *gUnknown_0202F7A4;
+ gUnknown_0202F7A4++;
+ r0 = *gUnknown_0202F7A4;
+ gUnknown_0202F7A4++;
for (i = 0; i < r0; i++)
{
- gBattleAnimArgs[i] = *(gUnknown_0202F7A4) | (*(gUnknown_0202F7A4 + 1) << 8);
+ gBattleAnimArgs[i] = gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8);
gUnknown_0202F7A4 += 2;
}
if (r4 & 0x80)
{
- if ((r4 ^ 0x80) > 0x3F)
+ r4 ^= 0x80;
+ if (r4 > 0x3F)
r4 -= 0x40;
else
r4 = -r4;
_r0 = sub_8079E90(gUnknown_0202F7C9);
+ r1 = r4;
+
}
else
{
@@ -295,10 +307,12 @@ void ma02_instanciate_template(void)
else
r4 = -r4;
_r0 = sub_8079E90(gUnknown_0202F7C8);
+ r1 = r4;
}
- r6 = _r0 + r4;
- if (r6 < 3)
+ r6 = _r0 + r1;
+ if ((s16)r6 < 3)
r6 = 3;
+
r4 = sub_8077ABC(gUnknown_0202F7C9, 2);
r2 = sub_8077ABC(gUnknown_0202F7C9, 3);
CreateSpriteAndAnimate(r7, r4, r2, r6);
@@ -437,7 +451,6 @@ _08075BB4: .4byte gUnknown_0202F7B2\n\
void sub_8075BB8(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
TaskFunc taskFunc;
u8 taskPriority;
u8 taskId;
@@ -445,12 +458,12 @@ void sub_8075BB8(void)
s32 i;
gUnknown_0202F7A4++;
- taskFunc = (TaskFunc)(ptr[1] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24));
- gUnknown_0202F7A4 = ptr + 5;
- taskPriority = ptr[5];
- gUnknown_0202F7A4 = ptr + 6;
- r0 = ptr[6];
- gUnknown_0202F7A4 = ptr + 7;
+ taskFunc = (TaskFunc)(gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24));
+ gUnknown_0202F7A4 += 4;
+ taskPriority = *gUnknown_0202F7A4;
+ gUnknown_0202F7A4++;
+ r0 = *gUnknown_0202F7A4;
+ gUnknown_0202F7A4++;
for (i = 0; i < r0; i++)
{
gBattleAnimArgs[i] = gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8);
@@ -463,10 +476,8 @@ void sub_8075BB8(void)
void ma04_wait_countdown(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
-
gUnknown_0202F7A4++;
- gUnknown_0202F7B0 = ptr[1];
+ gUnknown_0202F7B0 = *gUnknown_0202F7A4;
if (gUnknown_0202F7B0 == 0)
gUnknown_0202F7B0 = -1;
gUnknown_0202F7A4++;
@@ -545,10 +556,8 @@ void sub_8075CB0(void)
void ma09_play_sound(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
-
gUnknown_0202F7A4++;
- PlaySE(ptr[1] | (gUnknown_0202F7A4[1] << 8));
+ PlaySE(gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8));
gUnknown_0202F7A4 += 2;
}
@@ -558,7 +567,6 @@ extern void sub_8076034(u8, u8);
void sub_8075DE0(void)
{
- const u8 *ptr = gUnknown_0202F7A4;
u8 r6;
u8 r5;
u8 r0;
@@ -567,7 +575,7 @@ void sub_8075DE0(void)
u8 taskId;
gUnknown_0202F7A4++;
- r6 = ptr[1];
+ r6 = *gUnknown_0202F7A4;
if (r6 == 0)
r6 = 2;
else if (r6 == 1)
@@ -729,9 +737,9 @@ _0807602E:\n\
struct UnknownStruct2
{
- void *unk10;
- void *unk14;
- u8 unk18;
+ void *unk0;
+ u16 *unk4;
+ u8 unk8;
};
struct BGCntrlBitfield
@@ -748,7 +756,7 @@ struct BGCntrlBitfield
extern void sub_8078914();
extern u8 sub_80AEB1C();
-extern void sub_8076380();
+extern void sub_8076380(void);
extern void sub_80E4EF8(int, int, int, int, u16, u8, int);
void sub_8076034(u8 a, u8 b)
@@ -766,7 +774,7 @@ void sub_8076034(u8 a, u8 b)
u16 *addr3;
sub_8078914(&s);
- addr = s.unk10;
+ addr = s.unk0;
size = 0x2000;
while (1)
{
@@ -781,7 +789,7 @@ void sub_8076034(u8 a, u8 b)
}
pointlessZero = 0;
pointlessZero = 0;
- addr2 = (void *)s.unk14;
+ addr2 = (void *)s.unk4;
DmaFill16(3, 0xFF, addr2, 0x1000);
REG_BGCNT_BITFIELD(1).priority = 2;
@@ -798,15 +806,15 @@ void sub_8076034(u8 a, u8 b)
REG_BG1HOFS = gUnknown_030042C0;
REG_BG1VOFS = gUnknown_030041B4;
- LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, s.unk18 * 16, 32);
- addr3 = (u16 *)PLTT + s.unk18 * 16;
+ LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, s.unk8 * 16, 32);
+ addr3 = (u16 *)PLTT + s.unk8 * 16;
DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
if (sub_8076BE0() != 0)
r2 = 0;
else
r2 = battle_get_per_side_status(a);
- sub_80E4EF8(0, 0, r2, s.unk18, (u32)s.unk10, (((s32)s.unk14 - VRAM) / 2048), REG_BGCNT_BITFIELD(1).charBaseBlock);
+ sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BGCNT_BITFIELD(1).charBaseBlock);
if (sub_8076BE0() != 0)
sub_8076380();
}
@@ -853,3 +861,591 @@ void sub_8076034(u8 a, u8 b)
sub_80E4EF8(0, 0, battle_get_per_side_status(a), 9, 0x6000, 0x1E, REG_BGCNT_BITFIELD(2).charBaseBlock);
}
}
+
+void sub_8076380(void)
+{
+ int i;
+ int j;
+ struct UnknownStruct2 s;
+ u16 *ptr;
+
+ if (sub_80AEB1C(EWRAM_19348) != 0)
+ {
+ sub_8078914(&s);
+ ptr = s.unk4;
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ u16 temp = ptr[j + i * 32];
+
+ ptr[j + i * 32] = ptr[7 - j + i * 32];
+ ptr[7 - j + i * 32] = temp;
+ }
+ }
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ ptr[j + i * 32] ^= 0x400;
+ }
+ }
+}
+
+void sub_80763FC(u16 a, u16 *b, u32 c, u8 d)
+{
+ u8 i;
+ u8 j;
+ u32 r9;
+
+ if (d == 0)
+ r9 = 32;
+ else
+ r9 = 64;
+ a <<= 12;
+ for (i = 0; i < r9; i++)
+ {
+ for (j = 0; j < 32; j++)
+ b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c;
+ }
+}
+
+void sub_8076464(u8 a)
+{
+ u8 *addr;
+ u32 size;
+ volatile u8 pointlessZero;
+ struct UnknownStruct2 s;
+
+ sub_8078914(&s);
+ if (a == 0 || sub_8076BE0() != 0)
+ {
+ u16 *addr2;
+
+ addr = s.unk0;
+ size = 0x2000;
+ while (1)
+ {
+ DmaFill32(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaFill32(3, 0, addr, size);
+ break;
+ }
+ }
+ pointlessZero = 0;
+ pointlessZero = 0;
+ addr2 = s.unk4;
+ DmaFill32(3, 0, addr2, 0x800);
+ gUnknown_030042C0 = 0;
+ gUnknown_030041B4 = 0;
+ }
+ else
+ {
+ u16 *addr2;
+
+ addr = (void *)(VRAM + 0x6000);
+ size = 0x2000;
+ while (1)
+ {
+ DmaFill32(3, 0, addr, 0x1000);
+ addr += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaFill32(3, 0, addr, size);
+ break;
+ }
+ }
+ pointlessZero = 0;
+ pointlessZero = 0;
+ addr2 = (void *)(VRAM + 0xF000);
+ DmaFill32(3, 0, addr2, 0x800);
+ gUnknown_03004288 = 0;
+ gUnknown_03004280 = 0;
+ }
+}
+
+void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
+{
+ u8 r4;
+ u8 r6;
+ s16 r3;
+ s16 r2;
+ struct UnknownStruct2 s;
+
+ r4 = gTasks[taskId].data[0];
+ r6 = gTasks[taskId].data[6];
+ sub_8078914(&s);
+ r3 = gTasks[taskId].data[1] - (gSprites[r4].pos1.x + gSprites[r4].pos2.x);
+ r2 = gTasks[taskId].data[2] - (gSprites[r4].pos1.y + gSprites[r4].pos2.y);
+ if (gTasks[taskId].data[5] == 0)
+ {
+ u16 *src;
+ u16 *dst;
+
+ gUnknown_030042C0 = r3 + gTasks[taskId].data[3];
+ gUnknown_030041B4 = r2 + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + r6 * 16;
+ dst = gPlttBufferFaded + 0x100 + s.unk8 * 16 - 256;
+ DmaCopy32(3, src, dst, 32);
+ }
+ else
+ {
+ u16 *src;
+ u16 *dst;
+
+ gUnknown_03004288 = r3 + gTasks[taskId].data[3];
+ gUnknown_03004280 = r2 + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + r6 * 16;
+ dst = gPlttBufferFaded + 0x100 - 112;
+ DmaCopy32(3, src, dst, 32);
+ }
+}
+
+extern void sub_807672C(u8);
+
+void ma0B_0807324C(void)
+{
+ u8 r4;
+ u8 r5;
+ u8 taskId;
+
+ gUnknown_0202F7A4++;
+ r4 = *gUnknown_0202F7A4;
+ if (r4 == 0)
+ r4 = 2;
+ else if (r4 == 1)
+ r4 = 3;
+ if (r4 == 0 || r4 == 2)
+ r5 = gUnknown_0202F7C8;
+ else
+ r5 = gUnknown_0202F7C9;
+ if (gUnknown_0202F7C2[0] != 0xFF)
+ gSprites[gUnknown_02024BE0[r5]].invisible = FALSE;
+ if (r4 > 1 && gUnknown_0202F7C2[1] != 0xFF)
+ gSprites[gUnknown_02024BE0[r5 ^ 2]].invisible = FALSE;
+ else
+ r4 = 0;
+ taskId = CreateTask(sub_807672C, 5);
+ gTasks[taskId].data[0] = r4;
+ gTasks[taskId].data[2] = r5;
+ gUnknown_0202F7A4++;
+}
+
+void sub_807672C(u8 taskId)
+{
+ u8 var;
+ u8 r4;
+
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ var = battle_get_per_side_status(gTasks[taskId].data[2]);
+ var += 0xFF;
+ if (var <= 1 || sub_8076BE0() != 0)
+ r4 = 0;
+ else
+ r4 = 1;
+ if (gUnknown_0202F7C2[0] != 0xFF)
+ {
+ sub_8076464(r4);
+ DestroyTask(gUnknown_0202F7C2[0]);
+ gUnknown_0202F7C2[0] = 0xFF;
+ }
+ if (gTasks[taskId].data[0] > 1)
+ {
+ sub_8076464(r4 ^ 1);
+ DestroyTask(gUnknown_0202F7C2[1]);
+ gUnknown_0202F7C2[1] = 0xFF;
+ }
+ DestroyTask(taskId);
+ }
+}
+
+void sub_80767C4(void)
+{
+ u8 r5;
+ u8 r4;
+ u8 r0;
+ u8 r1;
+
+ gUnknown_0202F7A4++;
+ r5 = *gUnknown_0202F7A4;
+ if (r5 == 0)
+ r5 = 2;
+ else if (r5 == 1)
+ r5 = 3;
+ if (r5 == 0 || r5 == 2)
+ r4 = gUnknown_0202F7C8;
+ else
+ r4 = gUnknown_0202F7C9;
+ if (b_side_obj__get_some_boolean(r4))
+ {
+ r0 = battle_get_per_side_status(r4);
+ r0 += 0xFF;
+ if (r0 <= 1 || sub_8076BE0() != 0)
+ r1 = 0;
+ else
+ r1 = 1;
+ sub_8076034(r4, r1);
+ gSprites[gUnknown_02024BE0[r4]].invisible = FALSE;
+ }
+ r4 ^= 2;
+ if (r5 > 1 && b_side_obj__get_some_boolean(r4))
+ {
+ r0 = battle_get_per_side_status(r4);
+ r0 += 0xFF;
+ if (r0 <= 1 || sub_8076BE0() != 0)
+ r1 = 0;
+ else
+ r1 = 1;
+ sub_8076034(r4, r1);
+ gSprites[gUnknown_02024BE0[r4]].invisible = FALSE;
+ }
+ gUnknown_0202F7A4++;
+}
+
+extern void sub_80769A4(u8);
+
+void ma23_8073484(void)
+{
+ u8 r5;
+ u8 r6;
+ u8 taskId;
+
+ gUnknown_0202F7A4++;
+ r5 = *gUnknown_0202F7A4;
+ if (r5 == 0)
+ r5 = 2;
+ else if (r5 == 1)
+ r5 = 3;
+ if (r5 == 0 || r5 == 2)
+ r6 = gUnknown_0202F7C8;
+ else
+ r6 = gUnknown_0202F7C9;
+ if (b_side_obj__get_some_boolean(r6))
+ gSprites[gUnknown_02024BE0[r6]].invisible = FALSE;
+ if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2))
+ gSprites[gUnknown_02024BE0[r6 ^ 2]].invisible = FALSE;
+ else
+ r5 = 0;
+ taskId = CreateTask(sub_80769A4, 5);
+ gTasks[taskId].data[0] = r5;
+ gTasks[taskId].data[2] = r6;
+ gUnknown_0202F7A4++;
+}
+
+void sub_80769A4(u8 taskId)
+{
+ u8 r0;
+ u8 r4;
+ u8 r5;
+
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ r4 = gTasks[taskId].data[2];
+ r0 = battle_get_per_side_status(r4);
+ r0 += 0xFF;
+ if (r0 <= 1 || sub_8076BE0() != 0)
+ r5 = 0;
+ else
+ r5 = 1;
+ if (b_side_obj__get_some_boolean(r4))
+ sub_8076464(r5);
+ if (gTasks[taskId].data[0] > 1 && b_side_obj__get_some_boolean(r4 ^ 2))
+ sub_8076464(r5 ^ 1);
+ DestroyTask(taskId);
+ }
+}
+
+void sub_8076A3C(void)
+{
+ u16 r3;
+ u16 r1;
+
+ gUnknown_0202F7A4++;
+ r3 = *(gUnknown_0202F7A4++);
+ r1 = *(gUnknown_0202F7A4++) << 8;
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = r3 | r1;
+}
+
+void sub_8076A78(void)
+{
+ u16 r3;
+ u16 r1;
+
+ gUnknown_0202F7A4++;
+ r3 = *(gUnknown_0202F7A4++);
+ r1 = *(gUnknown_0202F7A4++) << 8;
+ REG_BLDCNT = r3 | r1;
+}
+
+void sub_8076AA0(void)
+{
+ gUnknown_0202F7A4++;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+}
+
+void ma0E_call(void)
+{
+ u32 addr;
+
+ gUnknown_0202F7A4++;
+ gUnknown_0202F7A8 = gUnknown_0202F7A4 + 4; //store return address
+ addr = gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24);
+ gUnknown_0202F7A4 = (u8 *)addr;
+}
+
+//script return
+void sub_8076AF0(void)
+{
+ gUnknown_0202F7A4 = gUnknown_0202F7A8;
+}
+
+void ma10_080736AC(void)
+{
+ const u8 *addr = gUnknown_0202F7A4;
+ u16 r4;
+ u8 r2;
+
+ gUnknown_0202F7A4++;
+ r2 = *(gUnknown_0202F7A4++);
+ r4 = gUnknown_0202F7A4[0] | (gUnknown_0202F7A4[1] << 8);
+ gUnknown_0202F7A4 = addr + 4;
+ gBattleAnimArgs[r2] = r4;
+}
+
+void ma11_if_else(void)
+{
+ u32 addr;
+
+ gUnknown_0202F7A4++;
+ if (gUnknown_0202F7C4 & 1)
+ gUnknown_0202F7A4 += 4;
+ addr = gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24);
+ gUnknown_0202F7A4 = (u8 *)addr;
+}
+
+void ma12_cond_if(void)
+{
+ const u8 *r4 = gUnknown_0202F7A4;
+ u8 r1;
+ u32 addr;
+
+ gUnknown_0202F7A4++;
+ r1 = *gUnknown_0202F7A4;
+ gUnknown_0202F7A4++;
+ if (r1 == gUnknown_0202F7C4)
+ {
+ addr = gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24);
+ gUnknown_0202F7A4 = (u8 *)addr;
+ }
+ else
+ {
+ gUnknown_0202F7A4 = r4 + 6;
+ }
+}
+
+//script goto
+void sub_8076BBC(void)
+{
+ u32 addr;
+
+ gUnknown_0202F7A4++;
+ addr = gUnknown_0202F7A4[0] + (gUnknown_0202F7A4[1] << 8) + (gUnknown_0202F7A4[2] << 16) + (gUnknown_0202F7A4[3] << 24);
+ gUnknown_0202F7A4 = (u8 *)addr;
+}
+
+u8 sub_8076BE0(void)
+{
+ if (!gMain.inBattle)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+extern void task_p5_load_battle_screen_elements(u8);
+
+void ma14_load_background(void)
+{
+ u8 r4;
+ u8 taskId;
+
+ gUnknown_0202F7A4++;
+ r4 = *(gUnknown_0202F7A4++);
+ taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
+ gTasks[taskId].data[0] = r4;
+ gUnknown_0202F7C5 = 1;
+}
+
+void sub_8076C4C(void)
+{
+ u8 r8;
+ u8 r7;
+ u8 r6;
+ u8 taskId;
+
+ gUnknown_0202F7A4++;
+ r8 = gUnknown_0202F7A4[0];
+ r7 = gUnknown_0202F7A4[1];
+ r6 = gUnknown_0202F7A4[2];
+ gUnknown_0202F7A4 += 3;
+ taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
+ if (sub_8076BE0() != 0)
+ gTasks[taskId].data[0] = r6;
+ else if (battle_side_get_owner(gUnknown_0202F7C9) == 0)
+ gTasks[taskId].data[0] = r7;
+ else
+ gTasks[taskId].data[0] = r8;
+ gUnknown_0202F7C5 = 1;
+}
+
+extern void sub_8076DB8(u16);
+extern void dp01t_11_3_message_for_player_only(void);
+
+void task_p5_load_battle_screen_elements(u8 taskId)
+{
+ if (gTasks[taskId].data[10] == 0)
+ {
+ BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0);
+ gTasks[taskId].data[10]++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].data[10] == 1)
+ {
+ gTasks[taskId].data[10]++;
+ gUnknown_0202F7C5 = 2;
+ }
+ else if (gTasks[taskId].data[10] == 2)
+ {
+ s16 data0 = (u16)gTasks[taskId].data[0];
+
+ if (data0 == -1)
+ dp01t_11_3_message_for_player_only();
+ else
+ sub_8076DB8(data0);
+ BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1);
+ gTasks[taskId].data[10]++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].data[10] == 3)
+ {
+ DestroyTask(taskId);
+ gUnknown_0202F7C5 = 0;
+ }
+}
+
+struct BattleAnimBackground
+{
+ void *image;
+ void *palette;
+ void *tilemap;
+};
+
+extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
+
+extern void sub_800D238();
+extern u8 sub_80789BC();
+
+void sub_8076DB8(u16 a)
+{
+ if (sub_8076BE0())
+ {
+ void *tilemap = gBattleAnimBackgroundTable[a].tilemap;
+ void *dmaSrc;
+ void *dmaDest;
+
+ sub_800D238(tilemap, sub_8076BE0() ? EWRAM_14800 : EWRAM_18000);
+ sub_80763FC(sub_80789BC(), sub_8076BE0() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
+ dmaSrc = sub_8076BE0() ? EWRAM_14800 : EWRAM_18000;
+ dmaDest = (void *)(VRAM + 0xD000);
+ DmaCopy32(3, dmaSrc, dmaDest, 0x800);
+ LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x2000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[a].palette, sub_80789BC() * 16, 32);
+ }
+ else
+ {
+ LZDecompressVram(gBattleAnimBackgroundTable[a].tilemap, (void *)(VRAM + 0xD000));
+ LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x8000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[a].palette, 32, 32);
+ }
+}
+
+extern void sub_80AB2AC(void);
+extern void sub_800D7B8(void);
+
+void dp01t_11_3_message_for_player_only(void)
+{
+ if (sub_8076BE0())
+ sub_80AB2AC();
+ else
+ sub_800D7B8();
+}
+
+void ma15_load_battle_screen_elements(void)
+{
+ u8 taskId;
+
+ gUnknown_0202F7A4++;
+ taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
+ gTasks[taskId].data[0] = 0xFFFF;
+ gUnknown_0202F7C5 = 1;
+}
+
+void ma16_wait_for_battle_screen_elements_s2(void)
+{
+ if (gUnknown_0202F7C5 == 2)
+ {
+ gUnknown_0202F7A4++;
+ gUnknown_0202F7B0 = 0;
+ }
+ else
+ {
+ gUnknown_0202F7B0 = 1;
+ }
+}
+
+void sub_8076F44(void)
+{
+ if (gUnknown_0202F7C5 == 0)
+ {
+ gUnknown_0202F7A4++;
+ gUnknown_0202F7B0 = 0;
+ }
+ else
+ {
+ gUnknown_0202F7B0 = 1;
+ }
+}
+
+void ma18_load_background_probably(void)
+{
+ gUnknown_0202F7A4++;
+ sub_8076DB8(*gUnknown_0202F7A4);
+ gUnknown_0202F7A4++;
+}
+
+/*
+void sub_8076F98(u8 a)
+{
+ if (!sub_8076BE0() && (EWRAM_17810[gUnknown_0202F7C8].unk0 & 0x10))
+ {
+ battle_side_get_owner(gUnknown_0202F7C8);
+ }
+ //_08076FDC
+ else
+ {
+
+ }
+ //_0807706E
+}
+*/