summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_10.s4675
-rw-r--r--asm/battle_2.s2
-rw-r--r--asm/battle_3.s6
-rw-r--r--asm/battle_4.s74
-rw-r--r--asm/battle_9.s6
-rw-r--r--asm/field_tasks.s1972
-rw-r--r--asm/sound_check_menu.s2444
7 files changed, 44 insertions, 9135 deletions
diff --git a/asm/battle_10.s b/asm/battle_10.s
deleted file mode 100644
index 548c77bce..000000000
--- a/asm/battle_10.s
+++ /dev/null
@@ -1,4675 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start LinkOpponentHandleGetAttributes
-LinkOpponentHandleGetAttributes: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gBattleBufferA
- ldr r0, _080380AC @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gBattleBufferA
-_080380AC: .4byte gActiveBank
-_080380B0: .4byte gBattlePartyID
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end LinkOpponentHandleGetAttributes
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08038124 @ =gBattleBufferA
- ldr r3, _08038128 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gBattleBufferA
-_08038128: .4byte gActiveBank
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0803826C:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08038438 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0803843C @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08038440 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gBattleBufferA
- ldr r0, _080388D0 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gBattlePartyID
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gBattleBufferA
-_080388D0: .4byte gActiveBank
-_080388D4: .4byte gBattlePartyID
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gActiveBank
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gActiveBank
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r7, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gBattleBufferA
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gBattleBufferA
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gBattlePartyID
- ldr r7, _08039288 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gBattleBufferA
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gBattlePartyID
-_08039288: .4byte gActiveBank
-_0803928C: .4byte gBattleBufferA
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gBattlePartyID
- ldr r6, _080393C0 @ =gActiveBank
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gObjectBankIDs
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gBattleMonForms
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gBattlePartyID
-_080393C0: .4byte gActiveBank
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gObjectBankIDs
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gBattleMonForms
-_080393DC: .4byte gBattleBankFunc
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gBattlePartyID
- ldr r4, _08039420 @ =gActiveBank
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gBattleBufferA
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gBattlePartyID
-_08039420: .4byte gActiveBank
-_08039424: .4byte gBattleBufferA
-_08039428: .4byte gBattleBankFunc
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gBattlePartyID
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gBattleBufferA
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080395A0 @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gObjectBankIDs
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080395AC @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803958C: .4byte gBattlePartyID
-_08039590: .4byte gBattleBufferA
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gObjectBankIDs
-_080395A8: .4byte gSprites
-_080395AC: .4byte gBattleMonForms
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gBattleBufferA
- ldr r6, _080395E8 @ =gActiveBank
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gBattleBufferA
-_080395E8: .4byte gActiveBank
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gBattleBankFunc
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gObjectBankIDs
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gHealthboxIDs
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gObjectBankIDs
-_08039640: .4byte gSprites
-_08039644: .4byte gHealthboxIDs
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gActiveBank
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gBattleBankFunc
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gActiveBank
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gBattleTypeFlags
-_08039708: .4byte gActiveBank
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gActiveBank
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gObjectBankIDs
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gBattleBankFunc
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gActiveBank
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gObjectBankIDs
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gBattleBankFunc
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gObjectBankIDs
- ldr r4, _08039944 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gObjectBankIDs
-_08039944: .4byte gActiveBank
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gBattleBankFunc
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gActiveBank
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gActiveBank
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gObjectBankIDs
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gObjectBankIDs
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gBattleBankFunc
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gBattleBufferA
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gMovePowerMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08039B24 @ =gMoveDmgMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08039B28 @ =gHappinessMoveAnim
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gWeatherMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08039B30 @ =gDisableStructMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gPID_perBank
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gActiveBank
-_08039B18: .4byte gBattleBufferA
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gMovePowerMoveAnim
-_08039B24: .4byte gMoveDmgMoveAnim
-_08039B28: .4byte gHappinessMoveAnim
-_08039B2C: .4byte gWeatherMoveAnim
-_08039B30: .4byte gDisableStructMoveAnim
-_08039B34: .4byte gPID_perBank
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gBattleBankFunc
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gBattleBufferA
- ldr r5, _08039BAC @ =gActiveBank
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gBattleBufferA
-_08039BAC: .4byte gActiveBank
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl ExecuteMoveAnim
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gAnimScriptCallback
-_08039C78: .4byte gAnimScriptActive
-_08039C7C: .4byte gActiveBank
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gActiveBank
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl BufferStringBattle
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gDisplayedStringBattle
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gActiveBank
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gDisplayedStringBattle
-_08039D24: .4byte gBattleBankFunc
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08039DF8 @ =gBattleBufferA
- ldr r0, _08039DFC @ =gActiveBank
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E0C @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gBattleBufferA
-_08039DFC: .4byte gActiveBank
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gBattlePartyID
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gHealthboxIDs
-_08039E10:
- ldr r1, _08039E58 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gHealthboxIDs
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gBattleBankFunc
- ldr r0, _08039E68 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039E58: .4byte gBattlePartyID
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gHealthboxIDs
-_08039E64: .4byte gBattleBankFunc
-_08039E68: .4byte gActiveBank
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gActiveBank
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gHealthboxIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gBattlePartyID
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gActiveBank
-_08039ED8: .4byte gHealthboxIDs
-_08039EDC: .4byte gBattlePartyID
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gBattleBankFunc
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gActiveBank
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gBattleBufferA
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gBattleBankFunc
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gActiveBank
-_08039F4C: .4byte gBattleBufferA
-_08039F50: .4byte gBattleBankFunc
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gBattleBufferA
- ldr r0, _0803A014 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gBattleBufferA
-_0803A014: .4byte gActiveBank
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gObjectBankIDs
- ldr r4, _0803A088 @ =gActiveBank
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gObjectBankIDs
-_0803A088: .4byte gActiveBank
-_0803A08C:
- ldr r1, _0803A0BC @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0803A0C0 @ =gBattleBankFunc
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gDoingBattleAnim
-_0803A0C0: .4byte gBattleBankFunc
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gActiveBank
-_0803A114: .4byte gBattleBufferA
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gBattleBufferA
- ldr r0, _0803A144 @ =gActiveBank
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gBattleBufferA
-_0803A144: .4byte gActiveBank
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gBattlePartyID
- ldr r0, _0803A17C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gBattlePartyID
-_0803A17C: .4byte gActiveBank
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gBattleBufferA
- ldr r0, _0803A1B0 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gBattleBufferA
-_0803A1B0: .4byte gActiveBank
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gObjectBankIDs
- ldr r6, _0803A298 @ =gActiveBank
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gBattleBankFunc
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gObjectBankIDs
-_0803A298: .4byte gActiveBank
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gBattleBankFunc
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gActiveBank
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gBattleBufferA
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gBattlePartyID
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gActiveBank
-_0803A320: .4byte gTasks
-_0803A324: .4byte gBattleTypeFlags
-_0803A328: .4byte gBattleBufferA
-_0803A32C: .4byte gBattlePartyID
-_0803A330:
- ldr r4, _0803A394 @ =gBattleBufferA
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gBattleBankFunc
- ldr r2, _0803A3A0 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gBattleBufferA
-_0803A398: .4byte gBattlePartyID
-_0803A39C: .4byte gBattleBankFunc
-_0803A3A0: .4byte gActiveBank
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gBattleBufferA
- ldr r0, _0803A408 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gBattleBufferA
-_0803A408: .4byte gActiveBank
-_0803A40C:
- ldr r3, _0803A45C @ =gActiveBank
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gBattleBufferA
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gActiveBank
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gBattleBufferA
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gBattleBankFunc
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gActiveBank
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gActiveBank
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gActiveBank
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gActiveBank
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gObjectBankIDs
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gBattleBufferA
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gActiveBank
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gObjectBankIDs
-_0803A5D4: .4byte gBattleBufferA
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gActiveBank
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gBattleBufferA
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gActiveBank
-_0803A620: .4byte gBattleBufferA
-_0803A624:
- ldr r0, _0803A638 @ =gBattleBankFunc
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gBattleBankFunc
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gBattleBufferA
- ldr r0, _0803A678 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gBattleOutcome
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gBattleBufferA
-_0803A678: .4byte gActiveBank
-_0803A67C: .4byte gBattleOutcome
-_0803A680:
- ldr r0, _0803A6AC @ =gBattleOutcome
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gBattleBankFunc
- ldr r0, _0803A6B4 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gBattleOutcome
-_0803A6B0: .4byte gBattleBankFunc
-_0803A6B4: .4byte gActiveBank
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_2.s b/asm/battle_2.s
index c1f75dad5..ed4140583 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -4092,7 +4092,7 @@ _08014522:
adds r1, r2
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r2, _08014568 @ =gSpecialStatuses
ldrb r1, [r4]
lsls r0, r1, 2
diff --git a/asm/battle_3.s b/asm/battle_3.s
index ffe32f27b..8f3097c3d 100644
--- a/asm/battle_3.s
+++ b/asm/battle_3.s
@@ -8590,7 +8590,7 @@ _08019F7C:
beq _08019F92
adds r1, r0, 0
mov r0, r10
- bl sub_81074C4
+ bl RecordAbilityBattle
_08019F92:
mov r0, r9
add sp, 0x28
@@ -9185,7 +9185,7 @@ _0801A4A8:
str r3, [sp, 0xC]
adds r0, r7, 0
adds r1, r5, 0
- bl sub_81074F8
+ bl RecordItemBattle
bl _0801AD5A
.align 2, 0
_0801A4C4: .4byte gBattleMoveDamage
@@ -11475,7 +11475,7 @@ _0801B7C2:
adds r0, 0x20
ldrb r1, [r0]
adds r0, r5, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801B804 @ =gSpecialStatuses
lsls r0, r5, 2
adds r0, r5
diff --git a/asm/battle_4.s b/asm/battle_4.s
index 5436d3e55..6747abc6c 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -291,7 +291,7 @@ _0801BE7E:
mov r2, r8
ldrb r0, [r2]
ldrb r1, [r4]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801BFF4
.align 2, 0
_0801BEB8: .4byte gNoOfAllBanks
@@ -1812,8 +1812,8 @@ _0801CAF0: .4byte gProtectStructs
_0801CAF4: .4byte gBattlescriptCurrInstr
thumb_func_end atk05_damagecalc1
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
+ thumb_func_start AI_CalcDmg
+AI_CalcDmg: @ 801CAF8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -1923,7 +1923,7 @@ _0801CBDC: .4byte 0x0001601f
_0801CBE0: .4byte gStatuses3
_0801CBE4: .4byte gBattleMoves
_0801CBE8: .4byte gProtectStructs
- thumb_func_end sub_801CAF8
+ thumb_func_end AI_CalcDmg
thumb_func_start battle_attack_damage_modulate_by_effectivity
battle_attack_damage_modulate_by_effectivity: @ 801CBEC
@@ -2143,7 +2143,7 @@ _0801CD44:
strb r2, [r0, 0x6]
ldrb r0, [r4]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801CE58
.align 2, 0
_0801CD94: .4byte gBattleMoves
@@ -2300,7 +2300,7 @@ _0801CE94:
strb r0, [r1, 0x6]
ldrb r0, [r5]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801CED6:
ldr r0, _0801CF1C @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -2412,7 +2412,7 @@ _0801CF94:
strb r1, [r0, 0x6]
ldrb r0, [r3]
movs r1, 0x1A
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801D1A4
.align 2, 0
_0801CFC8: .4byte gBattleMons
@@ -2657,7 +2657,7 @@ _0801D14E:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x19
- bl sub_81074C4
+ bl RecordAbilityBattle
_0801D1A4:
pop {r3,r4}
mov r8, r3
@@ -2778,8 +2778,8 @@ _0801D27A:
bx r0
thumb_func_end b_attack_effectivity_adapt
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
+ thumb_func_start TypeCalc
+TypeCalc: @ 801D280
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -3020,7 +3020,7 @@ _0801D44C: .4byte gTypeEffectiveness
_0801D450: .4byte gBattleMons
_0801D454: .4byte gBankTarget
_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
+ thumb_func_end TypeCalc
thumb_func_start ai_rate_move
ai_rate_move: @ 801D45C
@@ -3280,7 +3280,7 @@ _0801D632:
bcs _0801D670
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D6FC @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -3484,7 +3484,7 @@ _0801D7E2:
bcs _0801D820
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _0801D890 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -5294,7 +5294,7 @@ _0801E64A:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E67C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5417,7 +5417,7 @@ _0801E72E:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x29
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E750 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5608,7 +5608,7 @@ _0801E8A6:
mov r3, r8
ldrb r0, [r3]
movs r1, 0x7
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -5651,7 +5651,7 @@ _0801E8FE:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x11
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r4, _0801E93C @ =gBattlescriptCurrInstr
ldr r0, [r4]
adds r0, 0x1
@@ -6081,7 +6081,7 @@ _0801ECF4:
mov r1, r8
ldrb r0, [r1]
movs r1, 0x27
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
str r0, [r1]
@@ -6712,7 +6712,7 @@ _0801F214:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F254: .4byte gBankAttacker
@@ -7044,7 +7044,7 @@ _0801F500:
str r0, [r1]
ldrb r0, [r5]
movs r1, 0x3C
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0801F5FA
.align 2, 0
_0801F534: .4byte gLastUsedAbility
@@ -8058,7 +8058,7 @@ _0801FD5C:
ldrb r1, [r0]
adds r0, r4, 0
_0801FD80:
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0801FD98 @ =0x02000000
ldr r1, _0801FD9C @ =0x000160f8
adds r0, r1
@@ -12829,7 +12829,7 @@ atk4A_damageflags: @ 80222DC
strb r2, [r0, 0x6]
ldrb r0, [r7]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08022452
.align 2, 0
_08022340: .4byte gBattleMoves
@@ -13030,7 +13030,7 @@ _08022494:
strb r0, [r1, 0x6]
ldrb r0, [r2]
ldrb r1, [r3]
- bl sub_81074C4
+ bl RecordAbilityBattle
_080224CE:
ldr r0, _08022518 @ =gBattleMoveFlags
ldrb r1, [r0]
@@ -13310,7 +13310,7 @@ _080226EA:
ldr r1, [sp, 0x50]
str r1, [r0]
_08022710:
- bl sub_8010B88
+ bl SwitchInClearStructs
ldr r0, _08022778 @ =0x02000000
ldr r3, _08022754 @ =gActiveBank
ldrb r2, [r3]
@@ -17237,7 +17237,7 @@ _08024726:
bcs _08024764
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _080247F0 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -17919,7 +17919,7 @@ atk70_record_ability_usage_of_side: @ 8024CB8
ldrb r0, [r1]
ldr r1, _08024CE8 @ =gLastUsedAbility
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
@@ -18739,7 +18739,7 @@ _08025354:
adds r1, r6
adds r1, 0x20
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _08025380 @ =gBattlescriptCurrInstr
ldr r0, _08025384 @ =gUnknown_081D9834
str r0, [r1]
@@ -19746,7 +19746,7 @@ _08025B2C:
str r4, [r5]
ldrb r1, [r2]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025B56
.align 2, 0
_08025B44: .4byte gBattleMons
@@ -20345,7 +20345,7 @@ _08025FE0:
strb r0, [r1]
ldrb r0, [r2]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r0, _0802602C @ =gActiveBank
ldrb r1, [r0]
lsls r0, r1, 2
@@ -20401,7 +20401,7 @@ _08026040:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_08026090: .4byte gActiveBank
@@ -20449,7 +20449,7 @@ _080260CA:
strb r0, [r1]
ldrb r0, [r3]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08025F74
.align 2, 0
_080260FC: .4byte gActiveBank
@@ -21840,7 +21840,7 @@ _08026BCE:
bcs _08026C0C
ldrb r0, [r5]
movs r1, 0x27
- bl sub_81074F8
+ bl RecordItemBattle
ldr r2, _08026C54 @ =gSpecialStatuses
ldrb r1, [r5]
lsls r0, r1, 2
@@ -21880,7 +21880,7 @@ _08026C0C:
ldr r1, _08026C50 @ =gBankTarget
ldrb r0, [r1]
movs r1, 0x5
- bl sub_81074C4
+ bl RecordAbilityBattle
b _08026E40
.align 2, 0
_08026C4C: .4byte gStringBank
@@ -22497,7 +22497,7 @@ _080270F0:
strb r2, [r0]
ldrb r0, [r5]
movs r1, 0xC
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802721C
.align 2, 0
_0802714C: .4byte gBattlePartyID
@@ -25469,7 +25469,7 @@ _080288C0: .4byte gBattleMons
_080288C4:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldrb r0, [r5, 0x5]
movs r1, 0x1
orrs r0, r1
@@ -25532,7 +25532,7 @@ _08028950: .4byte gBattleMons
_08028954:
ldrb r1, [r1]
adds r0, r3, 0
- bl sub_81074C4
+ bl RecordAbilityBattle
ldr r1, _080289AC @ =gBattleCommunication
ldrb r0, [r1, 0x5]
orrs r0, r6
@@ -28815,7 +28815,7 @@ _0802A334:
strb r0, [r1]
ldrb r0, [r7]
ldrb r1, [r1]
- bl sub_81074C4
+ bl RecordAbilityBattle
b _0802A49A
.align 2, 0
_0802A360: .4byte gBattlescriptCurrInstr
diff --git a/asm/battle_9.s b/asm/battle_9.s
index 887fbd702..fffb56dc9 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -1847,7 +1847,7 @@ _08036EA4:
ldrb r1, [r0]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
movs r1, 0x2
ands r1, r0
cmp r1, 0
@@ -1976,11 +1976,11 @@ _08036F90:
beq _08036FCC
ldrb r0, [r6]
mov r1, r10
- bl sub_801CAF8
+ bl AI_CalcDmg
ldrb r1, [r6]
adds r0, r4, 0
mov r2, r10
- bl move_effectiveness_something
+ bl TypeCalc
_08036FCC:
mov r2, r8
ldr r0, [r2]
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 5f3e3a03f..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Task_RunPerStepCallback
-Task_RunPerStepCallback: @ 806943C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08069460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, _08069464 @ =gUnknown_08376364
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08069460: .4byte gTasks
-_08069464: .4byte gUnknown_08376364
- thumb_func_end Task_RunPerStepCallback
-
- thumb_func_start RunTimeBasedEvents
-RunTimeBasedEvents: @ 8069468
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806947A
- cmp r0, 0x1
- beq _08069498
- b _080694AC
-_0806947A:
- ldr r0, _08069494 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _080694AC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _080694AA
- .align 2, 0
-_08069494: .4byte gMain
-_08069498:
- ldr r0, _080694B4 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _080694AC
- ldrh r0, [r4]
- subs r0, 0x1
-_080694AA:
- strh r0, [r4]
-_080694AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694B4: .4byte gMain
- thumb_func_end RunTimeBasedEvents
-
- thumb_func_start Task_RunTimeBasedEvents
-Task_RunTimeBasedEvents: @ 80694B8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080694E8 @ =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _080694E0
- adds r0, r4, 0
- bl RunTimeBasedEvents
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl sub_80540D0
-_080694E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694E8: .4byte gTasks + 0x8
- thumb_func_end Task_RunTimeBasedEvents
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 80694EC
- push {r4,r5,lr}
- ldr r5, _08069548 @ =Task_RunPerStepCallback
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08069516
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806954C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08069516:
- ldr r4, _08069550 @ =Task_MuddySlope
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806952C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0806952C:
- ldr r4, _08069554 @ =Task_RunTimeBasedEvents
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069542
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08069542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069548: .4byte Task_RunPerStepCallback
-_0806954C: .4byte gTasks
-_08069550: .4byte Task_MuddySlope
-_08069554: .4byte Task_RunTimeBasedEvents
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 8069558
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08069590 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0806959A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08069594 @ =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0806957C:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0806957C
- cmp r4, 0x7
- bls _08069598
- movs r0, 0
- strh r0, [r1]
- b _0806959A
- .align 2, 0
-_08069590: .4byte Task_RunPerStepCallback
-_08069594: .4byte gTasks + 0x8
-_08069598:
- strh r4, [r1]
-_0806959A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 80695A0
- push {lr}
- ldr r0, _080695D0 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080695CA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080695D8 @ =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_080695CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080695D0: .4byte Task_RunPerStepCallback
-_080695D4: .4byte Task_RunTimeBasedEvents
-_080695D8: .4byte gTasks + 0x8
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start DummyPerStepCallback
-DummyPerStepCallback: @ 80695DC
- bx lr
- thumb_func_end DummyPerStepCallback
-
- thumb_func_start sub_80695E0
-sub_80695E0: @ 80695E0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _080695F8
- adds r0, r5, 0
- b _08069630
-_080695F8:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _0806960A
- adds r0, r5, 0
- adds r0, 0x8
- b _08069630
-_0806960A:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806961C
- adds r0, r5, 0
- adds r0, 0x10
- b _08069630
-_0806961C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- bne _0806962C
- movs r0, 0
- b _08069630
-_0806962C:
- adds r0, r5, 0
- adds r0, 0x18
-_08069630:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80695E0
-
- thumb_func_start sub_8069638
-sub_8069638: @ 8069638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80695E0
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _080696B6
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0806968E
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0806968E:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _080696B6
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_080696B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069638
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _080696E0 @ =gUnknown_08376384
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696E0: .4byte gUnknown_08376384
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696E4
-sub_80696E4: @ 80696E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069704 @ =gUnknown_083763A4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069704: .4byte gUnknown_083763A4
- thumb_func_end sub_80696E4
-
- thumb_func_start sub_8069708
-sub_8069708: @ 8069708
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069728 @ =gUnknown_083763C4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069728: .4byte gUnknown_083763C4
- thumb_func_end sub_8069708
-
- thumb_func_start sub_806972C
-sub_806972C: @ 806972C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _08069770
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _080697B6
-_0806976C:
- movs r0, 0
- b _080697B8
-_08069770:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069788
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _080697B6
- b _0806976C
-_08069788:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _080697A0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _080697B6
- b _0806976C
-_080697A0:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _080697B6
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0806976C
-_080697B6:
- movs r0, 0x1
-_080697B8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806972C
-
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
- thumb_func_start PerStepCallback_8069864
-PerStepCallback_8069864: @ 8069864
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069898 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _080698BE
- cmp r0, 0x1
- bgt _0806989C
- cmp r0, 0
- beq _080698A2
- b _080699CE
- .align 2, 0
-_08069898: .4byte gTasks + 0x8
-_0806989C:
- cmp r0, 0x2
- beq _0806998C
- b _080699CE
-_080698A2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_80696E4
- b _080699CA
-_080698BE:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080698D8
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _080699CE
-_080698D8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_806972C
- cmp r0, 0
- beq _08069920
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_8069708
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0806992A
-_08069920:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0806992A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_80697C8
- cmp r0, 0
- beq _0806995E
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0806995E:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080699CE
- movs r0, 0x46
- bl PlaySE
- b _080699CE
-_0806998C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080699CE
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696E4
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080699CA
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _080699CA
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_8069708
-_080699CA:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080699CE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069864
-
- thumb_func_start sub_80699D8
-sub_80699D8: @ 80699D8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A32
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A14 @ =0x0000024e
- cmp r1, r0
- beq _08069A18
- adds r0, 0x8
- cmp r1, r0
- beq _08069A28
- b _08069A32
- .align 2, 0
-_08069A14: .4byte 0x0000024e
-_08069A18:
- ldr r2, _08069A24 @ =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A32
- .align 2, 0
-_08069A24: .4byte 0x0000024f
-_08069A28:
- ldr r2, _08069A38 @ =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A38: .4byte 0x00000257
- thumb_func_end sub_80699D8
-
- thumb_func_start sub_8069A3C
-sub_8069A3C: @ 8069A3C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A96
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A78 @ =0x0000024f
- cmp r1, r0
- beq _08069A7C
- adds r0, 0x8
- cmp r1, r0
- beq _08069A8C
- b _08069A96
- .align 2, 0
-_08069A78: .4byte 0x0000024f
-_08069A7C:
- ldr r2, _08069A88 @ =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A96
- .align 2, 0
-_08069A88: .4byte 0x0000024e
-_08069A8C:
- ldr r2, _08069A9C @ =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A9C: .4byte 0x00000256
- thumb_func_end sub_8069A3C
-
- thumb_func_start PerStepCallback_8069AA0
-PerStepCallback_8069AA0: @ 8069AA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069ADC @ =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _08069B34
- cmp r5, 0x1
- bgt _08069AE0
- cmp r5, 0
- beq _08069AE8
- b _08069CA6
- .align 2, 0
-_08069ADC: .4byte gTasks + 0x8
-_08069AE0:
- cmp r5, 0x2
- bne _08069AE6
- b _08069C14
-_08069AE6:
- b _08069CA6
-_08069AE8:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _08069B12
- b _08069CA2
-_08069B12:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _08069CA2
-_08069B34:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _08069B5C
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _08069B5C
- b _08069CA6
-_08069B5C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08069BA4
- movs r1, 0x1
-_08069BA4:
- cmp r1, 0
- beq _08069BB8
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _08069BB2
- cmp r7, 0x1
- bne _08069BB8
-_08069BB2:
- movs r0, 0x47
- bl PlaySE
-_08069BB8:
- cmp r7, 0
- beq _08069BF4
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8069A3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_08069BF4:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _08069CA6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_08069C14:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _08069C9A
- lsls r0, 2
- ldr r1, _08069C40 @ =_08069C44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08069C40: .4byte _08069C44
- .align 2, 0
-_08069C44:
- .4byte _08069C64
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C76
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
-_08069C64:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _08069C9A
-_08069C76:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80699D8
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069A3C
-_08069C9A:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08069CA6
-_08069CA2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_08069CA6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069AA0
-
- thumb_func_start sub_8069CB8
-sub_8069CB8: @ 8069CB8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, _08069CE8 @ =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _08069CF4
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, _08069CEC @ =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _08069CF4
- ldr r0, _08069CF0 @ =gUnknown_083763E4
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08069CF4
- movs r0, 0x1
- b _08069CF6
- .align 2, 0
-_08069CE8: .4byte 0xfffd0000
-_08069CEC: .4byte 0xfffa0000
-_08069CF0: .4byte gUnknown_083763E4
-_08069CF4:
- movs r0, 0
-_08069CF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8069CB8
-
- thumb_func_start sub_8069CFC
-sub_8069CFC: @ 8069CFC
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D2A
- ldr r1, _08069D30 @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_08069D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069D30: .4byte gUnknown_083763E4
- thumb_func_end sub_8069CFC
-
- thumb_func_start sub_8069D34
-sub_8069D34: @ 8069D34
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D66
- ldr r1, _08069D6C @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _08069D70
-_08069D66:
- movs r0, 0
- b _08069D72
- .align 2, 0
-_08069D6C: .4byte gUnknown_083763E4
-_08069D70:
- movs r0, 0x1
-_08069D72:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069D34
-
- thumb_func_start sub_8069D78
-sub_8069D78: @ 8069D78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08069DCC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _08069DC0
-_08069D90:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08069DBA
- lsls r6, r5, 16
-_08069D9C:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_8069D34
- cmp r0, 0x1
- bne _08069DB4
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, _08069DD0 @ =0x0000020e
- bl MapGridSetMetatileIdAt
-_08069DB4:
- adds r4, 0x1
- cmp r4, r7
- blt _08069D9C
-_08069DBA:
- mov r5, r8
- cmp r5, r9
- blt _08069D90
-_08069DC0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069DCC: .4byte gMapHeader
-_08069DD0: .4byte 0x0000020e
- thumb_func_end sub_8069D78
-
- thumb_func_start PerStepCallback_8069DD4
-PerStepCallback_8069DD4: @ 8069DD4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069DF8 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08069E20
- cmp r0, 0x1
- bgt _08069DFC
- cmp r0, 0
- beq _08069E08
- b _08069F56
- .align 2, 0
-_08069DF8: .4byte gTasks + 0x8
-_08069DFC:
- cmp r0, 0x2
- beq _08069EB6
- cmp r0, 0x3
- bne _08069E06
- b _08069F10
-_08069E06:
- b _08069F56
-_08069E08:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _08069F52
-_08069E20:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- b _08069F56
-_08069E4A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08069E8C @ =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069E90
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _08069EA8
- .align 2, 0
-_08069E8C: .4byte 0x00004022
-_08069E90:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069F56
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_08069EA8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _08069F56
-_08069EB6:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _08069F1A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F0C @ =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8069CFC
- b _08069F52
- .align 2, 0
-_08069F0C: .4byte 0x0000020e
-_08069F10:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _08069F20
-_08069F1A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _08069F56
-_08069F20:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F60 @ =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_08069F52:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_08069F56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F60: .4byte 0x00000206
- thumb_func_end PerStepCallback_8069DD4
-
- thumb_func_start PerStepCallback_8069F64
-PerStepCallback_8069F64: @ 8069F64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069FE8 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069F9E
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A02A
-_08069F9E:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAshGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, _08069FEC @ =0x0000020a
- cmp r0, r1
- bne _08069FF4
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069FF0 @ =0x00000212
- movs r3, 0x4
- bl ash
- b _0806A006
- .align 2, 0
-_08069FE8: .4byte gTasks + 0x8
-_08069FEC: .4byte 0x0000020a
-_08069FF0: .4byte 0x00000212
-_08069FF4:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _0806A034 @ =0x00000206
- movs r3, 0x4
- bl ash
-_0806A006:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- ldr r0, _0806A038 @ =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, _0806A03C @ =0x0000270e
- cmp r1, r0
- bhi _0806A02A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0806A02A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A034: .4byte 0x00000206
-_0806A038: .4byte 0x00004048
-_0806A03C: .4byte 0x0000270e
- thumb_func_end PerStepCallback_8069F64
-
- thumb_func_start sub_806A040
-sub_806A040: @ 806A040
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0806A074 @ =0x0000022f
- ldr r2, _0806A078 @ =0x00000237
- cmp r0, r1
- bne _0806A05C
- subs r2, 0x31
-_0806A05C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A074: .4byte 0x0000022f
-_0806A078: .4byte 0x00000237
- thumb_func_end sub_806A040
-
- thumb_func_start PerStepCallback_806A07C
-PerStepCallback_806A07C: @ 806A07C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A164 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0806A0CE
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0CE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0CE:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0806A0EE
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0EE
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0EE:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0806A106
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A106:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0806A122
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A182
-_0806A122:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0806A182
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0806A14A
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A14A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806A16C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0806A182
- .align 2, 0
-_0806A164: .4byte gTasks + 0x8
-_0806A168: .4byte 0x00004022
-_0806A16C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0806A182
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0806A182:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_806A07C
-
- thumb_func_start sub_806A18C
-sub_806A18C: @ 806A18C
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0806A1A8
- movs r2, 0xE8
- b _0806A1BC
-_0806A1A8:
- ldr r1, _0806A1E4 @ =gUnknown_08376418
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0806A1B4
- adds r0, 0x7
-_0806A1B4:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0806A1BC:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1E4: .4byte gUnknown_08376418
- thumb_func_end sub_806A18C
-
- thumb_func_start Task_MuddySlope
-Task_MuddySlope: @ 806A1E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A230 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, _0806A234 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0806A238
- cmp r1, 0x1
- beq _0806A264
- b _0806A2B8
- .align 2, 0
-_0806A230: .4byte gTasks + 0x8
-_0806A234: .4byte gSaveBlock1
-_0806A238:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0806A2B8
-_0806A252:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0806A2B8
-_0806A264:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0806A280
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A2B8
-_0806A280:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B8
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0806A2A8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0806A252
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0806A2A8
-_0806A2B8:
- ldr r2, _0806A2D4 @ =gUnknown_0202E844
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A2D8
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0806A2D8
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0806A2DC
- .align 2, 0
-_0806A2D4: .4byte gUnknown_0202E844
-_0806A2D8:
- movs r0, 0
- movs r1, 0
-_0806A2DC:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0806A2EE:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0806A312
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_806A18C
-_0806A312:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0806A2EE
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_MuddySlope
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
deleted file mode 100644
index b47229d2b..000000000
--- a/asm/sound_check_menu.s
+++ /dev/null
@@ -1,2444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8 @ =gUnknown_020387B0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C @ =REG_BG2CNT
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228 @ =REG_WIN0H
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C @ =REG_WININ
- ldr r2, _080BA230 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234 @ =REG_BLDALPHA
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238 @ =0x04000200
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240 @ =sub_80BA0C0
- bl SetVBlankCallback
- ldr r0, _080BA244 @ =sub_80BA0A8
- bl SetMainCallback2
- ldr r1, _080BA248 @ =0x00007140
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C @ =sub_80BA258
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254 @ =gUnknown_020387B0
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358 @ =gDebugText_BGM
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C @ =gDebugText_SE
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360 @ =gUnknown_083D02D9
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364 @ =gDebugText_UpDown
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368 @ =gDebugText_DriverTest
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374 @ =sub_80BA384
- str r1, [r0]
- ldr r1, _080BA378 @ =REG_WIN0H
- ldr r2, _080BA37C @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0 @ =0x0000015d
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4 @ =gBGMNames
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8 @ =gSENames
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC @ =sub_80BA65C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte sub_80BA65C
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430 @ =sub_80BA800
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454 @ =sub_80BAF84
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474 @ =sub_80BB25C
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC @ =0x0000015d
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510 @ =0x0000015d
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534 @ =0x0000015d
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C @ =sub_80BA68C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644 @ =gUnknown_020387B0
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658 @ =gUnknown_020387B0
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start sub_80BA65C
-sub_80BA65C: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688 @ =sub_80BA384
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end sub_80BA65C
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4 @ =REG_WIN1H
- ldr r2, _080BA6D8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC @ =0x00002957
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4 @ =REG_WIN1H
- ldr r2, _080BA6F8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC @ =0x0000618f
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8 @ =gUnknown_083D0312
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC @ =gUnknown_083D031C
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0 @ =gDebugText_Voice
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4 @ =gDebugText_Volume
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8 @ =gDebugText_Panpot
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC @ =gDebugText_Pitch
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00 @ =gDebugText_Length
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04 @ =gDebugText_Release
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08 @ =gDebugText_Progress
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C @ =gDebugText_Chorus
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10 @ =gDebugText_Priority
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14 @ =gUnknown_083D0381
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18 @ =gUnknown_083D038A
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C @ =gUnknown_083D0393
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24 @ =gUnknown_020387B3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28 @ =gUnknown_020387B1
- strb r1, [r0]
- ldr r0, _080BAA2C @ =gUnknown_020387B2
- strb r1, [r0]
- ldr r0, _080BAA30 @ =gUnknown_03005D30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34 @ =gUnknown_020387D8
- strb r2, [r0]
- ldr r1, _080BAA38 @ =gUnknown_020387D9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C @ =gUnknown_020387B4
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40 @ =gTasks
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44 @ =sub_80BAA48
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4 @ =sub_80BA258
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC @ =gUnknown_020387B3
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4 @ =gUnknown_020387B3
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10 @ =gUnknown_020387D8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34 @ =gUnknown_020387D9
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4 @ =gUnknown_020387B4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08 @ =voicegroup_84537C0
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18 @ =voicegroup_8452590
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34 @ =voicegroup_8453DC0
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44 @ =voicegroup_8452B90
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60 @ =voicegroup_84543C0
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70 @ =voicegroup_8453190
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C @ =voicegroup_84549C0
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC @ =voicegroup_8453790
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0 @ =gUnknown_03005D30
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0 @ =gUnknown_03005D30
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4 @ =gUnknown_020387B1
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8 @ =gUnknown_020387B2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50 @ =gUnknown_083D039C
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54 @ =gUnknown_020387B4
- ldr r5, _080BAD58 @ =gUnknown_020387B3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00 @ =gUnknown_020387B4
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04 @ =gUnknown_020387B1
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08 @ =gUnknown_020387D8
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C @ =gUnknown_020387D9
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C @ =gUnknown_083D03DC
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70 @ =gUnknown_083D03DE
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74 @ =gUnknown_083D0300
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80 @ =gUnknown_083D03E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C @ =gOtherText_SE
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020 @ =gOtherText_Pan
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024 @ =gUnknown_083D0381
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C @ =gUnknown_020387B4
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034 @ =sub_80BB038
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058 @ =gUnknown_020387B4
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088 @ =gUnknown_083D03F8
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100 @ =sub_80BA258
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138 @ =gUnknown_083D03F8
- ldr r5, _080BB13C @ =gUnknown_020387B4
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0 @ =gUnknown_020387B4
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218 @ =gOtherText_LR
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C @ =gOtherText_RL
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220 @ =gUnknown_020387B4
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224 @ =gUnknown_083D03F8
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r1, _080BB37C @ =gUnknown_03005D34
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C @ =0xffff00ff
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390 @ =0xffffff00
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390 @ =0xffffff00
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C @ =0xffff00ff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl ShowPokedexCryScreen
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398 @ =REG_BG2HOFS
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C @ =REG_BG2CNT
- ldr r2, _080BB3A0 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4 @ =0x00001d03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8 @ =gMPlay_BGM
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0 @ =sub_80BB3B4
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490 @ =sub_80BA258
- str r1, [r0]
- bl DestroyCryMeterNeedleSprite
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8 @ =gUnknown_03005D34
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- .align 2, 0 @ Don't pad with nop.