summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-10-16 13:38:21 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-10-17 02:01:07 +0800
commitf03807931fa6451c446dc931cd755c697f7177a4 (patch)
tree05e5871bf1d02e33f57a5e95905b49e14c90a1d3 /asm
parenta6c0088073949fe3007bf600fd2de8948b3874a7 (diff)
thru sub_8011B94
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_1.s16
-rw-r--r--asm/battle_2.s3671
-rw-r--r--asm/battle_setup.s6
-rw-r--r--asm/link_rfu_2.s6
-rw-r--r--asm/trade.s6
5 files changed, 17 insertions, 3688 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index f62617600..6db40cb4d 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -217,8 +217,8 @@ sub_800F34C: @ 800F34C
_0800F37C: .4byte 0x0000b040
thumb_func_end sub_800F34C
- thumb_func_start sub_800F380
-sub_800F380: @ 800F380
+ thumb_func_start LoadBattleMenuWindowGfx
+LoadBattleMenuWindowGfx: @ 800F380
push {r4,r5,lr}
movs r0, 0x2
movs r1, 0x12
@@ -278,7 +278,7 @@ _0800F3FC: .4byte 0x0000675a
_0800F400: .4byte gPlttBufferFaded + 0xB8
_0800F404: .4byte gBattleTypeFlags
_0800F408: .4byte 0x00010010
- thumb_func_end sub_800F380
+ thumb_func_end LoadBattleMenuWindowGfx
thumb_func_start sub_800F40C
sub_800F40C: @ 800F40C
@@ -309,7 +309,7 @@ LoadBattleTextboxAndBackground: @ 800F420
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
bl sub_800F40C
pop {r0}
bx r0
@@ -1143,8 +1143,8 @@ _0800FAD8: .4byte 0x000003ff
_0800FADC: .4byte 0xfffffc00
thumb_func_end sub_800F6FC
- thumb_func_start sub_800FAE0
-sub_800FAE0: @ 800FAE0
+ thumb_func_start DrawBattleEntryBackground
+DrawBattleEntryBackground: @ 800FAE0
push {r4,lr}
ldr r0, _0800FB64 @ =gBattleTypeFlags
ldr r1, [r0]
@@ -1287,7 +1287,7 @@ _0800FC26:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_800FAE0
+ thumb_func_end DrawBattleEntryBackground
thumb_func_start sub_800FC2C
sub_800FC2C: @ 800FC2C
@@ -1459,7 +1459,7 @@ _0800FD68:
.align 2, 0
_0800FD88: .4byte gUnknown_824EE34
_0800FD8C:
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
b _0800FD94
_0800FD92:
movs r4, 0x1
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 13277fc92..39af417fa 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -5,3677 +5,6 @@
.text
- thumb_func_start CB2_InitBattle
-CB2_InitBattle: @ 800FD9C
- push {r4,lr}
- bl MoveSaveBlocks_ResetHeap
- bl AllocateBattleResources
- bl AllocateBattleSpritesData
- bl AllocateMonSpritesGfx
- ldr r4, _0800FDCC @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FDD8
- bl HandleLinkBattleSetup
- ldr r0, _0800FDD0 @ =CB2_PreInitMultiBattle
- bl SetMainCallback2
- ldr r1, _0800FDD4 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1]
- b _0800FE1C
- .align 2, 0
-_0800FDCC: .4byte gBattleTypeFlags
-_0800FDD0: .4byte CB2_PreInitMultiBattle
-_0800FDD4: .4byte gBattleCommunication
-_0800FDD8:
- bl CB2_InitBattleInternal
- ldr r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FE1C
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800FE06
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0800FDFE
- movs r0, 0x19
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FDFE:
- movs r0, 0x18
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE06:
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _0800FE16
- movs r0, 0x1A
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE16:
- movs r0, 0x17
- bl HelpSystem_SetSomeVariable2
-_0800FE1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CB2_InitBattle
-
- thumb_func_start CB2_InitBattleInternal
-CB2_InitBattleInternal: @ 800FE24
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800FF28 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _0800FF2C @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _0800FF30 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0800FF34 @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_0800FE88:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800FE88
- movs r1, 0x50
- ldr r4, _0800FF3C @ =sIntroScanlineParams16Bit
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- ldr r3, _0800FF40 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800FEA6:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800FEA6
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl ScanlineEffect_SetParams
- bl ResetPaletteFade
- ldr r0, _0800FF44 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800FF48 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _0800FF4C @ =gBattle_BG1_X
- strh r1, [r0]
- ldr r0, _0800FF50 @ =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, _0800FF54 @ =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, _0800FF58 @ =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, _0800FF5C @ =gBattle_BG3_X
- strh r1, [r0]
- ldr r0, _0800FF60 @ =gBattle_BG3_Y
- strh r1, [r0]
- bl sub_807FC5C
- ldr r1, _0800FF64 @ =gBattleTerrain
- strb r0, [r1]
- bl sub_800F34C
- bl LoadBattleTextboxAndBackground
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- bl FreeAllSpritePalettes
- ldr r1, _0800FF68 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800FF6C @ =VBlankCB_Battle
- bl SetVBlankCallback
- bl SetUpBattleVars
- ldr r0, _0800FF70 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FF78
- ldr r0, _0800FF74 @ =CB2_HandleStartMultiBattle
- bl SetMainCallback2
- b _0800FF7E
- .align 2, 0
-_0800FF28: .4byte 0x05006000
-_0800FF2C: .4byte 0x00005051
-_0800FF30: .4byte gBattle_WIN0H
-_0800FF34: .4byte gBattle_WIN0V
-_0800FF38: .4byte gScanlineEffectRegBuffers
-_0800FF3C: .4byte sIntroScanlineParams16Bit
-_0800FF40: .4byte 0x0000ff10
-_0800FF44: .4byte gBattle_BG0_X
-_0800FF48: .4byte gBattle_BG0_Y
-_0800FF4C: .4byte gBattle_BG1_X
-_0800FF50: .4byte gBattle_BG1_Y
-_0800FF54: .4byte gBattle_BG2_X
-_0800FF58: .4byte gBattle_BG2_Y
-_0800FF5C: .4byte gBattle_BG3_X
-_0800FF60: .4byte gBattle_BG3_Y
-_0800FF64: .4byte gBattleTerrain
-_0800FF68: .4byte gReservedSpritePaletteCount
-_0800FF6C: .4byte VBlankCB_Battle
-_0800FF70: .4byte gBattleTypeFlags
-_0800FF74: .4byte CB2_HandleStartMultiBattle
-_0800FF78:
- ldr r0, _0800FFCC @ =CB2_HandleStartBattle
- bl SetMainCallback2
-_0800FF7E:
- ldr r0, _0800FFD0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FF98
- ldr r0, _0800FFD4 @ =gEnemyParty
- ldr r1, _0800FFD8 @ =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl CreateNPCTrainerParty
- bl SetWildMonHeldItem
-_0800FF98:
- ldr r0, _0800FFDC @ =gMain
- ldr r1, _0800FFE0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800FFE4 @ =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0800FFAE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800FFAE
- movs r1, 0
- ldr r0, _0800FFE8 @ =gBattleCommunication
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FFCC: .4byte CB2_HandleStartBattle
-_0800FFD0: .4byte gBattleTypeFlags
-_0800FFD4: .4byte gEnemyParty
-_0800FFD8: .4byte gTrainerBattleOpponent_A
-_0800FFDC: .4byte gMain
-_0800FFE0: .4byte 0x00000439
-_0800FFE4: .4byte gPlayerParty
-_0800FFE8: .4byte gBattleCommunication
- thumb_func_end CB2_InitBattleInternal
-
- thumb_func_start sub_800FFEC
-sub_800FFEC: @ 800FFEC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_08010002:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _080100B0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801004A
- cmp r7, 0
- beq _0801004A
- cmp r1, 0
- bne _0801004A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801004A:
- cmp r5, 0
- beq _0801007E
- cmp r7, 0
- beq _08010066
- cmp r5, r10
- beq _0801005A
- cmp r1, 0
- beq _08010066
-_0801005A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_08010066:
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801007E
- cmp r7, 0
- bne _0801007E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801007E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _08010002
- ldr r1, _080100B4 @ =gBattleStruct
- ldr r0, [r1]
- movs r2, 0xC3
- lsls r2, 1
- adds r0, r2
- strb r6, [r0]
- ldr r0, [r1]
- adds r2, 0x1
- adds r1, r0, r2
- lsrs r0, r6, 8
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080100B0: .4byte gPlayerParty
-_080100B4: .4byte gBattleStruct
- thumb_func_end sub_800FFEC
-
- thumb_func_start SetPlayerBerryDataInBattleStruct
-SetPlayerBerryDataInBattleStruct: @ 80100B8
- push {r4-r7,lr}
- ldr r0, _08010120 @ =gBattleStruct
- ldr r5, [r0]
- movs r0, 0xC4
- lsls r0, 1
- adds r4, r5, r0
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010134
- movs r2, 0
- ldr r7, _08010124 @ =gSaveBlock1Ptr
- movs r1, 0xC8
- lsls r1, 1
- adds r5, r1
- adds r6, r7, 0
- ldr r3, _08010128 @ =0x000030ec
-_080100DA:
- adds r0, r4, r2
- ldr r1, [r6]
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _080100DA
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
- adds r3, r5, 0
- ldr r6, _08010124 @ =gSaveBlock1Ptr
- ldr r5, _0801012C @ =0x00003108
-_080100FA:
- adds r0, r3, r2
- ldr r1, [r6]
- adds r1, r5
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _080100FA
- ldr r0, [r7]
- ldr r1, _08010130 @ =0x0000311a
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- ldr r0, [r7]
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _08010174
- .align 2, 0
-_08010120: .4byte gBattleStruct
-_08010124: .4byte gSaveBlock1Ptr
-_08010128: .4byte 0x000030ec
-_0801012C: .4byte 0x00003108
-_08010130: .4byte 0x0000311a
-_08010134:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r3, r0, 0
- movs r2, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r0
-_0801014C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _0801014C
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r5, 0
- movs r2, 0
- adds r1, r0, 0
- adds r1, 0x11
-_08010168:
- strb r2, [r1]
- subs r1, 0x1
- cmp r1, r0
- bge _08010168
- movs r0, 0
- strb r0, [r4, 0x7]
-_08010174:
- strb r0, [r4, 0x1A]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetPlayerBerryDataInBattleStruct
-
- thumb_func_start SetAllPlayersBerryData
-SetAllPlayersBerryData: @ 801017C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08010234 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08010194
- b _080102C0
-_08010194:
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010250
- movs r5, 0
- ldr r3, _08010238 @ =gEnigmaBerries
- ldr r0, _0801023C @ =gSaveBlock1Ptr
- mov r8, r0
- adds r6, r3, 0
- mov r4, r8
- ldr r2, _08010240 @ =0x000030ec
- adds r7, r3, 0
- adds r7, 0x38
-_080101AE:
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _080101AE
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r7, r3, 0
- adds r7, 0x8
- ldr r4, _0801023C @ =gSaveBlock1Ptr
- ldr r2, _08010244 @ =0x00003108
- adds r6, r3, 0
- adds r6, 0x40
-_080101EC:
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x11
- ble _080101EC
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _08010248 @ =0x0000311a
- adds r0, r2
- ldrb r1, [r0]
- strb r1, [r3, 0x7]
- ldrb r0, [r0]
- adds r1, r3, 0
- adds r1, 0x3F
- strb r0, [r1]
- mov r4, r8
- ldr r0, [r4]
- ldr r1, _0801024C @ =0x0000311b
- adds r0, r1
- ldrb r1, [r0]
- strb r1, [r3, 0x1A]
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x52
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_08010234: .4byte gBattleTypeFlags
-_08010238: .4byte gEnigmaBerries
-_0801023C: .4byte gSaveBlock1Ptr
-_08010240: .4byte 0x000030ec
-_08010244: .4byte 0x00003108
-_08010248: .4byte 0x0000311a
-_0801024C: .4byte 0x0000311b
-_08010250:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r6, r0, 0
- movs r5, 0
- ldr r4, _080102BC @ =gEnigmaBerries
- adds r7, r4, 0
- adds r7, 0x38
- adds r3, r4, 0
-_0801026A:
- adds r1, r5, r4
- adds r2, r6, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801026A
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r4, r3, 0
- adds r4, 0x8
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x40
-_0801029C:
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x11
- ble _0801029C
- movs r1, 0
- strb r1, [r3, 0x7]
- adds r0, r3, 0
- adds r0, 0x3F
- strb r1, [r0]
- strb r1, [r3, 0x1A]
- adds r0, 0x13
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_080102BC: .4byte gEnigmaBerries
-_080102C0:
- movs r0, 0x40
- ands r1, r0
- cmp r1, 0
- beq _0801034C
- movs r5, 0
- ldr r3, _08010340 @ =gEnigmaBerries
- ldr r2, _08010344 @ =gLinkPlayers
- mov r9, r2
- adds r6, r3, 0
- movs r4, 0x8
- adds r4, r6
- mov r8, r4
-_080102D8:
- lsls r0, r5, 8
- ldr r1, _08010348 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r3, [r0, 0x18]
- movs r4, 0
- adds r5, 0x1
- mov r10, r5
- lsls r1, r3, 3
- subs r0, r1, r3
- adds r5, r1, 0
- lsls r0, 2
- adds r1, r0, r6
-_080102F8:
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _080102F8
- subs r0, r5, r3
- lsls r0, 2
- adds r1, r4, r0
- adds r1, r6
- movs r2, 0xFF
- strb r2, [r1]
- movs r4, 0
- mov r2, r8
- adds r1, r0, r2
- adds r2, r7, 0
- adds r2, 0x8
-_0801031C:
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _0801031C
- subs r0, r5, r3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x3
- ble _080102D8
- b _080103FC
- .align 2, 0
-_08010340: .4byte gEnigmaBerries
-_08010344: .4byte gLinkPlayers
-_08010348: .4byte gBlockRecvBuffer + 4
-_0801034C:
- movs r5, 0
- ldr r4, _0801040C @ =gEnigmaBerries
- mov r9, r4
-_08010352:
- lsls r0, r5, 8
- ldr r1, _08010410 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
- lsls r0, r5, 3
- mov r8, r0
- adds r1, r5, 0x2
- mov r12, r1
- subs r1, r0, r5
- mov r2, r12
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- lsls r1, 2
- adds r2, r1, r2
-_08010378:
- adds r0, r7, r4
- ldrb r1, [r0]
- strb r1, [r2]
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _08010378
- mov r0, r8
- subs r3, r0, r5
- lsls r3, 2
- adds r1, r4, r3
- add r1, r9
- ldrb r0, [r1]
- movs r2, 0xFF
- orrs r0, r2
- strb r0, [r1]
- mov r0, r12
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r1, r4, r2
- add r1, r9
- ldrb r0, [r1]
- movs r4, 0xFF
- orrs r0, r4
- strb r0, [r1]
- movs r4, 0
- ldr r0, _0801040C @ =gEnigmaBerries
- adds r0, 0x8
- adds r2, r0
- adds r3, r0
- adds r6, r7, 0
- adds r6, 0x8
-_080103C0:
- adds r0, r6, r4
- ldrb r1, [r0]
- strb r1, [r3]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r2, 0x1
- adds r3, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _080103C0
- mov r0, r8
- subs r2, r0, r5
- lsls r2, 2
- add r2, r9
- ldrb r0, [r7, 0x7]
- strb r0, [r2, 0x7]
- mov r1, r12
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r2, 0x1A]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x1
- ble _08010352
-_080103FC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801040C: .4byte gEnigmaBerries
-_08010410: .4byte gBlockRecvBuffer + 4
- thumb_func_end SetAllPlayersBerryData
-
- thumb_func_start sub_8010414
-sub_8010414: @ 8010414
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r6, 0
- ldr r0, _08010440 @ =gBlockRecvBuffer
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 1
- mov r12, r0
- cmp r2, r1
- bne _08010458
- cmp r3, 0
- bne _08010448
- ldr r0, _08010444 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801044E
- .align 2, 0
-_08010440: .4byte gBlockRecvBuffer
-_08010444: .4byte gBattleTypeFlags
-_08010448:
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801044E:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08010458:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- cmp r2, r4
- bge _0801047C
- ldr r1, _08010490 @ =gBlockRecvBuffer
- mov r8, r1
- movs r5, 0x80
- lsls r5, 1
-_0801046A:
- adds r1, r5
- adds r2, 0x1
- cmp r2, r4
- bge _0801047C
- mov r7, r8
- ldrh r0, [r7]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0801046A
-_0801047C:
- cmp r2, r4
- bne _080104A4
- cmp r3, 0
- bne _08010494
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801049A
- .align 2, 0
-_0801048C: .4byte gBattleTypeFlags
-_08010490: .4byte gBlockRecvBuffer
-_08010494:
- ldr r0, _080104EC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801049A:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080104A4:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- ldr r5, _080104EC @ =gBattleTypeFlags
- cmp r2, r4
- bge _080104E2
- mov r0, r12
- ldrh r1, [r0]
- ldr r0, _080104F0 @ =0x00000201
- cmp r1, r0
- beq _080104DA
-_080104BA:
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- ldr r1, _080104F0 @ =0x00000201
- cmp r0, r1
- bls _080104CA
- cmp r2, r3
- bne _080104E2
-_080104CA:
- adds r2, 0x1
- cmp r2, r4
- bge _080104E2
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- cmp r0, r1
- bne _080104BA
-_080104DA:
- cmp r2, r3
- beq _080104BA
- cmp r2, r3
- bge _080104BA
-_080104E2:
- cmp r2, r4
- bne _080104F4
- ldr r0, [r5]
- movs r1, 0xC
- b _080104F8
- .align 2, 0
-_080104EC: .4byte gBattleTypeFlags
-_080104F0: .4byte 0x00000201
-_080104F4:
- ldr r0, [r5]
- movs r1, 0x8
-_080104F8:
- orrs r0, r1
- str r0, [r5]
-_080104FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8010414
-
- thumb_func_start CB2_HandleStartBattle
-CB2_HandleStartBattle: @ 8010508
- push {r4-r6,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08010540 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _08010544 @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _08010536
- b _080108B8
-_08010536:
- lsls r0, 2
- ldr r1, _08010548 @ =_0801054C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010540: .4byte gBattleStruct
-_08010544: .4byte gBattleCommunication
-_08010548: .4byte _0801054C
- .align 2, 0
-_0801054C:
- .4byte _08010590
- .4byte _080105D4
- .4byte _08010670
- .4byte _080106F4
- .4byte _0801071C
- .4byte _08010898
- .4byte _080108A4
- .4byte _0801074C
- .4byte _08010774
- .4byte _08010898
- .4byte _080108A4
- .4byte _080107A4
- .4byte _080107CC
- .4byte _08010898
- .4byte _080108A4
- .4byte _08010834
- .4byte _0801084C
-_08010590:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080105BC
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _080105CC @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_080105BC:
- ldr r0, _080105D0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105C6
- b _080108B8
-_080105C6:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080108B8
- .align 2, 0
-_080105CC: .4byte gBattleCommunication
-_080105D0: .4byte gWirelessCommType
-_080105D4:
- ldr r2, _08010640 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r6, 0x2
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _08010658
- ldr r0, _08010644 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105EC
- b _080108B8
-_080105EC:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _0801062A
- ldr r4, _08010648 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0801064C @ =0x00000185
- adds r0, r1
- strb r6, [r0]
- bl sub_800FFEC
- bl SetPlayerBerryDataInBattleStruct
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r0, _08010650 @ =gBattleCommunication
- strb r6, [r0]
-_0801062A:
- ldr r0, _08010654 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010634
- b _080108B8
-_08010634:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080108B8
- .align 2, 0
-_08010640: .4byte gBattleTypeFlags
-_08010644: .4byte gReceivedRemoteLinkPlayers
-_08010648: .4byte gBattleStruct
-_0801064C: .4byte 0x00000185
-_08010650: .4byte gBattleCommunication
-_08010654: .4byte gWirelessCommType
-_08010658:
- movs r0, 0x4
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801066C @ =gBattleCommunication
- movs r0, 0xF
- strb r0, [r1]
- bl SetAllPlayersBerryData
- b _080108B8
- .align 2, 0
-_0801066C: .4byte gBattleCommunication
-_08010670:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801067E
- b _080108B8
-_0801067E:
- bl ResetBlockReceivedFlags
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8010414
- bl SetAllPlayersBerryData
- ldr r0, _080106E0 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080106E4 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _080106E8 @ =gBattleStruct
- ldr r3, [r0]
- movs r4, 0xC3
- lsls r4, 1
- adds r0, r3, r4
- ldrb r1, [r0]
- adds r4, 0x1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _080106EC @ =gBlockRecvBuffer
- lsls r1, r5, 8
- adds r0, 0x2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2, 0x10]
- bl SetDeoxysStats
- ldr r1, _080106F0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080106E0: .4byte sub_800F6FC
-_080106E4: .4byte gTasks
-_080106E8: .4byte gBattleStruct
-_080106EC: .4byte gBlockRecvBuffer
-_080106F0: .4byte gBattleCommunication
-_080106F4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010700
- b _080108B8
-_08010700:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010714 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010718 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010714: .4byte gPlayerParty
-_08010718: .4byte gBattleCommunication
-_0801071C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801072A
- b _080108B8
-_0801072A:
- bl ResetBlockReceivedFlags
- ldr r0, _08010740 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _08010744 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010748 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010740: .4byte gEnemyParty
-_08010744: .4byte gBlockRecvBuffer
-_08010748: .4byte gBattleCommunication
-_0801074C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010758
- b _080108B8
-_08010758:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801076C @ =gUnknown_202434C
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010770 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_0801076C: .4byte gUnknown_202434C
-_08010770: .4byte gBattleCommunication
-_08010774:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08010782
- b _080108B8
-_08010782:
- bl ResetBlockReceivedFlags
- ldr r0, _08010798 @ =gUnknown_20240F4
- lsls r1, r5, 8
- ldr r2, _0801079C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _080107A0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010798: .4byte gUnknown_20240F4
-_0801079C: .4byte gBlockRecvBuffer
-_080107A0: .4byte gBattleCommunication
-_080107A4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _080107B0
- b _080108B8
-_080107B0:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080107C4 @ =gUnknown_2024414
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _080107C8 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080107C4: .4byte gUnknown_2024414
-_080107C8: .4byte gBattleCommunication
-_080107CC:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _080108B8
- bl ResetBlockReceivedFlags
- ldr r4, _08010820 @ =gUnknown_20241BC
- lsls r1, r5, 8
- ldr r0, _08010824 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010828 @ =0xfffffe70
- adds r0, r4, r1
- bl TryCorrectShedinjaLanguage
- ldr r1, _0801082C @ =0xfffffed4
- adds r0, r4, r1
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- subs r0, 0xC8
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- subs r0, 0x64
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- adds r0, 0x64
- bl TryCorrectShedinjaLanguage
- ldr r1, _08010830 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010820: .4byte gUnknown_20241BC
-_08010824: .4byte gBlockRecvBuffer
-_08010828: .4byte 0xfffffe70
-_0801082C: .4byte 0xfffffed4
-_08010830: .4byte gBattleCommunication
-_08010834:
- bl sub_800D30C
- ldr r0, _08010848 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080108B8
- .align 2, 0
-_08010848: .4byte gBattleCommunication
-_0801084C:
- ldr r0, _08010880 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080108B8
- ldr r2, _08010884 @ =gPreBattleCallback1
- ldr r1, _08010888 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0801088C @ =BattleMainCB1
- str r0, [r1]
- ldr r0, _08010890 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _08010894 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080108B8
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080108B8
- .align 2, 0
-_08010880: .4byte gUnknown_2023E83
-_08010884: .4byte gPreBattleCallback1
-_08010888: .4byte gMain
-_0801088C: .4byte BattleMainCB1
-_08010890: .4byte BattleMainCB2
-_08010894: .4byte gBattleTypeFlags
-_08010898:
- ldr r0, _080108C0 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080108A4:
- ldr r1, _080108C0 @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080108B8
-_080108B2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080108B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080108C0: .4byte gBattleCommunication
- thumb_func_end CB2_HandleStartBattle
-
- thumb_func_start sub_80108C4
-sub_80108C4: @ 80108C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _080109BC @ =gUnknown_2022B58
- mov r9, r1
- movs r0, 0x18
- add r0, r9
- mov r10, r0
-_080108DC:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _080109C0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, r8
- lsls r5, r1, 5
- mov r1, r9
- adds r6, r5, r1
- strh r0, [r6]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r6, 0x2]
- mov r0, r9
- adds r0, 0x4
- adds r7, r5, r0
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r6, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r9
- adds r1, 0x14
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- add r5, r10
- str r0, [r5]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r6, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- mov r4, r8
- adds r4, 0x1
- cmp r0, 0x1
- beq _08010994
- adds r2, r7, 0
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0801097E
-_08010974:
- adds r1, 0x1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08010974
-_0801097E:
- cmp r1, 0x5
- bgt _0801098E
- movs r3, 0
-_08010984:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x5
- ble _08010984
-_0801098E:
- adds r1, r2, r1
- movs r0, 0xFF
- strb r0, [r1]
-_08010994:
- mov r8, r4
- cmp r4, 0x2
- ble _080108DC
- ldr r0, _080109C4 @ =gBattleStruct
- ldr r0, [r0]
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r1
- ldr r1, _080109BC @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080109BC: .4byte gUnknown_2022B58
-_080109C0: .4byte gPlayerParty
-_080109C4: .4byte gBattleStruct
- thumb_func_end sub_80108C4
-
- thumb_func_start CB2_PreInitMultiBattle
-CB2_PreInitMultiBattle: @ 80109C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _08010A0C @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB5
- strb r6, [r0]
- ldr r0, [r4]
- movs r1, 0xB0
- adds r1, r0
- mov r9, r1
- adds r0, 0xAE
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _08010A10 @ =gBattleCommunication
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08010A5C
- cmp r0, 0x1
- bgt _08010A14
- cmp r0, 0
- beq _08010A20
- b _08010B82
- .align 2, 0
-_08010A0C: .4byte gBattleStruct
-_08010A10: .4byte gBattleCommunication
-_08010A14:
- cmp r0, 0x2
- beq _08010AFC
- cmp r0, 0x3
- bne _08010A1E
- b _08010B2A
-_08010A1E:
- b _08010B82
-_08010A20:
- ldr r0, _08010A58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010A2A
- b _08010B82
-_08010A2A:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010A36
- b _08010B82
-_08010A36:
- bl sub_80108C4
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r2, 0xC2
- lsls r2, 1
- adds r1, r2
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08010B82
- .align 2, 0
-_08010A58: .4byte gReceivedRemoteLinkPlayers
-_08010A5C:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010A6A
- b _08010B82
-_08010A6A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_08010A78:
- cmp r4, r6
- beq _08010ABA
- ldr r2, _08010A9C @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010AA0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010AAC
- b _08010ABA
- .align 2, 0
-_08010A9C: .4byte gLinkPlayers
-_08010AA0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010ABA
-_08010AAC:
- lsls r1, r4, 8
- ldr r0, _08010AE4 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _08010AE8 @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
-_08010ABA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _08010A78
- ldr r1, _08010AEC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08010AF0 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _08010AF4 @ =gBattleTypeFlags
- ldr r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _08010AF8 @ =CB2_PreInitMultiBattle
- str r0, [r1, 0x8]
- bl sub_8128198
- b _08010B82
- .align 2, 0
-_08010AE4: .4byte gBlockRecvBuffer
-_08010AE8: .4byte gUnknown_2022B58
-_08010AEC: .4byte gBattleCommunication
-_08010AF0: .4byte gMain
-_08010AF4: .4byte gBattleTypeFlags
-_08010AF8: .4byte CB2_PreInitMultiBattle
-_08010AFC:
- ldr r0, _08010B1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010B82
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _08010B20 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B24
- bl sub_800AB9C
- b _08010B82
- .align 2, 0
-_08010B1C: .4byte gPaletteFade
-_08010B20: .4byte gWirelessCommType
-_08010B24:
- bl sub_800AAC0
- b _08010B82
-_08010B2A:
- ldr r0, _08010B54 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B64
- bl IsRfuTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010B82
- ldr r1, _08010B58 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B5C @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B60 @ =CB2_InitBattleInternal
- bl SetMainCallback2
- b _08010B82
- .align 2, 0
-_08010B54: .4byte gWirelessCommType
-_08010B58: .4byte gBattleTypeFlags
-_08010B5C: .4byte gMain
-_08010B60: .4byte CB2_InitBattleInternal
-_08010B64:
- ldr r0, _08010B90 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010B82
- ldr r1, _08010B94 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B98 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B9C @ =CB2_InitBattleInternal
- bl SetMainCallback2
-_08010B82:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010B90: .4byte gReceivedRemoteLinkPlayers
-_08010B94: .4byte gBattleTypeFlags
-_08010B98: .4byte gMain
-_08010B9C: .4byte CB2_InitBattleInternal
- thumb_func_end CB2_PreInitMultiBattle
-
- thumb_func_start CB2_HandleStartMultiBattle
-CB2_HandleStartMultiBattle: @ 8010BA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08010BD8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r7, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08010BDC @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08010BCC
- b _080110F0
-_08010BCC:
- lsls r0, 2
- ldr r1, _08010BE0 @ =_08010BE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010BD8: .4byte gBattleStruct
-_08010BDC: .4byte gBattleCommunication
-_08010BE0: .4byte _08010BE4
- .align 2, 0
-_08010BE4:
- .4byte _08010C18
- .4byte _08010C5C
- .4byte _08010CD4
- .4byte _08010DB6
- .4byte _08010DE0
- .4byte _080110D0
- .4byte _080110DC
- .4byte _08010ED8
- .4byte _08010F00
- .4byte _080110D0
- .4byte _080110DC
- .4byte _0801106C
- .4byte _08011084
-_08010C18:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08010C44
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _08010C54 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_08010C44:
- ldr r0, _08010C58 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C4E
- b _080110F0
-_08010C4E:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080110F0
- .align 2, 0
-_08010C54: .4byte gBattleCommunication
-_08010C58: .4byte gWirelessCommType
-_08010C5C:
- ldr r0, _08010CC0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C66
- b _080110F0
-_08010C66:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010CAA
- ldr r4, _08010CC4 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _08010CC8 @ =0x00000185
- adds r1, r0, r2
- movs r0, 0x2
- strb r0, [r1]
- bl sub_800FFEC
- bl SetPlayerBerryDataInBattleStruct
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r1, _08010CCC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010CAA:
- ldr r0, _08010CD0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010CB4
- b _080110F0
-_08010CB4:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080110F0
- .align 2, 0
-_08010CC0: .4byte gReceivedRemoteLinkPlayers
-_08010CC4: .4byte gBattleStruct
-_08010CC8: .4byte 0x00000185
-_08010CCC: .4byte gBattleCommunication
-_08010CD0: .4byte gWirelessCommType
-_08010CD4:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010CE2
- b _080110F0
-_08010CE2:
- bl ResetBlockReceivedFlags
- movs r0, 0x4
- adds r1, r7, 0
- bl sub_8010414
- bl SetAllPlayersBerryData
- bl SetDeoxysStats
- ldr r0, _08010D4C @ =gDecompressionBuffer
- ldr r1, _08010D50 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _08010D54 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08010D58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _08010D5C @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r5, _08010D60 @ =gLinkPlayers
- movs r4, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r6, 0x3
-_08010D3A:
- ldrh r0, [r5, 0x18]
- cmp r0, 0x1
- beq _08010D76
- cmp r0, 0x1
- bgt _08010D64
- cmp r0, 0
- beq _08010D6E
- b _08010D9C
- .align 2, 0
-_08010D4C: .4byte gDecompressionBuffer
-_08010D50: .4byte gPlayerParty
-_08010D54: .4byte sub_800F6FC
-_08010D58: .4byte gTasks
-_08010D5C: .4byte gBlockRecvBuffer
-_08010D60: .4byte gLinkPlayers
-_08010D64:
- cmp r0, 0x2
- beq _08010D7E
- cmp r0, 0x3
- beq _08010D8E
- b _08010D9C
-_08010D6E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D86
-_08010D76:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D96
-_08010D7E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D86:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _08010D9C
-_08010D8E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D96:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_08010D9C:
- adds r3, r7
- adds r5, 0x1C
- subs r6, 0x1
- cmp r6, 0
- bge _08010D3A
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _08010DD8 @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010DB6:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010DC2
- b _080110F0
-_08010DC2:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010DDC @ =gDecompressionBuffer
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010DD8 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010DD8: .4byte gBattleCommunication
-_08010DDC: .4byte gDecompressionBuffer
-_08010DE0:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010DEE
- b _080110F0
-_08010DEE:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010E18 @ =gBlockRecvBuffer
- movs r5, 0
-_08010E00:
- cmp r6, r7
- bne _08010E34
- ldr r0, _08010E1C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010E20
- cmp r0, 0x1
- bge _08010E2C
- cmp r0, 0
- beq _08010E24
- b _08010EBE
- .align 2, 0
-_08010E18: .4byte gBlockRecvBuffer
-_08010E1C: .4byte gLinkPlayers
-_08010E20:
- cmp r0, 0x3
- bne _08010EBE
-_08010E24:
- ldr r0, _08010E28 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E28: .4byte gPlayerParty
-_08010E2C:
- ldr r0, _08010E30 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E30: .4byte gUnknown_20243B0
-_08010E34:
- ldr r2, _08010E54 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010E58
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E66
- b _08010E8C
- .align 2, 0
-_08010E54: .4byte gLinkPlayers
-_08010E58:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E8C
-_08010E66:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E78
- cmp r2, 0x1
- bge _08010E84
- cmp r2, 0
- beq _08010E7C
- b _08010EBE
-_08010E78:
- cmp r2, 0x3
- bne _08010EBE
-_08010E7C:
- ldr r0, _08010E80 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E80: .4byte gPlayerParty
-_08010E84:
- ldr r0, _08010E88 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E88: .4byte gUnknown_20243B0
-_08010E8C:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E9E
- cmp r2, 0x1
- bge _08010EB4
- cmp r2, 0
- beq _08010EA2
- b _08010EBE
-_08010E9E:
- cmp r2, 0x3
- bne _08010EBE
-_08010EA2:
- ldr r0, _08010EB0 @ =gEnemyParty
-_08010EA4:
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
- b _08010EBE
- .align 2, 0
-_08010EB0: .4byte gEnemyParty
-_08010EB4:
- ldr r0, _08010ED0 @ =gUnknown_2024158
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
-_08010EBE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010E00
- ldr r1, _08010ED4 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010ED0: .4byte gUnknown_2024158
-_08010ED4: .4byte gBattleCommunication
-_08010ED8:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010EE4
- b _080110F0
-_08010EE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8
- movs r2, 0x64
- bl SendBlock
- ldr r1, _08010EFC @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010EF8: .4byte gDecompressionBuffer + 0x0C8
-_08010EFC: .4byte gBattleCommunication
-_08010F00:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010F0E
- b _080110F0
-_08010F0E:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010F38 @ =gBlockRecvBuffer
- movs r5, 0
-_08010F20:
- cmp r6, r7
- bne _08010F54
- ldr r0, _08010F3C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010F40
- cmp r0, 0x1
- bge _08010F4C
- cmp r0, 0
- beq _08010F44
- b _08010FDE
- .align 2, 0
-_08010F38: .4byte gBlockRecvBuffer
-_08010F3C: .4byte gLinkPlayers
-_08010F40:
- cmp r0, 0x3
- bne _08010FDE
-_08010F44:
- ldr r0, _08010F48 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010F48: .4byte gUnknown_202434C
-_08010F4C:
- ldr r0, _08010F50 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010F50: .4byte gUnknown_2024478
-_08010F54:
- ldr r2, _08010F74 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010F78
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010F86
- b _08010FAC
- .align 2, 0
-_08010F74: .4byte gLinkPlayers
-_08010F78:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010FAC
-_08010F86:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010F98
- cmp r2, 0x1
- bge _08010FA4
- cmp r2, 0
- beq _08010F9C
- b _08010FDE
-_08010F98:
- cmp r2, 0x3
- bne _08010FDE
-_08010F9C:
- ldr r0, _08010FA0 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010FA0: .4byte gUnknown_202434C
-_08010FA4:
- ldr r0, _08010FA8 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010FA8: .4byte gUnknown_2024478
-_08010FAC:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010FBE
- cmp r2, 0x1
- bge _08010FD4
- cmp r2, 0
- beq _08010FC2
- b _08010FDE
-_08010FBE:
- cmp r2, 0x3
- bne _08010FDE
-_08010FC2:
- ldr r0, _08010FD0 @ =gUnknown_20240F4
-_08010FC4:
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- b _08010FDE
- .align 2, 0
-_08010FD0: .4byte gUnknown_20240F4
-_08010FD4:
- ldr r0, _0801105C @ =gUnknown_2024220
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_08010FDE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010F20
- ldr r4, _08011060 @ =gPlayerParty
- adds r0, r4, 0
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- adds r0, 0x64
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- adds r0, 0xC8
- bl TryCorrectShedinjaLanguage
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl TryCorrectShedinjaLanguage
- movs r2, 0xC8
- lsls r2, 1
- adds r0, r4, r2
- bl TryCorrectShedinjaLanguage
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl TryCorrectShedinjaLanguage
- ldr r4, _08011064 @ =gEnemyParty
- adds r0, r4, 0
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- adds r0, 0x64
- bl TryCorrectShedinjaLanguage
- adds r0, r4, 0
- adds r0, 0xC8
- bl TryCorrectShedinjaLanguage
- movs r2, 0x96
- lsls r2, 1
- adds r0, r4, r2
- bl TryCorrectShedinjaLanguage
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl TryCorrectShedinjaLanguage
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r4, r2
- bl TryCorrectShedinjaLanguage
- ldr r1, _08011068 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_0801105C: .4byte gUnknown_2024220
-_08011060: .4byte gPlayerParty
-_08011064: .4byte gEnemyParty
-_08011068: .4byte gBattleCommunication
-_0801106C:
- bl sub_800D30C
- ldr r0, _08011080 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080110F0
- .align 2, 0
-_08011080: .4byte gBattleCommunication
-_08011084:
- ldr r0, _080110B8 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080110F0
- ldr r2, _080110BC @ =gPreBattleCallback1
- ldr r1, _080110C0 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _080110C4 @ =BattleMainCB1
- str r0, [r1]
- ldr r0, _080110C8 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _080110CC @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080110F0
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080110F0
- .align 2, 0
-_080110B8: .4byte gUnknown_2023E83
-_080110BC: .4byte gPreBattleCallback1
-_080110C0: .4byte gMain
-_080110C4: .4byte BattleMainCB1
-_080110C8: .4byte BattleMainCB2
-_080110CC: .4byte gBattleTypeFlags
-_080110D0:
- ldr r0, _080110FC @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080110DC:
- ldr r1, _080110FC @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080110F0
-_080110EA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080110F0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080110FC: .4byte gBattleCommunication
- thumb_func_end CB2_HandleStartMultiBattle
-
- thumb_func_start BattleMainCB2
-BattleMainCB2: @ 8011100
- push {lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- ldr r0, _08011160 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r0, _08011164 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r2, _08011168 @ =gSpecialVar_Result
- ldr r1, _0801116C @ =gBattleOutcome
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0x3
- strh r0, [r2]
- bl ResetPaletteFadeControl
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08011170 @ =CB2_QuitPokeDudeBattle
- bl SetMainCallback2
-_08011158:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08011160: .4byte gMain
-_08011164: .4byte gBattleTypeFlags
-_08011168: .4byte gSpecialVar_Result
-_0801116C: .4byte gBattleOutcome
-_08011170: .4byte CB2_QuitPokeDudeBattle
- thumb_func_end BattleMainCB2
-
- thumb_func_start FreeRestoreBattleData
-FreeRestoreBattleData: @ 8011174
- push {lr}
- ldr r1, _080111AC @ =gMain
- ldr r0, _080111B0 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080111B4 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r2, 0x15]
- ldr r0, _080111B8 @ =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl ZeroEnemyPartyMons
- movs r0, 0x53
- bl m4aSongNumStop
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
- pop {r0}
- bx r0
- .align 2, 0
-_080111AC: .4byte gMain
-_080111B0: .4byte gPreBattleCallback1
-_080111B4: .4byte gScanlineEffect
-_080111B8: .4byte 0x00000439
- thumb_func_end FreeRestoreBattleData
-
- thumb_func_start CB2_QuitPokeDudeBattle
-CB2_QuitPokeDudeBattle: @ 80111BC
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080111E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080111DE
- bl FreeRestoreBattleData
- bl FreeAllWindowBuffers
- ldr r0, _080111E8 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_080111DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080111E4: .4byte gPaletteFade
-_080111E8: .4byte gMain
- thumb_func_end CB2_QuitPokeDudeBattle
-
- thumb_func_start sub_80111EC
-sub_80111EC: @ 80111EC
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080111F8 @ =sub_80111FC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080111F8: .4byte sub_80111FC
- thumb_func_end sub_80111EC
-
- thumb_func_start sub_80111FC
-sub_80111FC: @ 80111FC
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0x1
- beq _08011236
- cmp r6, 0x1
- bgt _08011212
- cmp r6, 0
- beq _08011218
- b _080112D0
-_08011212:
- cmp r6, 0x2
- beq _080112A0
- b _080112D0
-_08011218:
- ldr r4, _08011298 @ =gUnknown_2022BC0
- movs r0, 0x80
- lsls r0, 5
- bl AllocZeroed
- str r0, [r4]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x30]
- ldr r0, _0801129C @ =0x00000281
- strh r0, [r5, 0x32]
- strh r6, [r5, 0x34]
- movs r0, 0x1
- strh r0, [r5, 0x36]
-_08011236:
- ldrh r0, [r5, 0x36]
- subs r0, 0x1
- strh r0, [r5, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _080112D0
- movs r0, 0x2
- strh r0, [r5, 0x36]
- movs r1, 0x30
- ldrsh r2, [r5, r1]
- movs r3, 0x34
- ldrsh r0, [r5, r3]
- lsls r0, 5
- adds r2, r0
- movs r3, 0x32
- ldrsh r1, [r5, r3]
- subs r1, r0
- movs r3, 0
- ldr r0, _08011298 @ =gUnknown_2022BC0
- mov r12, r0
- lsls r7, r2, 1
- movs r4, 0x3D
- lsls r6, r1, 1
-_08011264:
- mov r1, r12
- ldr r0, [r1]
- lsls r2, r3, 1
- adds r1, r7, r0
- adds r1, r2, r1
- strh r4, [r1]
- adds r0, r6, r0
- adds r2, r0
- strh r4, [r2]
- adds r3, 0x2
- cmp r3, 0x1D
- ble _08011264
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080112D0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x20
- strh r0, [r5, 0x30]
- b _080112D0
- .align 2, 0
-_08011298: .4byte gUnknown_2022BC0
-_0801129C: .4byte 0x00000281
-_080112A0:
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080112D0
- ldr r4, _080112D8 @ =gUnknown_2022BC0
- ldr r0, [r4]
- cmp r0, 0
- beq _080112CA
- movs r2, 0x80
- lsls r2, 5
- movs r1, 0
- bl memset
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_080112CA:
- ldr r0, _080112DC @ =CB2_InitBattle
- bl SetMainCallback2
-_080112D0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080112D8: .4byte gUnknown_2022BC0
-_080112DC: .4byte CB2_InitBattle
- thumb_func_end sub_80111FC
-
- thumb_func_start CreateNPCTrainerParty
-CreateNPCTrainerParty: @ 80112E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08011304
- movs r0, 0
- b _080116AC
-_08011304:
- ldr r0, _08011334 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08011338 @ =0x00080908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _08011318
- b _0801169C
-_08011318:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0801133C @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0801167E
- .align 2, 0
-_08011334: .4byte gBattleTypeFlags
-_08011338: .4byte 0x00080908
-_0801133C: .4byte gTrainers
-_08011340:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _08011354
- movs r4, 0x80
- mov r10, r4
- b _08011366
-_08011354:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _08011366
- movs r2, 0x78
- mov r10, r2
-_08011366:
- movs r6, 0
- ldr r0, _080113BC @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0801139E
-_08011384:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08011384
-_0801139E:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08011454
- cmp r0, 0x1
- bgt _080113C0
- cmp r0, 0
- beq _080113CE
- b _0801166C
- .align 2, 0
-_080113BC: .4byte gTrainers
-_080113C0:
- cmp r0, 0x2
- bne _080113C6
- b _08011514
-_080113C6:
- cmp r0, 0x3
- bne _080113CC
- b _080115A8
-_080113CC:
- b _0801166C
-_080113CE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _08011450 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011410
- adds r3, r1, 0
- movs r7, 0xB
-_080113F4:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080113F4
-_08011410:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0801166C
- .align 2, 0
-_08011450: .4byte gSpeciesNames
-_08011454:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0801150C @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _08011496
- adds r3, r1, 0
- movs r4, 0xB
-_0801147A:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801147A
-_08011496:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_080114E0:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _08011510 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080114E0
- b _0801166C
- .align 2, 0
-_0801150C: .4byte gSpeciesNames
-_08011510: .4byte gBattleMoves+0x4
-_08011514:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080115A4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011556
- adds r3, r1, 0
- movs r7, 0xB
-_0801153A:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801153A
-_08011556:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0801166C
- .align 2, 0
-_080115A4: .4byte gSpeciesNames
-_080115A8:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080116BC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _080115EA
- adds r3, r1, 0
- movs r4, 0xB
-_080115CE:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080115CE
-_080115EA:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_08011642:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _080116C0 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08011642
-_0801166C:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _080116C4 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0801167E:
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011686
- b _08011340
-_08011686:
- ldr r2, _080116C8 @ =gBattleTypeFlags
- ldr r1, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x18]
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_0801169C:
- ldr r0, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_080116AC:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080116BC: .4byte gSpeciesNames
-_080116C0: .4byte gBattleMoves+0x4
-_080116C4: .4byte gTrainers
-_080116C8: .4byte gBattleTypeFlags
- thumb_func_end CreateNPCTrainerParty
-
- thumb_func_start sub_80116CC
-sub_80116CC: @ 80116CC
- push {lr}
- ldr r0, _080116EC @ =0x04000006
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _080116E6
- ldr r1, _080116F0 @ =0x04000008
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_080116E6:
- pop {r0}
- bx r0
- .align 2, 0
-_080116EC: .4byte 0x04000006
-_080116F0: .4byte 0x04000008
- thumb_func_end sub_80116CC
-
- thumb_func_start VBlankCB_Battle
-VBlankCB_Battle: @ 80116F4
- push {lr}
- bl Random
- ldr r0, _08011788 @ =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, _0801178C @ =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, _08011790 @ =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, _08011794 @ =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- ldr r0, _08011798 @ =gBattle_BG2_X
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- ldr r0, _0801179C @ =gBattle_BG2_Y
- ldrh r1, [r0]
- movs r0, 0x1A
- bl SetGpuReg
- ldr r0, _080117A0 @ =gBattle_BG3_X
- ldrh r1, [r0]
- movs r0, 0x1C
- bl SetGpuReg
- ldr r0, _080117A4 @ =gBattle_BG3_Y
- ldrh r1, [r0]
- movs r0, 0x1E
- bl SetGpuReg
- ldr r0, _080117A8 @ =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x40
- bl SetGpuReg
- ldr r0, _080117AC @ =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, _080117B0 @ =gBattle_WIN1H
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, _080117B4 @ =gBattle_WIN1V
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- .align 2, 0
-_08011788: .4byte gBattle_BG0_X
-_0801178C: .4byte gBattle_BG0_Y
-_08011790: .4byte gBattle_BG1_X
-_08011794: .4byte gBattle_BG1_Y
-_08011798: .4byte gBattle_BG2_X
-_0801179C: .4byte gBattle_BG2_Y
-_080117A0: .4byte gBattle_BG3_X
-_080117A4: .4byte gBattle_BG3_Y
-_080117A8: .4byte gBattle_WIN0H
-_080117AC: .4byte gBattle_WIN0V
-_080117B0: .4byte gBattle_WIN1H
-_080117B4: .4byte gBattle_WIN1V
- thumb_func_end VBlankCB_Battle
-
- thumb_func_start nullsub_9
-nullsub_9: @ 80117B8
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_80117BC
-sub_80117BC: @ 80117BC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080117DC
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080117EE
-_080117DC:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_080117EE:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08011822
- ldr r4, _08011828 @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_08011822:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte 0x00002710
- thumb_func_end sub_80117BC
-
- thumb_func_start sub_801182C
-sub_801182C: @ 801182C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08011848 @ =sub_80117BC
- str r0, [r4, 0x1C]
- movs r0, 0x61
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011848: .4byte sub_80117BC
- thumb_func_end sub_801182C
-
- thumb_func_start sub_801184C
-sub_801184C: @ 801184C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _08011894 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- ldrb r2, [r0]
- ldr r0, _08011898 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080118BC
- ldr r1, _0801189C @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _080118A8
- cmp r0, 0x1
- bgt _080118A0
- cmp r0, 0
- beq _080118BC
- b _080118C4
- .align 2, 0
-_08011894: .4byte gBattleStruct
-_08011898: .4byte gBattleTypeFlags
-_0801189C: .4byte gLinkPlayers
-_080118A0:
- cmp r0, 0x2
- beq _080118BC
- cmp r0, 0x3
- bne _080118C4
-_080118A8:
- ldr r0, _080118B4 @ =gEnemyParty
- str r0, [sp, 0x4]
- ldr r1, _080118B8 @ =gPlayerParty
- str r1, [sp, 0x8]
- b _080118C4
- .align 2, 0
-_080118B4: .4byte gEnemyParty
-_080118B8: .4byte gPlayerParty
-_080118BC:
- ldr r2, _08011A10 @ =gPlayerParty
- str r2, [sp, 0x4]
- ldr r3, _08011A14 @ =gEnemyParty
- str r3, [sp, 0x8]
-_080118C4:
- movs r7, 0
- movs r0, 0
- mov r8, r0
- ldr r1, [sp]
- lsls r1, 2
- str r1, [sp, 0xC]
- movs r2, 0xCE
- lsls r2, 1
- mov r10, r2
- mov r9, r0
-_080118D8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r3, [sp, 0x4]
- adds r4, r3, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _0801191C
- cmp r6, 0
- beq _0801191C
- cmp r1, 0
- bne _0801191C
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0801191C:
- cmp r5, 0
- beq _08011948
- cmp r6, 0
- beq _08011934
- cmp r5, r10
- beq _0801192C
- cmp r1, 0
- beq _08011934
-_0801192C:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_08011934:
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _08011948
- cmp r6, 0
- bne _08011948
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_08011948:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _080118D8
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_08011972:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119B6
- cmp r6, 0
- beq _080119B6
- cmp r1, 0
- bne _080119B6
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_080119B6:
- cmp r5, 0
- beq _080119E2
- cmp r6, 0
- beq _080119CE
- cmp r5, r10
- beq _080119C6
- cmp r1, 0
- beq _080119CE
-_080119C6:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_080119CE:
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119E2
- cmp r6, 0
- bne _080119E2
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_080119E2:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08011972
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A10: .4byte gPlayerParty
-_08011A14: .4byte gEnemyParty
-_08011A18: .4byte gTasks
- thumb_func_end sub_801184C
-
- thumb_func_start sub_8011A1C
-sub_8011A1C: @ 8011A1C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08011B40 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _08011B44 @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _08011B48 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _08011B4C @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_08011A80:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08011A80
- movs r1, 0x50
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- ldr r3, _08011B54 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08011A9C:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08011A9C
- bl ResetPaletteFade
- ldr r0, _08011B58 @ =gBattle_BG0_X
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08011B5C @ =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, _08011B60 @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, _08011B64 @ =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, _08011B68 @ =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, _08011B6C @ =gBattle_BG2_Y
- strh r4, [r0]
- ldr r0, _08011B70 @ =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, _08011B74 @ =gBattle_BG3_Y
- strh r4, [r0]
- bl sub_800F34C
- ldr r0, _08011B78 @ =gBattleTextboxPalette
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800F380
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- bl FreeAllSpritePalettes
- ldr r1, _08011B7C @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08011B80 @ =VBlankCB_Battle
- bl SetVBlankCallback
- ldr r0, _08011B84 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08011B88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_801184C
- ldr r0, _08011B8C @ =sub_8011B94
- bl SetMainCallback2
- ldr r0, _08011B90 @ =gBattleCommunication
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011B40: .4byte 0x05006000
-_08011B44: .4byte 0x00005051
-_08011B48: .4byte gBattle_WIN0H
-_08011B4C: .4byte gBattle_WIN0V
-_08011B50: .4byte gScanlineEffectRegBuffers
-_08011B54: .4byte 0x0000ff10
-_08011B58: .4byte gBattle_BG0_X
-_08011B5C: .4byte gBattle_BG0_Y
-_08011B60: .4byte gBattle_BG1_X
-_08011B64: .4byte gBattle_BG1_Y
-_08011B68: .4byte gBattle_BG2_X
-_08011B6C: .4byte gBattle_BG2_Y
-_08011B70: .4byte gBattle_BG3_X
-_08011B74: .4byte gBattle_BG3_Y
-_08011B78: .4byte gBattleTextboxPalette
-_08011B7C: .4byte gReservedSpritePaletteCount
-_08011B80: .4byte VBlankCB_Battle
-_08011B84: .4byte sub_800F6FC
-_08011B88: .4byte gTasks
-_08011B8C: .4byte sub_8011B94
-_08011B90: .4byte gBattleCommunication
- thumb_func_end sub_8011A1C
-
- thumb_func_start sub_8011B94
-sub_8011B94: @ 8011B94
- push {lr}
- bl sub_8011BB0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8011B94
-
thumb_func_start sub_8011BB0
sub_8011BB0: @ 8011BB0
push {r4,lr}
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 64c45e06b..53ad48895 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -743,8 +743,8 @@ _0807FC54: .4byte gSpecialVar_Result
_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_807FBF0
- thumb_func_start sub_807FC5C
-sub_807FC5C: @ 807FC5C
+ thumb_func_start BattleSetup_GetTerrainId
+BattleSetup_GetTerrainId: @ 807FC5C
push {r4,r5,lr}
sub sp, 0x4
mov r4, sp
@@ -891,7 +891,7 @@ _0807FD88:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_807FC5C
+ thumb_func_end BattleSetup_GetTerrainId
thumb_func_start GetBattleTransitionTypeByMap
GetBattleTransitionTypeByMap: @ 807FD90
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index fd1cf3dc6..8f896ea7c 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -4012,8 +4012,8 @@ GetRfuPlayerCount: @ 80FA4EC
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end GetRfuPlayerCount
- thumb_func_start IsRfuTaskFinished
-IsRfuTaskFinished: @ 80FA4F8
+ thumb_func_start IsLinkRfuTaskFinished
+IsLinkRfuTaskFinished: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end IsRfuTaskFinished
+ thumb_func_end IsLinkRfuTaskFinished
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
diff --git a/asm/trade.s b/asm/trade.s
index 3573dcfaf..426bbb112 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08054396