summaryrefslogtreecommitdiff
path: root/asm/link.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/link.s')
-rw-r--r--asm/link.s5196
1 files changed, 0 insertions, 5196 deletions
diff --git a/asm/link.s b/asm/link.s
deleted file mode 100644
index 7275ebbd2..000000000
--- a/asm/link.s
+++ /dev/null
@@ -1,5196 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8009480
-sub_8009480: @ 8009480
- push {lr}
- ldr r0, _08009494 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08009498
- movs r0, 0
- b _080094CE
- .align 2, 0
-_08009494: .4byte gUnknown_203ADFA
-_08009498:
- bl sub_800B1F4
- bl sub_80F86F4
- movs r0, 0x1
- bl sub_80FB128
- bl sub_80FD3A4
- ldr r1, _080094C0 @ =0x00008001
- cmp r0, r1
- beq _080094C4
- bl sub_800B210
- bl CloseLink
- bl RestoreSerialTimer3IntrHandlers
- movs r0, 0
- b _080094CE
- .align 2, 0
-_080094C0: .4byte 0x00008001
-_080094C4:
- bl rfu_REQ_stopMode
- bl rfu_waitREQComplete
- movs r0, 0x1
-_080094CE:
- pop {r1}
- bx r1
- thumb_func_end sub_8009480
-
- thumb_func_start sub_80094D4
-sub_80094D4: @ 80094D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_80094D4
-
- thumb_func_start sub_80094E4
-sub_80094E4: @ 80094E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r4, [sp, 0x18]
- lsls r5, 24
- lsrs r5, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08009540 @ =gUnknown_8232578
- lsls r1, r5, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r3, _08009544 @ =0x040000d4
- ldr r0, _08009548 @ =gUnknown_8232598
- str r0, [r3]
- lsls r2, r7, 14
- lsls r0, r4, 5
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- adds r2, r0
- str r2, [r3, 0x4]
- ldr r0, _0800954C @ =0x80001000
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- ldr r0, _08009550 @ =gUnknown_3003F70
- str r6, [r0]
- str r5, [r0, 0x4]
- str r4, [r0, 0x8]
- mov r0, r8
- cmp r0, 0x2
- beq _0800956E
- cmp r0, 0x2
- bgt _08009554
- cmp r0, 0x1
- beq _0800955C
- b _08009590
- .align 2, 0
-_08009540: .4byte gUnknown_8232578
-_08009544: .4byte 0x040000d4
-_08009548: .4byte gUnknown_8232598
-_0800954C: .4byte 0x80001000
-_08009550: .4byte gUnknown_3003F70
-_08009554:
- mov r0, r8
- cmp r0, 0x3
- beq _08009580
- b _08009590
-_0800955C:
- lsls r1, r6, 8
- movs r0, 0x1
- orrs r1, r0
- lsls r0, r7, 2
- orrs r1, r0
- movs r0, 0xA
- bl SetGpuReg
- b _08009590
-_0800956E:
- lsls r1, r6, 8
- movs r0, 0x1
- orrs r1, r0
- lsls r0, r7, 2
- orrs r1, r0
- movs r0, 0xC
- bl SetGpuReg
- b _08009590
-_08009580:
- lsls r1, r6, 8
- movs r0, 0x1
- orrs r1, r0
- lsls r0, r7, 2
- orrs r1, r0
- movs r0, 0xE
- bl SetGpuReg
-_08009590:
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl SetGpuReg
- adds r4, 0x12
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetGpuReg
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80094E4
-
- thumb_func_start sub_80095BC
-sub_80095BC: @ 80095BC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r6, r1, 0
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08009628 @ =gUnknown_8232578
- mov r2, r8
- lsls r1, r2, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r2, _0800962C @ =0x040000d4
- ldr r0, _08009630 @ =gUnknown_8232598
- str r0, [r2]
- lsls r0, r5, 14
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, _08009634 @ =0x80001000
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _08009638 @ =gUnknown_3003F70
- str r4, [r0]
- mov r1, r8
- str r1, [r0, 0x4]
- movs r1, 0
- str r1, [r0, 0x8]
- ldr r0, _0800963C @ =gBGControlRegOffsets
- adds r6, r0
- ldrb r0, [r6]
- lsls r4, 8
- lsls r5, 2
- orrs r4, r5
- adds r1, r4, 0
- bl SetGpuReg
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08009628: .4byte gUnknown_8232578
-_0800962C: .4byte 0x040000d4
-_08009630: .4byte gUnknown_8232598
-_08009634: .4byte 0x80001000
-_08009638: .4byte gUnknown_3003F70
-_0800963C: .4byte gBGControlRegOffsets
- thumb_func_end sub_80095BC
-
- thumb_func_start sub_8009640
-sub_8009640: @ 8009640
- push {r4,lr}
- sub sp, 0x4
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _080096D4 @ =sub_800978C
- bl SetVBlankCallback
- bl ResetBlockSend
- ldr r1, _080096D8 @ =gLinkType
- ldr r2, _080096DC @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8009804
- ldr r0, _080096E0 @ =gMain
- ldrh r0, [r0, 0x24]
- bl SeedRng
- movs r4, 0
-_08009670:
- bl Random
- ldr r1, _080096E4 @ =gSaveBlock2Ptr
- ldr r1, [r1]
- adds r1, 0xA
- adds r1, r4
- strb r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08009670
- movs r4, 0
- str r4, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x4
- movs r3, 0
- bl sub_80094E4
- movs r1, 0xAA
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, _080096E8 @ =sub_80094D4
- movs r1, 0
- bl CreateTask
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _080096EC @ =gUnknown_3000E58
- str r4, [r0]
- bl sub_8009708
- ldr r0, _080096F0 @ =task00_link_test
- movs r1, 0
- bl CreateTask
- ldr r0, _080096F4 @ =c2_08009A8C
- bl SetMainCallback2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080096D4: .4byte sub_800978C
-_080096D8: .4byte gLinkType
-_080096DC: .4byte 0x00001111
-_080096E0: .4byte gMain
-_080096E4: .4byte gSaveBlock2Ptr
-_080096E8: .4byte sub_80094D4
-_080096EC: .4byte gUnknown_3000E58
-_080096F0: .4byte task00_link_test
-_080096F4: .4byte c2_08009A8C
- thumb_func_end sub_8009640
-
- thumb_func_start sub_80096F8
-sub_80096F8: @ 80096F8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08009704 @ =gLocalLinkPlayer
- strh r0, [r1, 0x18]
- bx lr
- .align 2, 0
-_08009704: .4byte gLocalLinkPlayer
- thumb_func_end sub_80096F8
-
- thumb_func_start sub_8009708
-sub_8009708: @ 8009708
- push {r4,r5,lr}
- ldr r5, _08009774 @ =gLocalLinkPlayer
- ldr r4, _08009778 @ =gSaveBlock2Ptr
- ldr r1, [r4]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- str r2, [r5, 0x4]
- adds r0, r5, 0
- adds r0, 0x8
- bl StringCopy
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- strb r0, [r5, 0x13]
- ldr r0, _0800977C @ =gLinkType
- ldrh r0, [r0]
- str r0, [r5, 0x14]
- ldr r0, _08009780 @ =gGameLanguage
- ldrb r0, [r0]
- strh r0, [r5, 0x1A]
- ldr r0, _08009784 @ =gGameVersion
- ldrb r0, [r0]
- movs r2, 0x80
- lsls r2, 7
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r5]
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x2]
- bl sub_806E25C
- strb r0, [r5, 0x10]
- ldr r0, _08009788 @ =0x00000844
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0800976E
- ldrb r0, [r5, 0x10]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x10]
-_0800976E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08009774: .4byte gLocalLinkPlayer
-_08009778: .4byte gSaveBlock2Ptr
-_0800977C: .4byte gLinkType
-_08009780: .4byte gGameLanguage
-_08009784: .4byte gGameVersion
-_08009788: .4byte 0x00000844
- thumb_func_end sub_8009708
-
- thumb_func_start sub_800978C
-sub_800978C: @ 800978C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_800978C
-
- thumb_func_start sub_80097A0
-sub_80097A0: @ 80097A0
- push {lr}
- ldr r3, _080097C0 @ =gLinkOpen
- ldr r1, _080097C4 @ =gUnknown_3003F50
- ldr r2, _080097C8 @ =0x0000efff
- adds r0, r1, 0
- adds r0, 0xE
-_080097AC:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080097AC
- movs r0, 0x1
- strb r0, [r3]
- bl sub_800B2F4
- pop {r0}
- bx r0
- .align 2, 0
-_080097C0: .4byte gLinkOpen
-_080097C4: .4byte gUnknown_3003F50
-_080097C8: .4byte 0x0000efff
- thumb_func_end sub_80097A0
-
- thumb_func_start task02_080097CC
-task02_080097CC: @ 80097CC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080097FC @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080097F6
- ldr r1, _08009800 @ =gUnknown_3003F84
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r2, 0
- bl DestroyTask
-_080097F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080097FC: .4byte gTasks
-_08009800: .4byte gUnknown_3003F84
- thumb_func_end task02_080097CC
-
- thumb_func_start sub_8009804
-sub_8009804: @ 8009804
- push {r4-r6,lr}
- ldr r0, _0800984C @ =gWirelessCommType
- ldrb r4, [r0]
- cmp r4, 0
- bne _08009878
- bl sub_800B388
- bl sub_80097A0
- ldr r1, _08009850 @ =gUnknown_3003F80
- ldr r0, _08009854 @ =sub_800A720
- str r0, [r1]
- ldr r0, _08009858 @ =gLinkVSyncDisabled
- strb r4, [r0]
- ldr r0, _0800985C @ =gUnknown_3003EAC
- strb r4, [r0]
- ldr r0, _08009860 @ =gUnknown_3003F38
- strb r4, [r0]
- bl ResetBlockReceivedFlags
- bl ResetBlockSend
- ldr r0, _08009864 @ =gUnknown_3000E4C
- str r4, [r0]
- ldr r0, _08009868 @ =gUnknown_3003F28
- strb r4, [r0]
- ldr r0, _0800986C @ =gUnknown_3003F24
- strb r4, [r0]
- ldr r0, _08009870 @ =gUnknown_3003F34
- strh r4, [r0]
- ldr r0, _08009874 @ =task02_080097CC
- movs r1, 0x2
- bl CreateTask
- b _0800987C
- .align 2, 0
-_0800984C: .4byte gWirelessCommType
-_08009850: .4byte gUnknown_3003F80
-_08009854: .4byte sub_800A720
-_08009858: .4byte gLinkVSyncDisabled
-_0800985C: .4byte gUnknown_3003EAC
-_08009860: .4byte gUnknown_3003F38
-_08009864: .4byte gUnknown_3000E4C
-_08009868: .4byte gUnknown_3003F28
-_0800986C: .4byte gUnknown_3003F24
-_08009870: .4byte gUnknown_3003F34
-_08009874: .4byte task02_080097CC
-_08009878:
- bl sub_80F86F4
-_0800987C:
- ldr r1, _080098A8 @ =gReceivedRemoteLinkPlayers
- movs r0, 0
- strb r0, [r1]
- movs r1, 0
- ldr r6, _080098AC @ =gUnknown_3003EB8
- movs r2, 0
- movs r5, 0x1
- ldr r4, _080098B0 @ =gUnknown_3003F30
- ldr r3, _080098B4 @ =gUnknown_3003F2C
-_0800988E:
- adds r0, r1, r6
- strb r5, [r0]
- adds r0, r1, r4
- strb r2, [r0]
- adds r0, r1, r3
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0x3
- ble _0800988E
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080098A8: .4byte gReceivedRemoteLinkPlayers
-_080098AC: .4byte gUnknown_3003EB8
-_080098B0: .4byte gUnknown_3003F30
-_080098B4: .4byte gUnknown_3003F2C
- thumb_func_end sub_8009804
-
- thumb_func_start CloseLink
-CloseLink: @ 80098B8
- push {r4,lr}
- ldr r0, _080098DC @ =gReceivedRemoteLinkPlayers
- movs r4, 0
- strb r4, [r0]
- ldr r0, _080098E0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080098CC
- bl sub_80F8DC0
-_080098CC:
- ldr r0, _080098E4 @ =gLinkOpen
- strb r4, [r0]
- bl sub_800B29C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080098DC: .4byte gReceivedRemoteLinkPlayers
-_080098E0: .4byte gWirelessCommType
-_080098E4: .4byte gLinkOpen
- thumb_func_end CloseLink
-
- thumb_func_start TestBlockTransfer
-TestBlockTransfer: @ 80098E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, _080099AC @ =gUnknown_3000E5C
- ldr r4, _080099B0 @ =gUnknown_3000E08
- ldrb r0, [r5]
- ldrh r1, [r4]
- cmp r0, r1
- beq _0800990C
- ldrh r0, [r4]
- movs r1, 0x2
- movs r2, 0x3
- movs r3, 0x2
- bl sub_800A684
- ldrh r0, [r4]
- strb r0, [r5]
-_0800990C:
- movs r5, 0
- ldr r7, _080099B4 @ =gUnknown_3000E18
-_08009910:
- ldr r0, _080099B8 @ =gUnknown_3000E60
- adds r6, r5, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r7
- ldrb r0, [r6]
- ldrh r1, [r4]
- cmp r0, r1
- beq _08009938
- ldrh r0, [r4]
- adds r2, r5, 0x4
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x2
- movs r3, 0x2
- bl sub_800A684
- ldrh r0, [r4]
- strb r0, [r6]
-_08009938:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08009910
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bne _0800999E
- movs r5, 0
- ldr r0, _080099B4 @ =gUnknown_3000E18
- mov r9, r0
- ldr r1, _080099BC @ =0x00000342
- mov r8, r1
-_08009958:
- adds r0, r7, 0
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08009994
- lsls r0, r5, 8
- ldr r1, _080099C0 @ =gBlockRecvBuffer
- adds r0, r1
- lsls r4, r5, 1
- adds r1, r4, r5
- lsls r1, 2
- add r1, r9
- ldrh r1, [r1, 0x2]
- bl LinkTestCalcBlockChecksum
- ldr r1, _080099C4 @ =gUnknown_3003F88
- adds r4, r1
- movs r6, 0
- strh r0, [r4]
- adds r0, r5, 0
- bl ResetBlockReceivedFlag
- ldrh r0, [r4]
- cmp r0, r8
- beq _08009994
- ldr r0, _080099C8 @ =gLinkTestDebugValuesEnabled
- strb r6, [r0]
- ldr r0, _080099CC @ =gUnknown_2022111
- strb r6, [r0]
-_08009994:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08009958
-_0800999E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080099AC: .4byte gUnknown_3000E5C
-_080099B0: .4byte gUnknown_3000E08
-_080099B4: .4byte gUnknown_3000E18
-_080099B8: .4byte gUnknown_3000E60
-_080099BC: .4byte 0x00000342
-_080099C0: .4byte gBlockRecvBuffer
-_080099C4: .4byte gUnknown_3003F88
-_080099C8: .4byte gLinkTestDebugValuesEnabled
-_080099CC: .4byte gUnknown_2022111
- thumb_func_end TestBlockTransfer
-
- thumb_func_start LinkTestProcessKeyInput
-LinkTestProcessKeyInput: @ 80099D0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _08009A70 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080099E6
- ldr r1, _08009A74 @ =gUnknown_3003F84
- movs r0, 0x1
- strb r0, [r1]
-_080099E6:
- ldrh r1, [r4, 0x2C]
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080099FA
- ldr r0, _08009A78 @ =gHeap + 0x4000
- ldr r1, _08009A7C @ =0x00002004
- bl InitBlockSend
-_080099FA:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _08009A16
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08009A16:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08009A26
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
-_08009A26:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08009A38
- movs r0, 0x1
- bl TrySavingData
-_08009A38:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08009A46
- bl sub_800AAC0
-_08009A46:
- ldr r0, _08009A80 @ =gLinkTestDebugValuesEnabled
- ldrb r0, [r0]
- cmp r0, 0
- beq _08009A66
- ldr r2, [r4, 0x24]
- ldr r0, _08009A84 @ =gLinkVSyncDisabled
- ldrb r1, [r0]
- ldr r0, _08009A88 @ =gUnknown_3003F80
- ldr r0, [r0]
- cmp r0, 0
- bne _08009A60
- movs r0, 0x10
- orrs r1, r0
-_08009A60:
- adds r0, r2, 0
- bl SetLinkDebugValues
-_08009A66:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08009A70: .4byte gMain
-_08009A74: .4byte gUnknown_3003F84
-_08009A78: .4byte gHeap + 0x4000
-_08009A7C: .4byte 0x00002004
-_08009A80: .4byte gLinkTestDebugValuesEnabled
-_08009A84: .4byte gLinkVSyncDisabled
-_08009A88: .4byte gUnknown_3003F80
- thumb_func_end LinkTestProcessKeyInput
-
- thumb_func_start c2_08009A8C
-c2_08009A8C: @ 8009A8C
- push {lr}
- bl LinkTestProcessKeyInput
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl TestBlockTransfer
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end c2_08009A8C
-
- thumb_func_start LinkMain2
-LinkMain2: @ 8009AB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _08009AC0 @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0
- bne _08009AC4
- movs r0, 0
- b _08009B0C
- .align 2, 0
-_08009AC0: .4byte gLinkOpen
-_08009AC4:
- movs r1, 0
- ldr r5, _08009B14 @ =gUnknown_3003EC4
- ldr r3, _08009B18 @ =gUnknown_3003F50
- movs r2, 0
-_08009ACC:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _08009ACC
- ldrh r0, [r4]
- strh r0, [r5]
- ldr r0, _08009B1C @ =gUnknown_3003F20
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08009B08
- ldr r0, _08009B20 @ =0x04000128
- ldr r0, [r0]
- lsls r0, 26
- lsrs r0, 30
- bl sub_8009B70
- ldr r0, _08009B24 @ =gUnknown_3003F80
- ldr r0, [r0]
- cmp r0, 0
- beq _08009B04
- bl _call_via_r0
-_08009B04:
- bl sub_800AC58
-_08009B08:
- ldr r0, _08009B1C @ =gUnknown_3003F20
- ldrh r0, [r0]
-_08009B0C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08009B14: .4byte gUnknown_3003EC4
-_08009B18: .4byte gUnknown_3003F50
-_08009B1C: .4byte gUnknown_3003F20
-_08009B20: .4byte 0x04000128
-_08009B24: .4byte gUnknown_3003F80
- thumb_func_end LinkMain2
-
- thumb_func_start HandleReceiveRemoteLinkPlayer
-HandleReceiveRemoteLinkPlayer: @ 8009B28
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r1, _08009B3C @ =gUnknown_3003EB8
- adds r0, r1
- strb r5, [r0]
- movs r4, 0
- adds r6, r1, 0
- b _08009B48
- .align 2, 0
-_08009B3C: .4byte gUnknown_3003EB8
-_08009B40:
- adds r0, r4, r6
- ldrb r0, [r0]
- adds r5, r0
- adds r4, 0x1
-_08009B48:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _08009B40
- cmp r5, 0
- bne _08009B64
- ldr r1, _08009B6C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r1]
- cmp r0, 0
- bne _08009B64
- movs r0, 0x1
- strb r0, [r1]
-_08009B64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08009B6C: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end HandleReceiveRemoteLinkPlayer
-
- thumb_func_start sub_8009B70
-sub_8009B70: @ 8009B70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
-_08009B7E:
- ldr r0, _08009BC8 @ =gUnknown_3003E60
- lsls r1, r6, 1
- adds r3, r1, r0
- movs r0, 0
- strh r0, [r3]
- lsls r4, r6, 4
- ldr r5, _08009BCC @ =gRecvCmds
- adds r2, r4, r5
- ldrh r0, [r2]
- mov r12, r1
- adds r7, r6, 0x1
- str r7, [sp]
- cmp r0, 0
- bne _08009B9C
- b _08009E3E
-_08009B9C:
- ldrh r1, [r2]
- ldr r0, _08009BD0 @ =0x00005fff
- cmp r1, r0
- bne _08009BA6
- b _08009DF0
-_08009BA6:
- cmp r1, r0
- bgt _08009BF4
- ldr r0, _08009BD4 @ =0x00004444
- cmp r1, r0
- bne _08009BB2
- b _08009E34
-_08009BB2:
- cmp r1, r0
- bgt _08009BE0
- ldr r0, _08009BD8 @ =0x00002222
- cmp r1, r0
- beq _08009C38
- ldr r0, _08009BDC @ =0x00002ffe
- cmp r1, r0
- bne _08009BC4
- b _08009DF8
-_08009BC4:
- b _08009E3E
- .align 2, 0
-_08009BC8: .4byte gUnknown_3003E60
-_08009BCC: .4byte gRecvCmds
-_08009BD0: .4byte 0x00005fff
-_08009BD4: .4byte 0x00004444
-_08009BD8: .4byte 0x00002222
-_08009BDC: .4byte 0x00002ffe
-_08009BE0:
- ldr r0, _08009BF0 @ =0x00005555
- cmp r1, r0
- beq _08009C88
- adds r0, 0x11
- cmp r1, r0
- beq _08009C88
- b _08009E3E
- .align 2, 0
-_08009BF0: .4byte 0x00005555
-_08009BF4:
- ldr r0, _08009C10 @ =0x0000bbbb
- cmp r1, r0
- beq _08009C94
- cmp r1, r0
- bgt _08009C1C
- ldr r0, _08009C14 @ =0x00008888
- cmp r1, r0
- beq _08009CC0
- ldr r0, _08009C18 @ =0x0000aaaa
- cmp r1, r0
- bne _08009C0C
- b _08009E08
-_08009C0C:
- b _08009E3E
- .align 2, 0
-_08009C10: .4byte 0x0000bbbb
-_08009C14: .4byte 0x00008888
-_08009C18: .4byte 0x0000aaaa
-_08009C1C:
- ldr r0, _08009C30 @ =0x0000cafe
- cmp r1, r0
- bne _08009C24
- b _08009E34
-_08009C24:
- ldr r0, _08009C34 @ =0x0000cccc
- cmp r1, r0
- bne _08009C2C
- b _08009E0E
-_08009C2C:
- b _08009E3E
- .align 2, 0
-_08009C30: .4byte 0x0000cafe
-_08009C34: .4byte 0x0000cccc
-_08009C38:
- bl sub_8009708
- ldr r0, _08009C7C @ =gUnknown_3003E70
- adds r2, r0, 0
- adds r2, 0x10
- ldr r1, _08009C80 @ =gLocalLinkPlayer
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldr r1, [r1]
- str r1, [r2]
- ldr r4, _08009C84 @ =gUnknown_82345C0
- adds r2, r0, 0
- adds r1, r4, 0
- ldm r1!, {r5-r7}
- stm r2!, {r5-r7}
- ldrh r3, [r1]
- strh r3, [r2]
- ldrb r1, [r1, 0x2]
- strb r1, [r2, 0x2]
- adds r1, r0, 0
- adds r1, 0x2C
- ldm r4!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldrh r2, [r4]
- strh r2, [r1]
- ldrb r2, [r4, 0x2]
- strb r2, [r1, 0x2]
- movs r1, 0x3C
- bl InitBlockSend
- b _08009E3E
- .align 2, 0
-_08009C7C: .4byte gUnknown_3003E70
-_08009C80: .4byte gLocalLinkPlayer
-_08009C84: .4byte gUnknown_82345C0
-_08009C88:
- ldr r1, _08009C90 @ =gUnknown_3003F28
- movs r0, 0x1
- strb r0, [r1]
- b _08009E3E
- .align 2, 0
-_08009C90: .4byte gUnknown_3003F28
-_08009C94:
- mov r7, r12
- adds r1, r7, r6
- lsls r1, 2
- ldr r0, _08009CB8 @ =gUnknown_3000E18
- adds r1, r0
- movs r2, 0
- strh r2, [r1]
- ldr r0, _08009CBC @ =gRecvCmds
- adds r0, 0x2
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- ldr r0, _08009CBC @ =gRecvCmds
- adds r0, 0x4
- adds r0, r4, r0
- ldrh r0, [r0]
- strb r0, [r1, 0x9]
- b _08009E3E
- .align 2, 0
-_08009CB8: .4byte gUnknown_3000E18
-_08009CBC: .4byte gRecvCmds
-_08009CC0:
- mov r3, r12
- adds r0, r3, r6
- lsls r0, 2
- ldr r5, _08009D04 @ =gUnknown_3000E18
- adds r3, r0, r5
- ldrh r1, [r3, 0x2]
- movs r0, 0x80
- lsls r0, 1
- adds r7, r5, 0
- mov r10, r7
- cmp r1, r0
- bls _08009D10
- ldr r0, _08009D08 @ =gDecompressionBuffer
- mov r8, r0
- movs r2, 0
- adds r5, r3, 0
- ldr r7, _08009D0C @ =gRecvCmds
- adds r3, r4, 0
-_08009CE4:
- ldrh r1, [r5]
- lsrs r1, 1
- adds r1, r2
- lsls r1, 1
- add r1, r8
- adds r2, 0x1
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r2, 16
- lsrs r2, 16
- cmp r2, 0x6
- bls _08009CE4
- b _08009D40
- .align 2, 0
-_08009D04: .4byte gUnknown_3000E18
-_08009D08: .4byte gDecompressionBuffer
-_08009D0C: .4byte gRecvCmds
-_08009D10:
- movs r2, 0
- ldr r1, _08009DC4 @ =gBlockRecvBuffer
- mov r9, r1
- adds r7, r3, 0
- ldr r3, _08009DC8 @ =gRecvCmds
- mov r8, r3
- lsls r5, r6, 8
- adds r3, r4, 0
-_08009D20:
- ldrh r1, [r7]
- lsrs r1, 1
- adds r1, r2
- lsls r1, 1
- adds r1, r5
- add r1, r9
- adds r2, 0x1
- lsls r0, r2, 1
- adds r0, r3
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r2, 16
- lsrs r2, 16
- cmp r2, 0x6
- bls _08009D20
-_08009D40:
- mov r4, r12
- adds r1, r4, r6
- lsls r1, 2
- add r1, r10
- ldrh r0, [r1]
- adds r0, 0xE
- movs r3, 0
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- bcc _08009E3E
- ldr r0, _08009DCC @ =gUnknown_3003EB8
- adds r0, r6, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08009DE6
- lsls r1, r6, 8
- ldr r0, _08009DC4 @ =gBlockRecvBuffer
- adds r1, r0
- mov r8, r1
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- ldr r1, _08009DD0 @ =gLinkPlayers
- adds r2, r0, r1
- adds r1, r2, 0
- mov r0, r8
- adds r0, 0x10
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r0, [r0]
- str r0, [r1]
- ldrb r0, [r2]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08009D9A
- strb r3, [r2, 0x12]
- strb r3, [r2, 0x11]
- strb r3, [r2, 0x10]
-_08009D9A:
- adds r0, r2, 0
- bl sub_800B284
- ldr r5, _08009DD4 @ =gUnknown_82345C0
- mov r0, r8
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- bne _08009DBC
- mov r0, r8
- adds r0, 0x2C
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- beq _08009DDC
-_08009DBC:
- ldr r0, _08009DD8 @ =c2_800ACD4
- bl SetMainCallback2
- b _08009E3E
- .align 2, 0
-_08009DC4: .4byte gBlockRecvBuffer
-_08009DC8: .4byte gRecvCmds
-_08009DCC: .4byte gUnknown_3003EB8
-_08009DD0: .4byte gLinkPlayers
-_08009DD4: .4byte gUnknown_82345C0
-_08009DD8: .4byte c2_800ACD4
-_08009DDC:
- lsls r0, r6, 24
- lsrs r0, 24
- bl HandleReceiveRemoteLinkPlayer
- b _08009E3E
-_08009DE6:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_800A524
- b _08009E3E
-_08009DF0:
- ldr r0, _08009DF4 @ =gUnknown_3003F30
- b _08009DFA
- .align 2, 0
-_08009DF4: .4byte gUnknown_3003F30
-_08009DF8:
- ldr r0, _08009E04 @ =gUnknown_3003F2C
-_08009DFA:
- adds r0, r6, r0
- movs r1, 0x1
- strb r1, [r0]
- b _08009E3E
- .align 2, 0
-_08009E04: .4byte gUnknown_3003F2C
-_08009E08:
- bl sub_800A3CC
- b _08009E3E
-_08009E0E:
- ldr r3, _08009E2C @ =gUnknown_8234598
- ldr r0, _08009E30 @ =gRecvCmds
- adds r0, 0x2
- adds r0, r4, r0
- ldrh r2, [r0]
- lsls r2, 3
- adds r0, r2, r3
- ldr r1, [r0]
- adds r3, 0x4
- adds r2, r3
- ldrh r2, [r2]
- movs r0, 0
- bl SendBlock
- b _08009E3E
- .align 2, 0
-_08009E2C: .4byte gUnknown_8234598
-_08009E30: .4byte gRecvCmds
-_08009E34:
- ldr r0, _08009E5C @ =gRecvCmds
- adds r0, 0x2
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r3]
-_08009E3E:
- ldr r5, [sp]
- lsls r0, r5, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08009E4A
- b _08009B7E
-_08009E4A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009E5C: .4byte gRecvCmds
- thumb_func_end sub_8009B70
-
- thumb_func_start sub_8009E60
-sub_8009E60: @ 8009E60
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08009E8C @ =0x00006666
- cmp r2, r0
- beq _08009F30
- cmp r2, r0
- bgt _08009EC0
- ldr r0, _08009E90 @ =0x00004444
- cmp r2, r0
- beq _08009F1C
- cmp r2, r0
- bgt _08009E9C
- ldr r0, _08009E94 @ =0x00002222
- cmp r2, r0
- beq _08009F08
- ldr r0, _08009E98 @ =0x00002ffe
-_08009E82:
- cmp r2, r0
- bne _08009E88
- b _08009FB4
-_08009E88:
- b _08009FD6
- .align 2, 0
-_08009E8C: .4byte 0x00006666
-_08009E90: .4byte 0x00004444
-_08009E94: .4byte 0x00002222
-_08009E98: .4byte 0x00002ffe
-_08009E9C:
- ldr r0, _08009EAC @ =0x00005566
- cmp r2, r0
- bne _08009EA4
- b _08009FB4
-_08009EA4:
- cmp r2, r0
- bgt _08009EB0
- subs r0, 0x11
- b _08009E82
- .align 2, 0
-_08009EAC: .4byte 0x00005566
-_08009EB0:
- ldr r0, _08009EBC @ =0x00005fff
- cmp r2, r0
- bne _08009EB8
- b _08009FA0
-_08009EB8:
- b _08009FD6
- .align 2, 0
-_08009EBC: .4byte 0x00005fff
-_08009EC0:
- ldr r0, _08009ED4 @ =0x0000aaab
- cmp r2, r0
- beq _08009F78
- cmp r2, r0
- bgt _08009EE0
- ldr r0, _08009ED8 @ =0x00007777
- cmp r2, r0
- beq _08009F3C
- ldr r0, _08009EDC @ =0x0000aaaa
- b _08009E82
- .align 2, 0
-_08009ED4: .4byte 0x0000aaab
-_08009ED8: .4byte 0x00007777
-_08009EDC: .4byte 0x0000aaaa
-_08009EE0:
- ldr r0, _08009EF4 @ =0x0000cafe
- cmp r2, r0
- beq _08009FC0
- cmp r2, r0
- bgt _08009EFC
- ldr r0, _08009EF8 @ =0x0000bbbb
- cmp r2, r0
- beq _08009F5C
- b _08009FD6
- .align 2, 0
-_08009EF4: .4byte 0x0000cafe
-_08009EF8: .4byte 0x0000bbbb
-_08009EFC:
- ldr r0, _08009F04 @ =0x0000cccc
- cmp r2, r0
- beq _08009F8C
- b _08009FD6
- .align 2, 0
-_08009F04: .4byte 0x0000cccc
-_08009F08:
- ldr r0, _08009F14 @ =gUnknown_3003F50
- strh r2, [r0]
- ldr r1, _08009F18 @ =gLinkType
- ldrh r1, [r1]
- b _08009FD4
- .align 2, 0
-_08009F14: .4byte gUnknown_3003F50
-_08009F18: .4byte gLinkType
-_08009F1C:
- ldr r0, _08009F28 @ =gUnknown_3003F50
- strh r2, [r0]
- ldr r1, _08009F2C @ =gMain
- ldrh r1, [r1, 0x2C]
- b _08009FD4
- .align 2, 0
-_08009F28: .4byte gUnknown_3003F50
-_08009F2C: .4byte gMain
-_08009F30:
- ldr r0, _08009F38 @ =gUnknown_3003F50
- movs r1, 0
- b _08009FD2
- .align 2, 0
-_08009F38: .4byte gUnknown_3003F50
-_08009F3C:
- ldr r0, _08009F58 @ =gUnknown_3003F50
- strh r2, [r0]
- movs r1, 0
- adds r3, r0, 0
- movs r2, 0xEE
-_08009F46:
- adds r1, 0x1
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x4
- bls _08009F46
- b _08009FD6
- .align 2, 0
-_08009F58: .4byte gUnknown_3003F50
-_08009F5C:
- ldr r1, _08009F70 @ =gUnknown_3003F50
- strh r2, [r1]
- ldr r2, _08009F74 @ =gUnknown_3000E08
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x2]
- ldrb r0, [r2, 0x9]
- adds r0, 0x80
- strh r0, [r1, 0x4]
- b _08009FD6
- .align 2, 0
-_08009F70: .4byte gUnknown_3003F50
-_08009F74: .4byte gUnknown_3000E08
-_08009F78:
- ldr r0, _08009F84 @ =gUnknown_3003F50
- strh r2, [r0]
- ldr r1, _08009F88 @ =gSpecialVar_ItemId
- ldrh r1, [r1]
- b _08009FD4
- .align 2, 0
-_08009F84: .4byte gUnknown_3003F50
-_08009F88: .4byte gSpecialVar_ItemId
-_08009F8C:
- ldr r0, _08009F98 @ =gUnknown_3003F50
- strh r2, [r0]
- ldr r1, _08009F9C @ =gUnknown_3003F90
- ldrb r1, [r1]
- b _08009FD4
- .align 2, 0
-_08009F98: .4byte gUnknown_3003F50
-_08009F9C: .4byte gUnknown_3003F90
-_08009FA0:
- ldr r0, _08009FAC @ =gUnknown_3003F50
- strh r2, [r0]
- ldr r1, _08009FB0 @ =gUnknown_3003F34
- ldrh r1, [r1]
- b _08009FD4
- .align 2, 0
-_08009FAC: .4byte gUnknown_3003F50
-_08009FB0: .4byte gUnknown_3003F34
-_08009FB4:
- ldr r0, _08009FBC @ =gUnknown_3003F50
- strh r2, [r0]
- b _08009FD6
- .align 2, 0
-_08009FBC: .4byte gUnknown_3003F50
-_08009FC0:
- ldr r0, _08009FDC @ =gUnknown_3005028
- ldrh r1, [r0]
- cmp r1, 0
- beq _08009FD6
- ldr r0, _08009FE0 @ =gLinkTransferringData
- ldrb r0, [r0]
- cmp r0, 0
- bne _08009FD6
- ldr r0, _08009FE4 @ =gUnknown_3003F50
-_08009FD2:
- strh r2, [r0]
-_08009FD4:
- strh r1, [r0, 0x2]
-_08009FD6:
- pop {r0}
- bx r0
- .align 2, 0
-_08009FDC: .4byte gUnknown_3005028
-_08009FE0: .4byte gLinkTransferringData
-_08009FE4: .4byte gUnknown_3003F50
- thumb_func_end sub_8009E60
-
- thumb_func_start sub_8009FE8
-sub_8009FE8: @ 8009FE8
- push {lr}
- ldr r0, _0800A000 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08009FF6
- bl sub_80F9828
-_08009FF6:
- ldr r1, _0800A004 @ =gUnknown_3003F80
- ldr r0, _0800A008 @ =sub_800A040
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A000: .4byte gWirelessCommType
-_0800A004: .4byte gUnknown_3003F80
-_0800A008: .4byte sub_800A040
- thumb_func_end sub_8009FE8
-
- thumb_func_start sub_800A00C
-sub_800A00C: @ 800A00C
- push {lr}
- ldr r0, _0800A01C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800A020
- bl sub_80F9808
- b _0800A03A
- .align 2, 0
-_0800A01C: .4byte gWirelessCommType
-_0800A020:
- ldr r0, _0800A030 @ =gUnknown_3003F80
- ldr r1, [r0]
- ldr r0, _0800A034 @ =sub_800A040
- cmp r1, r0
- beq _0800A038
- movs r0, 0
- b _0800A03A
- .align 2, 0
-_0800A030: .4byte gUnknown_3003F80
-_0800A034: .4byte sub_800A040
-_0800A038:
- movs r0, 0x1
-_0800A03A:
- pop {r1}
- bx r1
- thumb_func_end sub_800A00C
-
- thumb_func_start sub_800A040
-sub_800A040: @ 800A040
- push {lr}
- ldr r0, _0800A054 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A050
- ldr r0, _0800A058 @ =0x0000cafe
- bl sub_8009E60
-_0800A050:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A054: .4byte gReceivedRemoteLinkPlayers
-_0800A058: .4byte 0x0000cafe
- thumb_func_end sub_800A040
-
- thumb_func_start sub_800A05C
-sub_800A05C: @ 800A05C
- ldr r1, _0800A064 @ =gUnknown_3003F80
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A064: .4byte gUnknown_3003F80
- thumb_func_end sub_800A05C
-
- thumb_func_start sub_800A068
-sub_800A068: @ 800A068
- push {lr}
- ldr r0, _0800A078 @ =gWirelessCommType
- ldrb r1, [r0]
- cmp r1, 0
- beq _0800A07C
- bl sub_80F985C
- b _0800A080
- .align 2, 0
-_0800A078: .4byte gWirelessCommType
-_0800A07C:
- ldr r0, _0800A084 @ =gUnknown_3003F80
- str r1, [r0]
-_0800A080:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A084: .4byte gUnknown_3003F80
- thumb_func_end sub_800A068
-
- thumb_func_start GetLinkPlayerCount
-GetLinkPlayerCount: @ 800A088
- push {lr}
- ldr r0, _0800A0A0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800A0A8
- ldr r0, _0800A0A4 @ =gUnknown_3003F20
- ldr r0, [r0]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- b _0800A0B0
- .align 2, 0
-_0800A0A0: .4byte gWirelessCommType
-_0800A0A4: .4byte gUnknown_3003F20
-_0800A0A8:
- bl sub_80FA4EC
- lsls r0, 24
- lsrs r0, 24
-_0800A0B0:
- pop {r1}
- bx r1
- thumb_func_end GetLinkPlayerCount
-
- thumb_func_start sub_800A0B4
-sub_800A0B4: @ 800A0B4
- push {lr}
- ldr r0, _0800A0C8 @ =gUnknown_3000E54
- movs r1, 0
- str r1, [r0]
- ldr r0, _0800A0CC @ =gLinkTimeOutCounter
- strh r1, [r0]
- bl sub_8009804
- pop {r0}
- bx r0
- .align 2, 0
-_0800A0C8: .4byte gUnknown_3000E54
-_0800A0CC: .4byte gLinkTimeOutCounter
- thumb_func_end sub_800A0B4
-
- thumb_func_start sub_800A0D0
-sub_800A0D0: @ 800A0D0
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r7, 0
- ldr r0, _0800A0F8 @ =gReceivedRemoteLinkPlayers
- ldrb r4, [r0]
- cmp r4, 0x1
- bne _0800A1C8
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bgt _0800A0F0
- cmp r0, r6
- ble _0800A100
-_0800A0F0:
- ldr r1, _0800A0FC @ =gUnknown_3000E54
- movs r0, 0x6
- str r0, [r1]
- b _0800A1E2
- .align 2, 0
-_0800A0F8: .4byte gReceivedRemoteLinkPlayers
-_0800A0FC: .4byte gUnknown_3000E54
-_0800A100:
- bl GetLinkPlayerCount
- lsls r0, 24
- cmp r0, 0
- bne _0800A112
- ldr r0, _0800A11C @ =gUnknown_3003EAC
- strb r4, [r0]
- bl CloseLink
-_0800A112:
- movs r6, 0
- ldr r4, _0800A120 @ =gLinkPlayers
- movs r5, 0
- b _0800A138
- .align 2, 0
-_0800A11C: .4byte gUnknown_3003EAC
-_0800A120: .4byte gLinkPlayers
-_0800A124:
- adds r0, r4, 0
- adds r0, 0x14
- adds r0, r5, r0
- ldr r1, [r0]
- ldr r0, [r4, 0x14]
- cmp r1, r0
- bne _0800A134
- adds r7, 0x1
-_0800A134:
- adds r5, 0x1C
- adds r6, 0x1
-_0800A138:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- blt _0800A124
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r7, r0
- bne _0800A1B8
- ldr r0, _0800A170 @ =gLinkPlayers
- ldr r1, [r0, 0x14]
- ldr r0, _0800A174 @ =0x00001133
- cmp r1, r0
- bne _0800A1AC
- bl sub_804FB34
- cmp r0, 0x1
- beq _0800A194
- cmp r0, 0x1
- bgt _0800A17C
- cmp r0, 0
- beq _0800A188
- ldr r2, _0800A178 @ =gUnknown_3000E54
- b _0800A1E0
- .align 2, 0
-_0800A170: .4byte gLinkPlayers
-_0800A174: .4byte 0x00001133
-_0800A178: .4byte gUnknown_3000E54
-_0800A17C:
- cmp r0, 0x2
- beq _0800A1A0
- ldr r2, _0800A184 @ =gUnknown_3000E54
- b _0800A1E0
- .align 2, 0
-_0800A184: .4byte gUnknown_3000E54
-_0800A188:
- ldr r1, _0800A190 @ =gUnknown_3000E54
- movs r0, 0x1
- b _0800A1BC
- .align 2, 0
-_0800A190: .4byte gUnknown_3000E54
-_0800A194:
- ldr r1, _0800A19C @ =gUnknown_3000E54
- movs r0, 0x4
- b _0800A1BC
- .align 2, 0
-_0800A19C: .4byte gUnknown_3000E54
-_0800A1A0:
- ldr r1, _0800A1A8 @ =gUnknown_3000E54
- movs r0, 0x5
- b _0800A1BC
- .align 2, 0
-_0800A1A8: .4byte gUnknown_3000E54
-_0800A1AC:
- ldr r1, _0800A1B4 @ =gUnknown_3000E54
- movs r0, 0x1
- b _0800A1BC
- .align 2, 0
-_0800A1B4: .4byte gUnknown_3000E54
-_0800A1B8:
- ldr r1, _0800A1C4 @ =gUnknown_3000E54
- movs r0, 0x3
-_0800A1BC:
- str r0, [r1]
- adds r2, r1, 0
- b _0800A1E0
- .align 2, 0
-_0800A1C4: .4byte gUnknown_3000E54
-_0800A1C8:
- ldr r0, _0800A1E8 @ =gLinkTimeOutCounter
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x96
- lsls r0, 18
- ldr r2, _0800A1EC @ =gUnknown_3000E54
- cmp r1, r0
- bls _0800A1E0
- movs r0, 0x2
- str r0, [r2]
-_0800A1E0:
- ldrb r0, [r2]
-_0800A1E2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800A1E8: .4byte gLinkTimeOutCounter
-_0800A1EC: .4byte gUnknown_3000E54
- thumb_func_end sub_800A0D0
-
- thumb_func_start IsLinkPlayerDataExchangeComplete
-IsLinkPlayerDataExchangeComplete: @ 800A1F0
- push {r4-r6,lr}
- movs r6, 0
- movs r4, 0
- ldr r5, _0800A1FC @ =gLinkPlayers
- b _0800A220
- .align 2, 0
-_0800A1FC: .4byte gLinkPlayers
-_0800A200:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x14
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r5, 0x14]
- cmp r1, r0
- bne _0800A21A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0800A21A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0800A220:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0800A200
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0800A244
- movs r2, 0x1
- ldr r0, _0800A240 @ =gUnknown_3000E54
- str r2, [r0]
- b _0800A24C
- .align 2, 0
-_0800A240: .4byte gUnknown_3000E54
-_0800A244:
- movs r2, 0
- ldr r1, _0800A254 @ =gUnknown_3000E54
- movs r0, 0x3
- str r0, [r1]
-_0800A24C:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0800A254: .4byte gUnknown_3000E54
- thumb_func_end IsLinkPlayerDataExchangeComplete
-
- thumb_func_start GetLinkPlayerTrainerId
-GetLinkPlayerTrainerId: @ 800A258
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800A26C @ =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, 0x4
- adds r1, r2
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_0800A26C: .4byte gLinkPlayers
- thumb_func_end GetLinkPlayerTrainerId
-
- thumb_func_start sub_800A270
-sub_800A270: @ 800A270
- push {r4,r5,lr}
- ldr r5, _0800A290 @ =gLinkPlayers
- movs r4, 0x4
-_0800A276:
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x1C
- bl memset
- adds r5, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _0800A276
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A290: .4byte gLinkPlayers
- thumb_func_end sub_800A270
-
- thumb_func_start ResetBlockSend
-ResetBlockSend: @ 800A294
- ldr r1, _0800A2A4 @ =gUnknown_3000E08
- movs r0, 0
- strb r0, [r1, 0x8]
- strh r0, [r1]
- strh r0, [r1, 0x2]
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0800A2A4: .4byte gUnknown_3000E08
- thumb_func_end ResetBlockSend
-
- thumb_func_start InitBlockSend
-InitBlockSend: @ 800A2A8
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- ldr r4, _0800A2BC @ =gUnknown_3000E08
- ldrb r5, [r4, 0x8]
- cmp r5, 0
- beq _0800A2C0
- movs r0, 0
- b _0800A2FE
- .align 2, 0
-_0800A2BC: .4byte gUnknown_3000E08
-_0800A2C0:
- bl GetMultiplayerId
- strb r0, [r4, 0x9]
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strh r6, [r4, 0x2]
- strh r5, [r4]
- adds r0, 0xFF
- cmp r6, r0
- bls _0800A2D8
- str r7, [r4, 0x4]
- b _0800A2EA
-_0800A2D8:
- ldr r5, _0800A304 @ =gBlockSendBuffer
- cmp r7, r5
- beq _0800A2E8
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl memcpy
-_0800A2E8:
- str r5, [r4, 0x4]
-_0800A2EA:
- ldr r0, _0800A308 @ =0x0000bbbb
- bl sub_8009E60
- ldr r1, _0800A30C @ =gUnknown_3003F80
- ldr r0, _0800A310 @ =LinkCB_BlockSendBegin
- str r0, [r1]
- ldr r1, _0800A314 @ =gUnknown_3000E48
- movs r0, 0
- str r0, [r1]
- movs r0, 0x1
-_0800A2FE:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800A304: .4byte gBlockSendBuffer
-_0800A308: .4byte 0x0000bbbb
-_0800A30C: .4byte gUnknown_3003F80
-_0800A310: .4byte LinkCB_BlockSendBegin
-_0800A314: .4byte gUnknown_3000E48
- thumb_func_end InitBlockSend
-
- thumb_func_start LinkCB_BlockSendBegin
-LinkCB_BlockSendBegin: @ 800A318
- push {lr}
- ldr r1, _0800A330 @ =gUnknown_3000E48
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x2
- bls _0800A32C
- ldr r1, _0800A334 @ =gUnknown_3003F80
- ldr r0, _0800A338 @ =LinkCB_BlockSend
- str r0, [r1]
-_0800A32C:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A330: .4byte gUnknown_3000E48
-_0800A334: .4byte gUnknown_3003F80
-_0800A338: .4byte LinkCB_BlockSend
- thumb_func_end LinkCB_BlockSendBegin
-
- thumb_func_start LinkCB_BlockSend
-LinkCB_BlockSend: @ 800A33C
- push {r4-r6,lr}
- ldr r0, _0800A38C @ =gUnknown_3000E08
- ldr r5, [r0, 0x4]
- ldr r2, _0800A390 @ =gUnknown_3003F50
- ldr r1, _0800A394 @ =0x00008888
- strh r1, [r2]
- movs r3, 0
- adds r4, r0, 0
- adds r6, r4, 0
- adds r2, 0x2
-_0800A350:
- lsls r0, r3, 1
- ldrh r1, [r6]
- adds r0, r1
- adds r0, r5
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- ldrb r0, [r0]
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x6
- ble _0800A350
- ldrh r0, [r4]
- adds r0, 0xE
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0800A384
- movs r0, 0
- strb r0, [r4, 0x8]
- ldr r1, _0800A398 @ =gUnknown_3003F80
- ldr r0, _0800A39C @ =sub_800A3A0
- str r0, [r1]
-_0800A384:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A38C: .4byte gUnknown_3000E08
-_0800A390: .4byte gUnknown_3003F50
-_0800A394: .4byte 0x00008888
-_0800A398: .4byte gUnknown_3003F80
-_0800A39C: .4byte sub_800A3A0
- thumb_func_end LinkCB_BlockSend
-
- thumb_func_start sub_800A3A0
-sub_800A3A0: @ 800A3A0
- ldr r1, _0800A3A8 @ =gUnknown_3003F80
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A3A8: .4byte gUnknown_3003F80
- thumb_func_end sub_800A3A0
-
- thumb_func_start sub_800A3AC
-sub_800A3AC: @ 800A3AC
- push {lr}
- bl GetMultiplayerId
- ldr r0, _0800A3C4 @ =0x00004444
- bl sub_8009E60
- ldr r1, _0800A3C8 @ =gUnknown_2022114
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A3C4: .4byte 0x00004444
-_0800A3C8: .4byte gUnknown_2022114
- thumb_func_end sub_800A3AC
-
- thumb_func_start sub_800A3CC
-sub_800A3CC: @ 800A3CC
- ldr r1, _0800A3DC @ =gUnknown_2022114
- movs r0, 0
- str r0, [r1]
- ldr r1, _0800A3E0 @ =gUnknown_3003F80
- ldr r0, _0800A3E4 @ =sub_800A3AC
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A3DC: .4byte gUnknown_2022114
-_0800A3E0: .4byte gUnknown_3003F80
-_0800A3E4: .4byte sub_800A3AC
- thumb_func_end sub_800A3CC
-
- thumb_func_start sub_800A3E8
-sub_800A3E8: @ 800A3E8
- ldr r0, _0800A3F0 @ =gUnknown_2022114
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0800A3F0: .4byte gUnknown_2022114
- thumb_func_end sub_800A3E8
-
- thumb_func_start sub_800A3F4
-sub_800A3F4: @ 800A3F4
- push {lr}
- ldr r0, _0800A400 @ =0x0000aaaa
- bl sub_8009E60
- pop {r0}
- bx r0
- .align 2, 0
-_0800A400: .4byte 0x0000aaaa
- thumb_func_end sub_800A3F4
-
- thumb_func_start GetMultiplayerId
-GetMultiplayerId: @ 800A404
- push {lr}
- ldr r0, _0800A418 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800A420
- ldr r0, _0800A41C @ =0x04000128
- ldr r0, [r0]
- lsls r0, 26
- lsrs r0, 30
- b _0800A428
- .align 2, 0
-_0800A418: .4byte gWirelessCommType
-_0800A41C: .4byte 0x04000128
-_0800A420:
- bl rfu_get_multiplayer_id
- lsls r0, 24
- lsrs r0, 24
-_0800A428:
- pop {r1}
- bx r1
- thumb_func_end GetMultiplayerId
-
- thumb_func_start bitmask_all_link_players_but_self
-bitmask_all_link_players_but_self: @ 800A42C
- push {lr}
- bl GetMultiplayerId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- lsls r0, r1
- movs r1, 0xF
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end bitmask_all_link_players_but_self
-
- thumb_func_start SendBlock
-SendBlock: @ 800A448
- push {lr}
- adds r3, r1, 0
- lsls r2, 16
- lsrs r1, r2, 16
- ldr r0, _0800A460 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800A464
- adds r0, r3, 0
- bl InitBlockSend
- b _0800A46A
- .align 2, 0
-_0800A460: .4byte gWirelessCommType
-_0800A464:
- adds r0, r3, 0
- bl sub_80F9E60
-_0800A46A:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end SendBlock
-
- thumb_func_start sub_800A474
-sub_800A474: @ 800A474
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- ldr r0, _0800A490 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A494
- adds r0, r1, 0
- bl sub_80FA0F8
- lsls r0, 24
- lsrs r0, 24
- b _0800A4B0
- .align 2, 0
-_0800A490: .4byte gWirelessCommType
-_0800A494:
- ldr r0, _0800A4A0 @ =gUnknown_3003F80
- ldr r0, [r0]
- cmp r0, 0
- beq _0800A4A4
- movs r0, 0
- b _0800A4B0
- .align 2, 0
-_0800A4A0: .4byte gUnknown_3003F80
-_0800A4A4:
- ldr r0, _0800A4B4 @ =gUnknown_3003F90
- strb r2, [r0]
- ldr r0, _0800A4B8 @ =0x0000cccc
- bl sub_8009E60
- movs r0, 0x1
-_0800A4B0:
- pop {r1}
- bx r1
- .align 2, 0
-_0800A4B4: .4byte gUnknown_3003F90
-_0800A4B8: .4byte 0x0000cccc
- thumb_func_end sub_800A474
-
- thumb_func_start sub_800A4BC
-sub_800A4BC: @ 800A4BC
- push {lr}
- ldr r0, _0800A4D0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A4D4
- bl IsNoOneConnected
- lsls r0, 24
- lsrs r0, 24
- b _0800A4E2
- .align 2, 0
-_0800A4D0: .4byte gWirelessCommType
-_0800A4D4:
- movs r1, 0
- ldr r0, _0800A4E8 @ =gUnknown_3003F80
- ldr r0, [r0]
- cmp r0, 0
- bne _0800A4E0
- movs r1, 0x1
-_0800A4E0:
- adds r0, r1, 0
-_0800A4E2:
- pop {r1}
- bx r1
- .align 2, 0
-_0800A4E8: .4byte gUnknown_3003F80
- thumb_func_end sub_800A4BC
-
- thumb_func_start GetBlockReceivedStatus
-GetBlockReceivedStatus: @ 800A4EC
- push {lr}
- ldr r0, _0800A510 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800A518
- ldr r2, _0800A514 @ =gUnknown_3003EBC
- ldrb r0, [r2, 0x3]
- lsls r0, 3
- ldrb r1, [r2, 0x2]
- lsls r1, 2
- orrs r0, r1
- ldrb r1, [r2, 0x1]
- lsls r1, 1
- orrs r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- b _0800A51C
- .align 2, 0
-_0800A510: .4byte gWirelessCommType
-_0800A514: .4byte gUnknown_3003EBC
-_0800A518:
- bl sub_80F9CC8
-_0800A51C:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetBlockReceivedStatus
-
- thumb_func_start sub_800A524
-sub_800A524: @ 800A524
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0800A53C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A540
- adds r0, r1, 0
- bl sub_80F9720
- b _0800A548
- .align 2, 0
-_0800A53C: .4byte gWirelessCommType
-_0800A540:
- ldr r0, _0800A54C @ =gUnknown_3003EBC
- adds r0, r1, r0
- movs r1, 0x1
- strb r1, [r0]
-_0800A548:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A54C: .4byte gUnknown_3003EBC
- thumb_func_end sub_800A524
-
- thumb_func_start ResetBlockReceivedFlags
-ResetBlockReceivedFlags: @ 800A550
- push {r4,lr}
- ldr r0, _0800A56C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A570
- movs r4, 0
-_0800A55C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80F974C
- adds r4, 0x1
- cmp r4, 0x4
- ble _0800A55C
- b _0800A57E
- .align 2, 0
-_0800A56C: .4byte gWirelessCommType
-_0800A570:
- ldr r1, _0800A584 @ =gUnknown_3003EBC
- movs r2, 0
- adds r0, r1, 0x3
-_0800A576:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _0800A576
-_0800A57E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A584: .4byte gUnknown_3003EBC
- thumb_func_end ResetBlockReceivedFlags
-
- thumb_func_start ResetBlockReceivedFlag
-ResetBlockReceivedFlag: @ 800A588
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _0800A5A0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800A5A4
- adds r0, r1, 0
- bl sub_80F974C
- b _0800A5B2
- .align 2, 0
-_0800A5A0: .4byte gWirelessCommType
-_0800A5A4:
- ldr r0, _0800A5B8 @ =gUnknown_3003EBC
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800A5B2
- movs r0, 0
- strb r0, [r1]
-_0800A5B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A5B8: .4byte gUnknown_3003EBC
- thumb_func_end ResetBlockReceivedFlag
-
- thumb_func_start sub_800A5BC
-sub_800A5BC: @ 800A5BC
- push {lr}
- ldr r0, _0800A5DC @ =gUnknown_3003F20
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800A5D8
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bls _0800A5D8
- ldr r1, _0800A5E0 @ =gUnknown_3003F84
- movs r0, 0x1
- strb r0, [r1]
-_0800A5D8:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A5DC: .4byte gUnknown_3003F20
-_0800A5E0: .4byte gUnknown_3003F84
- thumb_func_end sub_800A5BC
-
- thumb_func_start LinkTestCalcBlockChecksum
-LinkTestCalcBlockChecksum: @ 800A5E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- movs r3, 0
- movs r2, 0
- lsrs r1, 17
- cmp r3, r1
- bcs _0800A60A
-_0800A5F4:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bcc _0800A5F4
-_0800A60A:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end LinkTestCalcBlockChecksum
-
- thumb_func_start PrintHexDigit
-PrintHexDigit: @ 800A614
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- ldr r4, _0800A648 @ =gUnknown_3003F70
- ldr r3, [r4]
- lsls r3, 11
- movs r5, 0xC0
- lsls r5, 19
- adds r3, r5
- lsrs r2, 19
- adds r2, r1
- lsls r2, 1
- adds r2, r3
- ldr r3, [r4, 0x4]
- lsls r3, 12
- ldr r1, [r4, 0x8]
- adds r1, 0x1
- adds r0, r1
- orrs r3, r0
- strh r3, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A648: .4byte gUnknown_3003F70
- thumb_func_end PrintHexDigit
-
- thumb_func_start sub_800A64C
-sub_800A64C: @ 800A64C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- ldr r4, _0800A680 @ =gUnknown_3003F70
- ldr r3, [r4]
- lsls r3, 11
- movs r5, 0xC0
- lsls r5, 19
- adds r3, r5
- lsrs r2, 19
- adds r2, r1
- lsls r2, 1
- adds r2, r3
- ldr r3, [r4, 0x4]
- lsls r3, 12
- ldr r1, [r4, 0x8]
- adds r1, r0
- orrs r3, r1
- strh r3, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A680: .4byte gUnknown_3003F70
- thumb_func_end sub_800A64C
-
- thumb_func_start sub_800A684
-sub_800A684: @ 800A684
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- cmp r4, r3
- bge _0800A6B0
- movs r2, 0xF
-_0800A69E:
- mov r0, sp
- adds r1, r0, r4
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- lsrs r5, 4
- adds r4, 0x1
- cmp r4, r3
- blt _0800A69E
-_0800A6B0:
- subs r4, r3, 0x1
- cmp r4, 0
- blt _0800A6D0
-_0800A6B6:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- adds r1, r6, 0
- adds r2, r7, 0
- bl PrintHexDigit
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- subs r4, 0x1
- cmp r4, 0
- bge _0800A6B6
-_0800A6D0:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800A684
-
- thumb_func_start sub_800A6D8
-sub_800A6D8: @ 800A6D8
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r6, 0
- ldrb r0, [r3]
- cmp r0, 0
- beq _0800A718
- adds r4, r3, 0
- lsls r5, r2, 24
-_0800A6F0:
- ldrb r0, [r4]
- cmp r0, 0xA
- bne _0800A700
- movs r0, 0x80
- lsls r0, 17
- adds r5, r0
- movs r6, 0
- b _0800A710
-_0800A700:
- ldrb r0, [r4]
- adds r1, r7, r6
- lsls r1, 24
- lsrs r1, 24
- lsrs r2, r5, 24
- bl sub_800A64C
- adds r6, 0x1
-_0800A710:
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0800A6F0
-_0800A718:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800A6D8
-
- thumb_func_start sub_800A720
-sub_800A720: @ 800A720
- push {lr}
- ldr r0, _0800A740 @ =gUnknown_3003F20
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800A734
- ldr r0, _0800A744 @ =0x00002222
- bl sub_8009E60
-_0800A734:
- ldr r1, _0800A748 @ =gUnknown_3003F80
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A740: .4byte gUnknown_3003F20
-_0800A744: .4byte 0x00002222
-_0800A748: .4byte gUnknown_3003F80
- thumb_func_end sub_800A720
-
- thumb_func_start task00_link_test
-task00_link_test: @ 800A74C
- push {r4-r6,lr}
- sub sp, 0x20
- ldr r1, _0800A86C @ =gUnknown_82345D0
- mov r0, sp
- bl strcpy
- mov r0, sp
- movs r1, 0x5
- movs r2, 0x2
- bl sub_800A6D8
- ldr r0, _0800A870 @ =gUnknown_3003F84
- ldrb r0, [r0]
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x2
- bl sub_800A684
- ldr r4, _0800A874 @ =gUnknown_3003F20
- ldr r0, [r4]
- movs r1, 0xF
- movs r2, 0x1
- movs r3, 0x8
- bl sub_800A684
- ldr r0, _0800A878 @ =gUnknown_3003FB0
- ldrb r0, [r0, 0x1]
- movs r1, 0x2
- movs r2, 0xA
- movs r3, 0x2
- bl sub_800A684
- ldr r0, [r4]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- movs r1, 0xF
- movs r2, 0xA
- movs r3, 0x2
- bl sub_800A684
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xF
- movs r2, 0xC
- movs r3, 0x2
- bl sub_800A684
- ldr r0, _0800A87C @ =gUnknown_3003FA0
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0x1
- movs r3, 0x2
- bl sub_800A684
- ldr r0, _0800A880 @ =gUnknown_3004F70
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0x2
- movs r3, 0x2
- bl sub_800A684
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xF
- movs r2, 0x5
- movs r3, 0x2
- bl sub_800A684
- ldr r0, _0800A884 @ =gUnknown_3003E6C
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xC
- movs r3, 0x8
- bl sub_800A684
- ldr r0, _0800A888 @ =gUnknown_3003EB0
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- movs r3, 0x8
- bl sub_800A684
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x5
- movs r3, 0x1
- bl sub_800A684
- bl IsSioMultiMaster
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x6
- movs r3, 0x1
- bl sub_800A684
- bl IsLinkConnectionEstablished
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x7
- movs r3, 0x1
- bl sub_800A684
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x8
- movs r3, 0x1
- bl sub_800A684
- movs r6, 0
- movs r5, 0x80
- lsls r5, 19
- ldr r4, _0800A88C @ =gUnknown_3003F88
-_0800A84A:
- ldrh r0, [r4]
- lsrs r2, r5, 24
- movs r1, 0xA
- movs r3, 0x4
- bl sub_800A684
- movs r0, 0x80
- lsls r0, 17
- adds r5, r0
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800A84A
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A86C: .4byte gUnknown_82345D0
-_0800A870: .4byte gUnknown_3003F84
-_0800A874: .4byte gUnknown_3003F20
-_0800A878: .4byte gUnknown_3003FB0
-_0800A87C: .4byte gUnknown_3003FA0
-_0800A880: .4byte gUnknown_3004F70
-_0800A884: .4byte gUnknown_3003E6C
-_0800A888: .4byte gUnknown_3003EB0
-_0800A88C: .4byte gUnknown_3003F88
- thumb_func_end task00_link_test
-
- thumb_func_start SetLinkDebugValues
-SetLinkDebugValues: @ 800A890
- ldr r2, _0800A89C @ =gUnknown_3003E6C
- str r0, [r2]
- ldr r0, _0800A8A0 @ =gUnknown_3003EB0
- str r1, [r0]
- bx lr
- .align 2, 0
-_0800A89C: .4byte gUnknown_3003E6C
-_0800A8A0: .4byte gUnknown_3003EB0
- thumb_func_end SetLinkDebugValues
-
- thumb_func_start sub_800A8A4
-sub_800A8A4: @ 800A8A4
- push {r4,lr}
- movs r1, 0
- movs r2, 0
- ldr r0, _0800A8D0 @ =gUnknown_3003F40
- ldrb r0, [r0]
- cmp r1, r0
- bge _0800A8C6
- movs r4, 0x1
- adds r3, r0, 0
-_0800A8B6:
- adds r0, r4, 0
- lsls r0, r2
- orrs r1, r0
- lsls r0, r1, 24
- lsrs r1, r0, 24
- adds r2, 0x1
- cmp r2, r3
- blt _0800A8B6
-_0800A8C6:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0800A8D0: .4byte gUnknown_3003F40
- thumb_func_end sub_800A8A4
-
- thumb_func_start sub_800A8D4
-sub_800A8D4: @ 800A8D4
- push {r4-r6,lr}
- movs r4, 0
- movs r5, 0
- movs r6, 0x1
- b _0800A8EA
-_0800A8DE:
- adds r0, r6, 0
- lsls r0, r5
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r5, 0x1
-_0800A8EA:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- blt _0800A8DE
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_800A8D4
-
- thumb_func_start sub_800A900
-sub_800A900: @ 800A900
- push {r4-r7,lr}
- ldr r1, _0800A934 @ =gUnknown_3003F40
- strb r0, [r1]
- bl GetMultiplayerId
- ldr r1, _0800A938 @ =gUnknown_3003F60
- strb r0, [r1]
- ldr r4, _0800A93C @ =gLinkPlayers
- ldr r3, _0800A940 @ =gSavedLinkPlayers
- movs r2, 0x4
-_0800A914:
- adds r0, r3, 0
- adds r1, r4, 0
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r4, 0x1C
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bge _0800A914
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A934: .4byte gUnknown_3003F40
-_0800A938: .4byte gUnknown_3003F60
-_0800A93C: .4byte gLinkPlayers
-_0800A940: .4byte gSavedLinkPlayers
- thumb_func_end sub_800A900
-
- thumb_func_start sub_800A944
-sub_800A944: @ 800A944
- ldr r0, _0800A94C @ =gUnknown_3003F40
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800A94C: .4byte gUnknown_3003F40
- thumb_func_end sub_800A944
-
- thumb_func_start sub_800A950
-sub_800A950: @ 800A950
- ldr r0, _0800A958 @ =gUnknown_3003F60
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800A958: .4byte gUnknown_3003F60
- thumb_func_end sub_800A950
-
- thumb_func_start sub_800A95C
-sub_800A95C: @ 800A95C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0800A990 @ =gUnknown_3003F40
- ldrb r2, [r0]
- adds r6, r0, 0
- cmp r5, r2
- bge _0800A986
- ldr r1, _0800A994 @ =gLinkPlayers
- ldr r0, _0800A998 @ =gSavedLinkPlayers
- adds r4, r0, 0x4
- adds r3, r1, 0x4
-_0800A972:
- ldr r1, [r3]
- ldr r0, [r4]
- cmp r1, r0
- bne _0800A97C
- adds r5, 0x1
-_0800A97C:
- adds r4, 0x1C
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bne _0800A972
-_0800A986:
- ldrb r6, [r6]
- cmp r5, r6
- beq _0800A99C
- movs r0, 0
- b _0800A99E
- .align 2, 0
-_0800A990: .4byte gUnknown_3003F40
-_0800A994: .4byte gLinkPlayers
-_0800A998: .4byte gSavedLinkPlayers
-_0800A99C:
- movs r0, 0x1
-_0800A99E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_800A95C
-
- thumb_func_start sub_800A9A4
-sub_800A9A4: @ 800A9A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r0, _0800AA10 @ =gUnknown_3003F40
- ldrb r0, [r0]
- cmp r4, r0
- bcs _0800AA04
- ldr r6, _0800AA14 @ =gSavedLinkPlayers
- ldr r5, _0800AA18 @ =gLinkPlayers
- movs r0, 0x8
- adds r0, r6
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x8
-_0800A9C2:
- lsls r0, r4, 3
- subs r0, r4
- lsls r2, r0, 2
- adds r1, r6, 0x4
- adds r1, r2, r1
- adds r0, r5, 0x4
- adds r0, r2, r0
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- bne _0800A9E6
- mov r1, r8
- adds r0, r2, r1
- adds r1, r2, r7
- bl StringCompare
- cmp r0, 0
- beq _0800A9F6
-_0800A9E6:
- ldr r1, _0800AA1C @ =gUnknown_3003EAC
- movs r0, 0x1
- strb r0, [r1]
- bl CloseLink
- ldr r0, _0800AA20 @ =c2_800ACD4
- bl SetMainCallback2
-_0800A9F6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800AA10 @ =gUnknown_3003F40
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0800A9C2
-_0800AA04:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AA10: .4byte gUnknown_3003F40
-_0800AA14: .4byte gSavedLinkPlayers
-_0800AA18: .4byte gLinkPlayers
-_0800AA1C: .4byte gUnknown_3003EAC
-_0800AA20: .4byte c2_800ACD4
- thumb_func_end sub_800A9A4
-
- thumb_func_start sub_800AA24
-sub_800AA24: @ 800AA24
- ldr r0, _0800AA30 @ =gUnknown_3003F40
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0800AA34 @ =gUnknown_3003F60
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0800AA30: .4byte gUnknown_3003F40
-_0800AA34: .4byte gUnknown_3003F60
- thumb_func_end sub_800AA24
-
- thumb_func_start GetLinkPlayerCount_2
-GetLinkPlayerCount_2: @ 800AA38
- ldr r0, _0800AA44 @ =gUnknown_3003F20
- ldr r0, [r0]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- bx lr
- .align 2, 0
-_0800AA44: .4byte gUnknown_3003F20
- thumb_func_end GetLinkPlayerCount_2
-
- thumb_func_start sub_800AA48
-sub_800AA48: @ 800AA48
- push {lr}
- ldr r0, _0800AA60 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AA68
- ldr r0, _0800AA64 @ =gUnknown_3003F20
- ldr r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- ands r0, r1
- b _0800AA70
- .align 2, 0
-_0800AA60: .4byte gWirelessCommType
-_0800AA64: .4byte gUnknown_3003F20
-_0800AA68:
- bl sub_80FBA2C
- lsls r0, 24
- lsrs r0, 24
-_0800AA70:
- pop {r1}
- bx r1
- thumb_func_end sub_800AA48
-
- thumb_func_start sub_800AA74
-sub_800AA74: @ 800AA74
- ldr r0, _0800AA7C @ =gUnknown_3000E50
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800AA7C: .4byte gUnknown_3000E50
- thumb_func_end sub_800AA74
-
- thumb_func_start sub_800AA80
-sub_800AA80: @ 800AA80
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _0800AA94 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800AA98
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- b _0800AAAC
- .align 2, 0
-_0800AA94: .4byte gWirelessCommType
-_0800AA98:
- ldr r2, _0800AAB0 @ =gUnknown_3003F80
- ldr r1, [r2]
- cmp r1, 0
- bne _0800AAAC
- ldr r0, _0800AAB4 @ =sub_800AB0C
- str r0, [r2]
- ldr r0, _0800AAB8 @ =gUnknown_3003F24
- strb r1, [r0]
- ldr r0, _0800AABC @ =gUnknown_3003F34
- strh r3, [r0]
-_0800AAAC:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AAB0: .4byte gUnknown_3003F80
-_0800AAB4: .4byte sub_800AB0C
-_0800AAB8: .4byte gUnknown_3003F24
-_0800AABC: .4byte gUnknown_3003F34
- thumb_func_end sub_800AA80
-
- thumb_func_start sub_800AAC0
-sub_800AAC0: @ 800AAC0
- push {lr}
- ldr r0, _0800AAD0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800AAD4
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- b _0800AAFC
- .align 2, 0
-_0800AAD0: .4byte gWirelessCommType
-_0800AAD4:
- ldr r2, _0800AAE8 @ =gUnknown_3003F80
- ldr r1, [r2]
- cmp r1, 0
- beq _0800AAF0
- ldr r1, _0800AAEC @ =gUnknown_202285C
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0800AAFC
- .align 2, 0
-_0800AAE8: .4byte gUnknown_3003F80
-_0800AAEC: .4byte gUnknown_202285C
-_0800AAF0:
- ldr r0, _0800AB00 @ =sub_800AB0C
- str r0, [r2]
- ldr r0, _0800AB04 @ =gUnknown_3003F24
- strb r1, [r0]
- ldr r0, _0800AB08 @ =gUnknown_3003F34
- strh r1, [r0]
-_0800AAFC:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB00: .4byte sub_800AB0C
-_0800AB04: .4byte gUnknown_3003F24
-_0800AB08: .4byte gUnknown_3003F34
- thumb_func_end sub_800AAC0
-
- thumb_func_start sub_800AB0C
-sub_800AB0C: @ 800AB0C
- push {lr}
- ldr r0, _0800AB28 @ =gUnknown_3004F70
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AB22
- ldr r0, _0800AB2C @ =0x00005fff
- bl sub_8009E60
- ldr r1, _0800AB30 @ =gUnknown_3003F80
- ldr r0, _0800AB34 @ =sub_800AB38
- str r0, [r1]
-_0800AB22:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB28: .4byte gUnknown_3004F70
-_0800AB2C: .4byte 0x00005fff
-_0800AB30: .4byte gUnknown_3003F80
-_0800AB34: .4byte sub_800AB38
- thumb_func_end sub_800AB0C
-
- thumb_func_start sub_800AB38
-sub_800AB38: @ 800AB38
- push {r4,lr}
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0
- movs r1, 0
- cmp r3, r2
- bge _0800AB5C
- ldr r4, _0800AB84 @ =gUnknown_3003F30
-_0800AB4C:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800AB56
- adds r3, 0x1
-_0800AB56:
- adds r1, 0x1
- cmp r1, r2
- blt _0800AB4C
-_0800AB5C:
- cmp r3, r2
- bne _0800AB7E
- ldr r2, _0800AB88 @ =gBattleTypeFlags
- ldr r0, [r2]
- ldr r1, _0800AB8C @ =0x0000ffdf
- ands r0, r1
- str r0, [r2]
- ldr r0, _0800AB90 @ =gLinkVSyncDisabled
- movs r4, 0x1
- strb r4, [r0]
- bl CloseLink
- ldr r1, _0800AB94 @ =gUnknown_3003F80
- movs r0, 0
- str r0, [r1]
- ldr r0, _0800AB98 @ =gUnknown_3003F24
- strb r4, [r0]
-_0800AB7E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB84: .4byte gUnknown_3003F30
-_0800AB88: .4byte gBattleTypeFlags
-_0800AB8C: .4byte 0x0000ffdf
-_0800AB90: .4byte gLinkVSyncDisabled
-_0800AB94: .4byte gUnknown_3003F80
-_0800AB98: .4byte gUnknown_3003F24
- thumb_func_end sub_800AB38
-
- thumb_func_start sub_800AB9C
-sub_800AB9C: @ 800AB9C
- push {lr}
- ldr r0, _0800ABAC @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0800ABB0
- bl sub_80FA42C
- b _0800ABC2
- .align 2, 0
-_0800ABAC: .4byte gWirelessCommType
-_0800ABB0:
- ldr r1, _0800ABC8 @ =gUnknown_3003F80
- ldr r0, [r1]
- cmp r0, 0
- bne _0800ABBC
- ldr r0, _0800ABCC @ =sub_800ABD4
- str r0, [r1]
-_0800ABBC:
- ldr r1, _0800ABD0 @ =gUnknown_3003F24
- movs r0, 0
- strb r0, [r1]
-_0800ABC2:
- pop {r0}
- bx r0
- .align 2, 0
-_0800ABC8: .4byte gUnknown_3003F80
-_0800ABCC: .4byte sub_800ABD4
-_0800ABD0: .4byte gUnknown_3003F24
- thumb_func_end sub_800AB9C
-
- thumb_func_start sub_800ABD4
-sub_800ABD4: @ 800ABD4
- push {lr}
- ldr r0, _0800ABF0 @ =gUnknown_3004F70
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800ABEA
- ldr r0, _0800ABF4 @ =0x00002ffe
- bl sub_8009E60
- ldr r1, _0800ABF8 @ =gUnknown_3003F80
- ldr r0, _0800ABFC @ =sub_800AC00
- str r0, [r1]
-_0800ABEA:
- pop {r0}
- bx r0
- .align 2, 0
-_0800ABF0: .4byte gUnknown_3004F70
-_0800ABF4: .4byte 0x00002ffe
-_0800ABF8: .4byte gUnknown_3003F80
-_0800ABFC: .4byte sub_800AC00
- thumb_func_end sub_800ABD4
-
- thumb_func_start sub_800AC00
-sub_800AC00: @ 800AC00
- push {r4,lr}
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- cmp r1, r2
- bcs _0800AC2A
- ldr r3, _0800AC50 @ =gUnknown_3003F2C
- ldrb r0, [r3]
- cmp r0, 0
- beq _0800AC2A
-_0800AC18:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r2
- bcs _0800AC2A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AC18
-_0800AC2A:
- cmp r1, r2
- bne _0800AC48
- movs r1, 0
- ldr r4, _0800AC54 @ =gUnknown_3003F80
- ldr r3, _0800AC50 @ =gUnknown_3003F2C
- movs r2, 0
-_0800AC36:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _0800AC36
- movs r0, 0
- str r0, [r4]
-_0800AC48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC50: .4byte gUnknown_3003F2C
-_0800AC54: .4byte gUnknown_3003F80
- thumb_func_end sub_800AC00
-
- thumb_func_start sub_800AC58
-sub_800AC58: @ 800AC58
- push {lr}
- ldr r0, _0800AC9C @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800AC98
- ldr r0, _0800ACA0 @ =gUnknown_3003F20
- ldr r2, [r0]
- movs r0, 0xFE
- lsls r0, 11
- ands r0, r2
- cmp r0, 0
- beq _0800AC98
- ldr r0, _0800ACA4 @ =gUnknown_3003F38
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AC8E
- ldr r1, _0800ACA8 @ =sLinkErrorBuffer
- str r2, [r1]
- ldr r0, _0800ACAC @ =gUnknown_3004F70
- ldrb r0, [r0]
- strb r0, [r1, 0x4]
- ldr r0, _0800ACB0 @ =gUnknown_3003FA0
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- ldr r0, _0800ACB4 @ =c2_800ACD4
- bl SetMainCallback2
-_0800AC8E:
- ldr r1, _0800ACB8 @ =gUnknown_3003EAC
- movs r0, 0x1
- strb r0, [r1]
- bl CloseLink
-_0800AC98:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC9C: .4byte gLinkOpen
-_0800ACA0: .4byte gUnknown_3003F20
-_0800ACA4: .4byte gUnknown_3003F38
-_0800ACA8: .4byte sLinkErrorBuffer
-_0800ACAC: .4byte gUnknown_3004F70
-_0800ACB0: .4byte gUnknown_3003FA0
-_0800ACB4: .4byte c2_800ACD4
-_0800ACB8: .4byte gUnknown_3003EAC
- thumb_func_end sub_800AC58
-
- thumb_func_start sub_800ACBC
-sub_800ACBC: @ 800ACBC
- push {r4,lr}
- ldr r4, _0800ACD0 @ =sLinkErrorBuffer
- str r0, [r4]
- strb r1, [r4, 0x5]
- strb r2, [r4, 0x4]
- strb r3, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800ACD0: .4byte sLinkErrorBuffer
- thumb_func_end sub_800ACBC
-
- thumb_func_start c2_800ACD4
-c2_800ACD4: @ 800ACD4
- push {r4,lr}
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r0, _0800ADE0 @ =gMPlayInfo_SE1
- bl m4aMPlayStop
- ldr r0, _0800ADE4 @ =gMPlayInfo_SE2
- bl m4aMPlayStop
- ldr r0, _0800ADE8 @ =gMPlayInfo_SE3
- bl m4aMPlayStop
- ldr r0, _0800ADEC @ =gHeap
- movs r1, 0xE0
- lsls r1, 9
- bl InitHeap
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetPaletteFadeControl
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl ResetTasks
- bl ScanlineEffect_Stop
- ldr r1, _0800ADF0 @ =gWirelessCommType
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800AD30
- ldr r0, _0800ADF4 @ =sLinkErrorBuffer
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0800AD2C
- movs r0, 0x3
- strb r0, [r1]
-_0800AD2C:
- bl sub_80F85F8
-_0800AD30:
- ldr r0, _0800ADF8 @ =sub_800978C
- bl SetVBlankCallback
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0800ADFC @ =gUnknown_82345E8
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- ldr r4, _0800AE00 @ =gUnknown_2022860
- movs r0, 0x80
- lsls r0, 4
- bl Alloc
- adds r1, r0, 0
- str r1, [r4]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r0, _0800AE04 @ =gUnknown_82345F0
- bl InitWindows
- lsls r0, 16
- cmp r0, 0
- beq _0800ADD8
- bl DeactivateAllTextPrinters
- bl ResetTempTileDataBuffers
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r1, 0xE0
- lsls r1, 8
- movs r0, 0
- bl ClearGpuRegBits
- ldr r0, _0800AE08 @ =gTMCaseMainWindowPalette
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0800AE0C @ =gSoftResetDisabled
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0800AE10 @ =sub_80094D4
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- ldr r1, _0800AE14 @ =gMain
- movs r0, 0
- str r0, [r1]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0800AE18 @ =sub_800AF2C
- bl SetMainCallback2
-_0800ADD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800ADE0: .4byte gMPlayInfo_SE1
-_0800ADE4: .4byte gMPlayInfo_SE2
-_0800ADE8: .4byte gMPlayInfo_SE3
-_0800ADEC: .4byte gHeap
-_0800ADF0: .4byte gWirelessCommType
-_0800ADF4: .4byte sLinkErrorBuffer
-_0800ADF8: .4byte sub_800978C
-_0800ADFC: .4byte gUnknown_82345E8
-_0800AE00: .4byte gUnknown_2022860
-_0800AE04: .4byte gUnknown_82345F0
-_0800AE08: .4byte gTMCaseMainWindowPalette
-_0800AE0C: .4byte gSoftResetDisabled
-_0800AE10: .4byte sub_80094D4
-_0800AE14: .4byte gMain
-_0800AE18: .4byte sub_800AF2C
- thumb_func_end c2_800ACD4
-
- thumb_func_start sub_800AE1C
-sub_800AE1C: @ 800AE1C
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r1, _0800AEB8 @ =gWirelessLinkDisplay4bpp
- movs r5, 0
- str r5, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndLoadBgGfxUsingHeap
- ldr r1, _0800AEBC @ =gWirelessLinkDisplayBin
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, _0800AEC0 @ =gUnknown_8231EC4
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r4, _0800AEC4 @ =gUnknown_8234610
- str r4, [sp]
- str r5, [sp, 0x4]
- ldr r0, _0800AEC8 @ =gUnknown_841DEF0
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x5
- bl AddTextPrinterParameterized3
- str r4, [sp]
- str r5, [sp, 0x4]
- ldr r0, _0800AECC @ =gUnknown_841DF05
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x2
- bl AddTextPrinterParameterized3
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0
- bl CopyWindowToVram
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800AEB8: .4byte gWirelessLinkDisplay4bpp
-_0800AEBC: .4byte gWirelessLinkDisplayBin
-_0800AEC0: .4byte gUnknown_8231EC4
-_0800AEC4: .4byte gUnknown_8234610
-_0800AEC8: .4byte gUnknown_841DEF0
-_0800AECC: .4byte gUnknown_841DF05
- thumb_func_end sub_800AE1C
-
- thumb_func_start sub_800AED0
-sub_800AED0: @ 800AED0
- push {lr}
- sub sp, 0xC
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, _0800AF24 @ =gUnknown_8234610
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _0800AF28 @ =gUnknown_841DE9D
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized3
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0
- bl CopyWindowToVram
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- bl ShowBg
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0800AF24: .4byte gUnknown_8234610
-_0800AF28: .4byte gUnknown_841DE9D
- thumb_func_end sub_800AED0
-
- thumb_func_start sub_800AF2C
-sub_800AF2C: @ 800AF2C
- push {r4,lr}
- sub sp, 0xC
- ldr r0, _0800AF4C @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3C
- beq _0800AF72
- cmp r0, 0x3C
- bgt _0800AF50
- cmp r0, 0
- beq _0800AF5A
- cmp r0, 0x1E
- beq _0800AF72
- b _0800AFC4
- .align 2, 0
-_0800AF4C: .4byte gMain
-_0800AF50:
- cmp r0, 0x5A
- beq _0800AF72
- cmp r0, 0x82
- beq _0800AF7A
- b _0800AFC4
-_0800AF5A:
- ldr r0, _0800AF68 @ =sLinkErrorBuffer
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- beq _0800AF6C
- bl sub_800AE1C
- b _0800AFC4
- .align 2, 0
-_0800AF68: .4byte sLinkErrorBuffer
-_0800AF6C:
- bl sub_800AED0
- b _0800AFC4
-_0800AF72:
- movs r0, 0x16
- bl PlaySE
- b _0800AFC4
-_0800AF7A:
- ldr r0, _0800AF9C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800AFA8
- ldr r0, _0800AFA0 @ =gUnknown_8234610
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _0800AFA4 @ =gUnknown_841DF6B
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x14
- bl AddTextPrinterParameterized3
- b _0800AFC4
- .align 2, 0
-_0800AF9C: .4byte gWirelessCommType
-_0800AFA0: .4byte gUnknown_8234610
-_0800AFA4: .4byte gUnknown_841DF6B
-_0800AFA8:
- cmp r0, 0x1
- bne _0800AFC4
- ldr r0, _0800AFFC @ =gUnknown_8234610
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, _0800B000 @ =gUnknown_841DF4C
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x14
- bl AddTextPrinterParameterized3
-_0800AFC4:
- ldr r0, _0800B004 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r0, r2
- ldrb r1, [r1]
- cmp r1, 0xA0
- bne _0800B03C
- ldr r4, _0800B008 @ =gWirelessCommType
- ldrb r2, [r4]
- cmp r2, 0x1
- bne _0800B010
- ldrh r0, [r0, 0x2E]
- ands r2, r0
- cmp r2, 0
- beq _0800B02E
- bl sub_812B484
- movs r0, 0x15
- bl PlaySE
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0800B00C @ =sLinkErrorBuffer
- movs r0, 0
- strb r0, [r1, 0x6]
- bl sub_8079B7C
- b _0800B02E
- .align 2, 0
-_0800AFFC: .4byte gUnknown_8234610
-_0800B000: .4byte gUnknown_841DF4C
-_0800B004: .4byte gMain
-_0800B008: .4byte gWirelessCommType
-_0800B00C: .4byte sLinkErrorBuffer
-_0800B010:
- cmp r2, 0x2
- bne _0800B02E
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800B02E
- bl sub_812B484
- bl rfu_REQ_stopMode
- bl rfu_waitREQComplete
- bl DoSoftReset
-_0800B02E:
- ldr r0, _0800B050 @ =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r0, r2
- ldrb r1, [r1]
- cmp r1, 0xA0
- beq _0800B048
-_0800B03C:
- movs r2, 0x87
- lsls r2, 3
- adds r1, r0, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0800B048:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B050: .4byte gMain
- thumb_func_end sub_800AF2C
-
- thumb_func_start GetSioMultiSI
-GetSioMultiSI: @ 800B054
- ldr r0, _0800B060 @ =0x04000128
- ldrh r0, [r0]
- lsrs r0, 2
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0800B060: .4byte 0x04000128
- thumb_func_end GetSioMultiSI
-
- thumb_func_start IsSioMultiMaster
-IsSioMultiMaster: @ 800B064
- push {lr}
- movs r3, 0
- ldr r2, _0800B088 @ =0x04000128
- ldrh r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800B080
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0800B080
- movs r3, 0x1
-_0800B080:
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0800B088: .4byte 0x04000128
- thumb_func_end IsSioMultiMaster
-
- thumb_func_start IsLinkConnectionEstablished
-IsLinkConnectionEstablished: @ 800B08C
- ldr r0, _0800B098 @ =gUnknown_3003F20
- ldr r0, [r0]
- lsrs r0, 6
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0800B098: .4byte gUnknown_3003F20
- thumb_func_end IsLinkConnectionEstablished
-
- thumb_func_start SetSuppressLinkErrorMessage
-SetSuppressLinkErrorMessage: @ 800B09C
- ldr r1, _0800B0A4 @ =gUnknown_3003F38
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0800B0A4: .4byte gUnknown_3003F38
- thumb_func_end SetSuppressLinkErrorMessage
-
- thumb_func_start HasLinkErrorOccurred
-HasLinkErrorOccurred: @ 800B0A8
- ldr r0, _0800B0B0 @ =gUnknown_3003EAC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800B0B0: .4byte gUnknown_3003EAC
- thumb_func_end HasLinkErrorOccurred
-
- thumb_func_start sub_800B0B4
-sub_800B0B4: @ 800B0B4
- push {r4-r6,lr}
- bl sub_8009708
- ldr r1, _0800B100 @ =gUnknown_3003E70
- adds r2, r1, 0
- adds r2, 0x10
- ldr r0, _0800B104 @ =gLocalLinkPlayer
- ldm r0!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r0!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldr r0, [r0]
- str r0, [r2]
- ldr r3, _0800B108 @ =gUnknown_82345C0
- adds r2, r1, 0
- adds r0, r3, 0
- ldm r0!, {r4-r6}
- stm r2!, {r4-r6}
- ldrh r4, [r0]
- strh r4, [r2]
- ldrb r0, [r0, 0x2]
- strb r0, [r2, 0x2]
- adds r0, r1, 0
- adds r0, 0x2C
- ldm r3!, {r2,r5,r6}
- stm r0!, {r2,r5,r6}
- ldrh r2, [r3]
- strh r2, [r0]
- ldrb r2, [r3, 0x2]
- strb r2, [r0, 0x2]
- ldr r0, _0800B10C @ =gBlockSendBuffer
- movs r2, 0x3C
- bl memcpy
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B100: .4byte gUnknown_3003E70
-_0800B104: .4byte gLocalLinkPlayer
-_0800B108: .4byte gUnknown_82345C0
-_0800B10C: .4byte gBlockSendBuffer
- thumb_func_end sub_800B0B4
-
- thumb_func_start sub_800B110
-sub_800B110: @ 800B110
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 8
- ldr r1, _0800B168 @ =gBlockRecvBuffer
- adds r4, r2, r1
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- ldr r0, _0800B16C @ =gLinkPlayers
- adds r2, r0
- adds r1, r2, 0
- adds r0, r4, 0
- adds r0, 0x10
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r2, 0
- bl sub_800B284
- ldr r5, _0800B170 @ =gUnknown_82345C0
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- bne _0800B15A
- adds r0, r4, 0
- adds r0, 0x2C
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- beq _0800B160
-_0800B15A:
- ldr r0, _0800B174 @ =c2_800ACD4
- bl SetMainCallback2
-_0800B160:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B168: .4byte gBlockRecvBuffer
-_0800B16C: .4byte gLinkPlayers
-_0800B170: .4byte gUnknown_82345C0
-_0800B174: .4byte c2_800ACD4
- thumb_func_end sub_800B110
-
- thumb_func_start HandleLinkConnection
-HandleLinkConnection: @ 800B178
- push {r4,r5,lr}
- ldr r0, _0800B1B0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800B1C8
- ldr r0, _0800B1B4 @ =gUnknown_3003F84
- ldr r1, _0800B1B8 @ =gUnknown_3003F50
- ldr r2, _0800B1BC @ =gRecvCmds
- bl LinkMain1
- ldr r4, _0800B1C0 @ =gUnknown_3003F20
- str r0, [r4]
- ldr r0, _0800B1C4 @ =gMain + 0x2C
- bl LinkMain2
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _0800B1EC
- bl sub_8058318
- cmp r0, 0x1
- bne _0800B1EC
-_0800B1AA:
- movs r0, 0x1
- b _0800B1EE
- .align 2, 0
-_0800B1B0: .4byte gWirelessCommType
-_0800B1B4: .4byte gUnknown_3003F84
-_0800B1B8: .4byte gUnknown_3003F50
-_0800B1BC: .4byte gRecvCmds
-_0800B1C0: .4byte gUnknown_3003F20
-_0800B1C4: .4byte gMain + 0x2C
-_0800B1C8:
- bl sub_80FAE94
- adds r4, r0, 0
- bl sub_80FAEF0
- adds r5, r0, 0
- bl sub_8058318
- cmp r0, 0x1
- bne _0800B1EC
- cmp r4, 0x1
- beq _0800B1AA
- bl sub_80F90DC
- cmp r0, 0
- bne _0800B1AA
- cmp r5, 0
- bne _0800B1AA
-_0800B1EC:
- movs r0, 0
-_0800B1EE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end HandleLinkConnection
-
- thumb_func_start sub_800B1F4
-sub_800B1F4: @ 800B1F4
- push {lr}
- ldr r0, _0800B208 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800B204
- ldr r1, _0800B20C @ =gWirelessCommType
- movs r0, 0x1
- strb r0, [r1]
-_0800B204:
- pop {r0}
- bx r0
- .align 2, 0
-_0800B208: .4byte gReceivedRemoteLinkPlayers
-_0800B20C: .4byte gWirelessCommType
- thumb_func_end sub_800B1F4
-
- thumb_func_start sub_800B210
-sub_800B210: @ 800B210
- push {lr}
- ldr r0, _0800B224 @ =gReceivedRemoteLinkPlayers
- ldrb r1, [r0]
- cmp r1, 0
- bne _0800B21E
- ldr r0, _0800B228 @ =gWirelessCommType
- strb r1, [r0]
-_0800B21E:
- pop {r0}
- bx r0
- .align 2, 0
-_0800B224: .4byte gReceivedRemoteLinkPlayers
-_0800B228: .4byte gWirelessCommType
- thumb_func_end sub_800B210
-
- thumb_func_start sub_800B22C
-sub_800B22C: @ 800B22C
- push {lr}
- ldr r0, _0800B240 @ =gReceivedRemoteLinkPlayers
- ldrb r1, [r0]
- cmp r1, 0
- bne _0800B23A
- ldr r0, _0800B244 @ =gWirelessCommType
- strb r1, [r0]
-_0800B23A:
- pop {r0}
- bx r0
- .align 2, 0
-_0800B240: .4byte gReceivedRemoteLinkPlayers
-_0800B244: .4byte gWirelessCommType
- thumb_func_end sub_800B22C
-
- thumb_func_start sub_800B248
-sub_800B248: @ 800B248
- push {lr}
- ldr r0, _0800B25C @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800B268
- ldr r0, _0800B260 @ =gUnknown_3003FB0
- ldr r1, _0800B264 @ =0x00000fbd
- adds r0, r1
- ldrb r0, [r0]
- b _0800B26C
- .align 2, 0
-_0800B25C: .4byte gWirelessCommType
-_0800B260: .4byte gUnknown_3003FB0
-_0800B264: .4byte 0x00000fbd
-_0800B268:
- bl sub_80FC460
-_0800B26C:
- pop {r1}
- bx r1
- thumb_func_end sub_800B248
-
- thumb_func_start sub_800B270
-sub_800B270: @ 800B270
- push {lr}
- bl sub_800B248
- cmp r0, 0x2
- bhi _0800B27E
- movs r0, 0
- b _0800B280
-_0800B27E:
- movs r0, 0x1
-_0800B280:
- pop {r1}
- bx r1
- thumb_func_end sub_800B270
-
- thumb_func_start sub_800B284
-sub_800B284: @ 800B284
- push {lr}
- ldrb r1, [r0, 0x10]
- strb r1, [r0, 0x12]
- adds r2, r0, 0
- adds r2, 0x8
- ldrb r1, [r0, 0x1A]
- adds r0, r2, 0
- bl ConvertInternationalString
- pop {r0}
- bx r0
- thumb_func_end sub_800B284
-
- thumb_func_start sub_800B29C
-sub_800B29C: @ 800B29C
- push {lr}
- sub sp, 0x4
- movs r0, 0xC0
- bl DisableInterrupts
- ldr r1, _0800B2DC @ =0x04000128
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800B2E0 @ =0x0400010e
- movs r2, 0
- strh r2, [r0]
- adds r1, 0xDA
- movs r0, 0xC0
- strh r0, [r1]
- ldr r0, _0800B2E4 @ =0x0400012a
- strh r2, [r0]
- ldr r2, _0800B2E8 @ =0x04000120
- movs r0, 0
- movs r1, 0
- str r0, [r2]
- str r1, [r2, 0x4]
- str r0, [sp]
- ldr r1, _0800B2EC @ =gUnknown_3003FB0
- ldr r2, _0800B2F0 @ =0x050003f0
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0800B2DC: .4byte 0x04000128
-_0800B2E0: .4byte 0x0400010e
-_0800B2E4: .4byte 0x0400012a
-_0800B2E8: .4byte 0x04000120
-_0800B2EC: .4byte gUnknown_3003FB0
-_0800B2F0: .4byte 0x050003f0
- thumb_func_end sub_800B29C
-
- thumb_func_start sub_800B2F4
-sub_800B2F4: @ 800B2F4
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0xC0
- bl DisableInterrupts
- ldr r0, _0800B354 @ =0x04000134
- movs r4, 0
- strh r4, [r0]
- ldr r2, _0800B358 @ =0x04000128
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- strh r0, [r2]
- ldrh r0, [r2]
- ldr r3, _0800B35C @ =0x00004003
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- movs r0, 0x80
- bl EnableInterrupts
- ldr r0, _0800B360 @ =0x0400012a
- strh r4, [r0]
- movs r5, 0
- str r5, [sp]
- ldr r1, _0800B364 @ =gUnknown_3003FB0
- ldr r2, _0800B368 @ =0x050003f0
- mov r0, sp
- bl CpuSet
- ldr r0, _0800B36C @ =gUnknown_3000E64
- strb r4, [r0]
- ldr r0, _0800B370 @ =gUnknown_3000E66
- strh r5, [r0]
- ldr r0, _0800B374 @ =gUnknown_3000E68
- strh r5, [r0]
- ldr r0, _0800B378 @ =gUnknown_3000E6A
- strb r4, [r0]
- ldr r0, _0800B37C @ =gUnknown_3000E6B
- strb r4, [r0]
- ldr r0, _0800B380 @ =gUnknown_3003FA0
- strb r4, [r0]
- ldr r0, _0800B384 @ =gUnknown_3004F70
- strb r4, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B354: .4byte 0x04000134
-_0800B358: .4byte 0x04000128
-_0800B35C: .4byte 0x00004003
-_0800B360: .4byte 0x0400012a
-_0800B364: .4byte gUnknown_3003FB0
-_0800B368: .4byte 0x050003f0
-_0800B36C: .4byte gUnknown_3000E64
-_0800B370: .4byte gUnknown_3000E66
-_0800B374: .4byte gUnknown_3000E68
-_0800B378: .4byte gUnknown_3000E6A
-_0800B37C: .4byte gUnknown_3000E6B
-_0800B380: .4byte gUnknown_3003FA0
-_0800B384: .4byte gUnknown_3004F70
- thumb_func_end sub_800B2F4
-
- thumb_func_start sub_800B388
-sub_800B388: @ 800B388
- push {lr}
- bl sub_800B2F4
- bl sub_800B29C
- pop {r0}
- bx r0
- thumb_func_end sub_800B388
-
- thumb_func_start LinkMain1
-LinkMain1: @ 800B398
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, _0800B3B4 @ =gUnknown_3003FB0
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bhi _0800B44A
- lsls r0, 2
- ldr r1, _0800B3B8 @ =_0800B3BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800B3B4: .4byte gUnknown_3003FB0
-_0800B3B8: .4byte _0800B3BC
- .align 2, 0
-_0800B3BC:
- .4byte _0800B3D0
- .4byte _0800B3E0
- .4byte _0800B3F8
- .4byte _0800B434
- .4byte _0800B43E
-_0800B3D0:
- bl sub_800B29C
- ldr r1, _0800B3DC @ =gUnknown_3003FB0
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _0800B44A
- .align 2, 0
-_0800B3DC: .4byte gUnknown_3003FB0
-_0800B3E0:
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0800B44A
- bl sub_800B2F4
- ldr r1, _0800B3F4 @ =gUnknown_3003FB0
- movs r0, 0x2
- strb r0, [r1, 0x1]
- b _0800B44A
- .align 2, 0
-_0800B3F4: .4byte gUnknown_3003FB0
-_0800B3F8:
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _0800B408
- cmp r1, 0x2
- beq _0800B420
- bl CheckMasterOrSlave
- b _0800B44A
-_0800B408:
- ldr r2, _0800B41C @ =gUnknown_3003FB0
- ldrb r0, [r2]
- cmp r0, 0x8
- bne _0800B44A
- ldrb r0, [r2, 0x3]
- cmp r0, 0x1
- bls _0800B44A
- strb r1, [r2, 0xE]
- b _0800B44A
- .align 2, 0
-_0800B41C: .4byte gUnknown_3003FB0
-_0800B420:
- ldr r0, _0800B42C @ =gUnknown_3003FB0
- movs r1, 0
- strb r1, [r0, 0x1]
- ldr r0, _0800B430 @ =0x0400012a
- strh r1, [r0]
- b _0800B44A
- .align 2, 0
-_0800B42C: .4byte gUnknown_3003FB0
-_0800B430: .4byte 0x0400012a
-_0800B434:
- bl InitTimer
- ldr r1, _0800B484 @ =gUnknown_3003FB0
- movs r0, 0x4
- strb r0, [r1, 0x1]
-_0800B43E:
- adds r0, r5, 0
- bl sub_800B520
- adds r0, r6, 0
- bl sub_800B608
-_0800B44A:
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0800B484 @ =gUnknown_3003FB0
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 2
- orrs r2, r0
- ldrb r0, [r1]
- cmp r0, 0x8
- bne _0800B462
- movs r0, 0x20
- orrs r2, r0
-_0800B462:
- ldrb r0, [r1, 0xC]
- lsls r3, r0, 8
- ldrb r0, [r1, 0xF]
- lsls r4, r0, 9
- ldrb r0, [r1, 0x10]
- lsls r5, r0, 12
- ldrb r0, [r1, 0x11]
- lsls r6, r0, 13
- ldrb r0, [r1, 0x12]
- lsls r7, r0, 14
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _0800B488
- movs r0, 0x40
- orrs r0, r3
- orrs r0, r2
- b _0800B48C
- .align 2, 0
-_0800B484: .4byte gUnknown_3003FB0
-_0800B488:
- adds r0, r2, 0
- orrs r0, r3
-_0800B48C:
- orrs r0, r4
- orrs r0, r5
- orrs r0, r6
- orrs r0, r7
- adds r2, r0, 0
- ldrb r3, [r1, 0x13]
- cmp r3, 0x1
- bne _0800B4A2
- movs r0, 0x80
- lsls r0, 9
- orrs r2, r0
-_0800B4A2:
- ldrb r0, [r1, 0x2]
- cmp r0, 0x3
- bls _0800B4AE
- movs r0, 0x80
- lsls r0, 10
- orrs r2, r0
-_0800B4AE:
- adds r1, r2, 0
- cmp r3, 0x2
- bne _0800B4BA
- movs r0, 0x80
- lsls r0, 11
- orrs r1, r0
-_0800B4BA:
- adds r0, r1, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end LinkMain1
-
- thumb_func_start CheckMasterOrSlave
-CheckMasterOrSlave: @ 800B4C4
- push {lr}
- ldr r0, _0800B4E0 @ =0x04000128
- ldr r1, [r0]
- movs r0, 0xC
- ands r1, r0
- ldr r2, _0800B4E4 @ =gUnknown_3003FB0
- cmp r1, 0x8
- bne _0800B4E8
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0800B4E8
- strb r1, [r2]
- b _0800B4EC
- .align 2, 0
-_0800B4E0: .4byte 0x04000128
-_0800B4E4: .4byte gUnknown_3003FB0
-_0800B4E8:
- movs r0, 0
- strb r0, [r2]
-_0800B4EC:
- pop {r0}
- bx r0
- thumb_func_end CheckMasterOrSlave
-
- thumb_func_start InitTimer
-InitTimer: @ 800B4F0
- push {lr}
- ldr r0, _0800B514 @ =gUnknown_3003FB0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800B50E
- ldr r1, _0800B518 @ =0x0400010c
- ldr r2, _0800B51C @ =0x0000ff3b
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x41
- strh r0, [r1]
- movs r0, 0x40
- bl EnableInterrupts
-_0800B50E:
- pop {r0}
- bx r0
- .align 2, 0
-_0800B514: .4byte gUnknown_3003FB0
-_0800B518: .4byte 0x0400010c
-_0800B51C: .4byte 0x0000ff3b
- thumb_func_end InitTimer
-
- thumb_func_start sub_800B520
-sub_800B520: @ 800B520
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r3, r0, 0
- ldr r2, _0800B598 @ =gUnknown_3004F74
- ldr r1, _0800B59C @ =0x04000208
- ldrh r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0800B5A0 @ =gUnknown_3003FB0
- ldr r4, _0800B5A4 @ =0x00000339
- adds r0, r1, r4
- ldrb r4, [r0]
- adds r6, r1, 0
- cmp r4, 0x31
- bhi _0800B5B0
- movs r1, 0xCE
- lsls r1, 2
- adds r0, r6, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- bls _0800B55E
- subs r0, 0x32
- lsls r0, 24
- lsrs r0, 24
-_0800B55E:
- movs r2, 0
- ldr r4, _0800B5A8 @ =gUnknown_3000E66
- mov r9, r4
- ldr r1, _0800B5AC @ =gUnknown_3003FA0
- mov r10, r1
- lsls r5, r0, 1
- movs r0, 0x18
- adds r0, r6
- mov r8, r0
- mov r12, r2
- movs r7, 0x64
-_0800B574:
- ldrh r0, [r4]
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r4]
- adds r0, r2, 0
- muls r0, r7
- adds r0, r5, r0
- add r0, r8
- strh r1, [r0]
- mov r1, r12
- strh r1, [r3]
- adds r3, 0x2
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0800B574
- b _0800B5BC
- .align 2, 0
-_0800B598: .4byte gUnknown_3004F74
-_0800B59C: .4byte 0x04000208
-_0800B5A0: .4byte gUnknown_3003FB0
-_0800B5A4: .4byte 0x00000339
-_0800B5A8: .4byte gUnknown_3000E66
-_0800B5AC: .4byte gUnknown_3003FA0
-_0800B5B0:
- movs r0, 0x1
- strb r0, [r6, 0x12]
- ldr r2, _0800B5F4 @ =gUnknown_3000E66
- mov r9, r2
- ldr r4, _0800B5F8 @ =gUnknown_3003FA0
- mov r10, r4
-_0800B5BC:
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, 0
- beq _0800B5D4
- ldr r2, _0800B5FC @ =0x00000339
- adds r0, r6, r2
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- mov r4, r9
- strh r2, [r4]
-_0800B5D4:
- ldr r1, _0800B600 @ =0x04000208
- ldr r2, _0800B604 @ =gUnknown_3004F74
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r4, _0800B5FC @ =0x00000339
- adds r0, r6, r4
- ldrb r0, [r0]
- mov r1, r10
- 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
-_0800B5F4: .4byte gUnknown_3000E66
-_0800B5F8: .4byte gUnknown_3003FA0
-_0800B5FC: .4byte 0x00000339
-_0800B600: .4byte 0x04000208
-_0800B604: .4byte gUnknown_3004F74
- thumb_func_end sub_800B520
-
- thumb_func_start sub_800B608
-sub_800B608: @ 800B608
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- ldr r2, _0800B664 @ =gUnknown_3004F74
- ldr r1, _0800B668 @ =0x04000208
- ldrh r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0800B66C @ =gUnknown_3003FB0
- ldr r3, _0800B670 @ =0x00000fbd
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0
- bne _0800B674
- movs r3, 0
- ldrb r0, [r1, 0x3]
- cmp r3, r0
- bcs _0800B65A
- movs r5, 0
- adds r6, r0, 0
-_0800B63A:
- movs r2, 0
- lsls r1, r3, 4
- adds r4, r3, 0x1
- add r1, r9
-_0800B642:
- lsls r0, r2, 1
- adds r0, r1
- strh r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0800B642
- lsls r0, r4, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _0800B63A
-_0800B65A:
- movs r0, 0x1
- mov r7, r12
- strb r0, [r7, 0xC]
- b _0800B6F0
- .align 2, 0
-_0800B664: .4byte gUnknown_3004F74
-_0800B668: .4byte 0x04000208
-_0800B66C: .4byte gUnknown_3003FB0
-_0800B670: .4byte 0x00000fbd
-_0800B674:
- movs r3, 0
- mov r0, r12
- ldrb r1, [r0, 0x3]
- cmp r3, r1
- bcs _0800B6CA
- ldr r0, _0800B708 @ =0x00000fbc
- add r0, r12
- ldrb r0, [r0]
- lsls r6, r0, 1
- movs r2, 0xCF
- lsls r2, 2
- add r2, r12
- mov r8, r2
- mov r10, r1
-_0800B690:
- movs r2, 0
- lsls r1, r3, 4
- adds r4, r3, 0x1
- lsls r0, r3, 1
- mov r7, r9
- adds r5, r1, r7
- adds r0, r3
- lsls r0, 3
- adds r0, r3
- lsls r3, r0, 5
-_0800B6A4:
- lsls r1, r2, 1
- adds r1, r5
- movs r7, 0x64
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6, r0
- adds r0, r3
- add r0, r8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0800B6A4
- lsls r0, r4, 24
- lsrs r3, r0, 24
- cmp r3, r10
- bcc _0800B690
-_0800B6CA:
- mov r2, r12
- ldr r0, _0800B70C @ =0x00000fbd
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- movs r3, 0
- strb r0, [r1]
- ldr r1, _0800B708 @ =0x00000fbc
- adds r2, r1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- bls _0800B6EC
- strb r3, [r2]
-_0800B6EC:
- mov r2, r12
- strb r3, [r2, 0xC]
-_0800B6F0:
- ldr r1, _0800B710 @ =0x04000208
- ldr r3, _0800B714 @ =gUnknown_3004F74
- ldrh r0, [r3]
- strh r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B708: .4byte 0x00000fbc
-_0800B70C: .4byte 0x00000fbd
-_0800B710: .4byte 0x04000208
-_0800B714: .4byte gUnknown_3004F74
- thumb_func_end sub_800B608
-
- thumb_func_start LinkVSync
-LinkVSync: @ 800B718
- push {r4,lr}
- ldr r3, _0800B740 @ =gUnknown_3003FB0
- ldrb r4, [r3]
- cmp r4, 0
- beq _0800B754
- ldrb r0, [r3, 0x1]
- cmp r0, 0x2
- beq _0800B74E
- cmp r0, 0x4
- bne _0800B77E
- movs r0, 0xD
- ldrsb r0, [r3, r0]
- cmp r0, 0x8
- bgt _0800B744
- ldrb r0, [r3, 0x10]
- cmp r0, 0x1
- beq _0800B74E
- movs r0, 0x1
- strb r0, [r3, 0x13]
- b _0800B77E
- .align 2, 0
-_0800B740: .4byte gUnknown_3003FB0
-_0800B744:
- ldrb r0, [r3, 0x13]
- cmp r0, 0x1
- beq _0800B77E
- movs r0, 0
- strb r0, [r3, 0xD]
-_0800B74E:
- bl sub_800B820
- b _0800B77E
-_0800B754:
- ldrb r2, [r3, 0x1]
- cmp r2, 0x4
- beq _0800B75E
- cmp r2, 0x2
- bne _0800B77E
-_0800B75E:
- ldr r1, _0800B784 @ =gUnknown_3000E64
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bls _0800B77E
- cmp r2, 0x4
- bne _0800B776
- movs r0, 0x2
- strb r0, [r3, 0x13]
-_0800B776:
- cmp r2, 0x2
- bne _0800B77E
- strb r4, [r3, 0x3]
- strb r4, [r3, 0xF]
-_0800B77E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B784: .4byte gUnknown_3000E64
- thumb_func_end LinkVSync
-
- thumb_func_start Timer3Intr
-Timer3Intr: @ 800B788
- push {lr}
- bl StopTimer
- bl sub_800B820
- pop {r0}
- bx r0
- thumb_func_end Timer3Intr
-
- thumb_func_start SerialCB
-SerialCB: @ 800B798
- push {r4,lr}
- ldr r4, _0800B7C4 @ =gUnknown_3003FB0
- ldr r0, _0800B7C8 @ =0x04000128
- ldr r1, [r0]
- lsls r0, r1, 26
- lsrs r0, 30
- strb r0, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _0800B7CC
- cmp r0, 0x4
- bne _0800B7EA
- lsls r0, r1, 25
- lsrs r0, 31
- strb r0, [r4, 0x10]
- bl DoRecv
- bl DoSend
- bl SendRecvDone
- b _0800B7EA
- .align 2, 0
-_0800B7C4: .4byte gUnknown_3003FB0
-_0800B7C8: .4byte 0x04000128
-_0800B7CC:
- bl DoHandshake
- lsls r0, 24
- cmp r0, 0
- beq _0800B7EA
- ldrb r0, [r4]
- cmp r0, 0
- beq _0800B7E6
- movs r0, 0x3
- strb r0, [r4, 0x1]
- movs r0, 0x8
- strb r0, [r4, 0xD]
- b _0800B7EA
-_0800B7E6:
- movs r0, 0x4
- strb r0, [r4, 0x1]
-_0800B7EA:
- ldr r3, _0800B810 @ =gUnknown_3003FB0
- ldrb r0, [r3, 0xD]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r3, 0xD]
- ldr r1, _0800B814 @ =gUnknown_3000E64
- strb r2, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- bne _0800B80A
- ldr r0, _0800B818 @ =gUnknown_3004F70
- ldr r2, _0800B81C @ =0x00000fbd
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
-_0800B80A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800B810: .4byte gUnknown_3003FB0
-_0800B814: .4byte gUnknown_3000E64
-_0800B818: .4byte gUnknown_3004F70
-_0800B81C: .4byte 0x00000fbd
- thumb_func_end SerialCB
-
- thumb_func_start sub_800B820
-sub_800B820: @ 800B820
- ldr r0, _0800B82C @ =0x04000128
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0800B82C: .4byte 0x04000128
- thumb_func_end sub_800B820
-
- thumb_func_start DoHandshake
-DoHandshake: @ 800B830
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r6, _0800B84C @ =0x0000ffff
- ldr r0, _0800B850 @ =gUnknown_3003FB0
- ldrb r1, [r0, 0xE]
- adds r7, r0, 0
- cmp r1, 0x1
- bne _0800B85C
- ldr r1, _0800B854 @ =0x0400012a
- ldr r2, _0800B858 @ =0x00008fff
- b _0800B860
- .align 2, 0
-_0800B84C: .4byte 0x0000ffff
-_0800B850: .4byte gUnknown_3003FB0
-_0800B854: .4byte 0x0400012a
-_0800B858: .4byte 0x00008fff
-_0800B85C:
- ldr r1, _0800B8B4 @ =0x0400012a
- ldr r2, _0800B8B8 @ =0x0000b9a0
-_0800B860:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0800B8BC @ =gSioMlt_Recv
- ldr r3, _0800B8C0 @ =0x04000120
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0
- movs r1, 0
- str r0, [r3]
- str r1, [r3, 0x4]
- strb r0, [r2, 0xA]
- movs r4, 0
- ldr r0, _0800B8C4 @ =gUnknown_3000E6B
- mov r9, r0
- mov r8, r2
- ldr r2, _0800B8C8 @ =0x00008fff
- ldr r1, _0800B8CC @ =0x0000ffff
- mov r12, r1
-_0800B888:
- lsls r0, r4, 1
- add r0, r8
- ldrh r3, [r0]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- ldr r1, _0800B8B8 @ =0x0000b9a0
- cmp r0, r1
- beq _0800B8A0
- adds r0, r3, 0
- cmp r0, r2
- bne _0800B8D0
-_0800B8A0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r3, 0
- cmp r6, r0
- bls _0800B8D8
- cmp r0, 0
- beq _0800B8D8
- adds r6, r3, 0
- b _0800B8D8
- .align 2, 0
-_0800B8B4: .4byte 0x0400012a
-_0800B8B8: .4byte 0x0000b9a0
-_0800B8BC: .4byte gSioMlt_Recv
-_0800B8C0: .4byte 0x04000120
-_0800B8C4: .4byte gUnknown_3000E6B
-_0800B8C8: .4byte 0x00008fff
-_0800B8CC: .4byte 0x0000ffff
-_0800B8D0:
- cmp r0, r12
- beq _0800B8E2
- movs r5, 0
- b _0800B8E2
-_0800B8D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0800B888
-_0800B8E2:
- strb r5, [r7, 0x3]
- adds r0, r5, 0
- cmp r0, 0x1
- bls _0800B912
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- bne _0800B904
- ldrh r1, [r7, 0x4]
- ldr r0, _0800B900 @ =0x00008fff
- cmp r1, r0
- bne _0800B904
- movs r0, 0x1
- b _0800B91E
- .align 2, 0
-_0800B900: .4byte 0x00008fff
-_0800B904:
- ldrb r0, [r7, 0x3]
- cmp r0, 0x1
- bls _0800B912
- movs r0, 0x3
- ands r6, r0
- adds r0, r6, 0x1
- b _0800B914
-_0800B912:
- movs r0, 0
-_0800B914:
- strb r0, [r7, 0xF]
- ldrb r0, [r7, 0x3]
- mov r1, r9
- strb r0, [r1]
- movs r0, 0
-_0800B91E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoHandshake
-
- thumb_func_start DoRecv
-DoRecv: @ 800B92C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r0, _0800B984 @ =0x04000120
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _0800B988 @ =gUnknown_3003FB0
- ldrb r1, [r0, 0x16]
- adds r6, r0, 0
- cmp r1, 0
- bne _0800B990
- movs r4, 0
- ldr r7, _0800B98C @ =gUnknown_3000E6A
- ldrb r0, [r6, 0x3]
- cmp r4, r0
- bcs _0800B97A
- adds r5, r6, 0
- ldrh r1, [r6, 0x14]
- adds r3, r7, 0
- adds r2, r6, 0
-_0800B95A:
- lsls r0, r4, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r1, r0
- beq _0800B96E
- ldrb r0, [r3]
- cmp r0, 0
- beq _0800B96E
- movs r0, 0x1
- strb r0, [r5, 0x11]
-_0800B96E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r2, 0x3]
- cmp r4, r0
- bcc _0800B95A
-_0800B97A:
- movs r0, 0
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strb r0, [r7]
- b _0800BA30
- .align 2, 0
-_0800B984: .4byte 0x04000120
-_0800B988: .4byte gUnknown_3003FB0
-_0800B98C: .4byte gUnknown_3000E6A
-_0800B990:
- ldr r2, _0800BA00 @ =0x00000fbc
- adds r1, r6, r2
- adds r2, 0x1
- adds r0, r6, r2
- ldrb r2, [r0]
- ldrb r1, [r1]
- adds r0, r2, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- bls _0800B9AC
- subs r0, 0x32
- lsls r0, 24
- lsrs r0, 24
-_0800B9AC:
- cmp r2, 0x31
- bhi _0800BA08
- movs r4, 0
- ldrb r1, [r6, 0x3]
- cmp r4, r1
- bcs _0800BA0C
- adds r5, r6, 0
- ldr r7, _0800BA04 @ =gUnknown_3000E68
- lsls r0, 1
- mov r12, r0
- movs r2, 0xCF
- lsls r2, 2
- adds r2, r6
- mov r8, r2
-_0800B9C8:
- lsls r1, r4, 1
- mov r2, sp
- adds r0, r2, r1
- ldrh r3, [r0]
- ldrh r2, [r5, 0x14]
- adds r0, r3, r2
- strh r0, [r5, 0x14]
- ldrh r0, [r7]
- orrs r0, r3
- strh r0, [r7]
- ldrb r2, [r5, 0x17]
- movs r0, 0x64
- muls r0, r2
- add r0, r12
- adds r1, r4
- lsls r1, 3
- adds r1, r4
- lsls r1, 5
- adds r0, r1
- add r0, r8
- strh r3, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5, 0x3]
- cmp r4, r0
- bcc _0800B9C8
- b _0800BA0C
- .align 2, 0
-_0800BA00: .4byte 0x00000fbc
-_0800BA04: .4byte gUnknown_3000E68
-_0800BA08:
- movs r0, 0x2
- strb r0, [r6, 0x12]
-_0800BA0C:
- ldrb r0, [r6, 0x17]
- adds r0, 0x1
- strb r0, [r6, 0x17]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bne _0800BA30
- ldr r2, _0800BA3C @ =gUnknown_3000E68
- ldrh r0, [r2]
- cmp r0, 0
- beq _0800BA30
- ldr r1, _0800BA40 @ =0x00000fbd
- adds r0, r6, r1
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r0, 0
- strh r0, [r2]
-_0800BA30:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BA3C: .4byte gUnknown_3000E68
-_0800BA40: .4byte 0x00000fbd
- thumb_func_end DoRecv
-
- thumb_func_start DoSend
-DoSend: @ 800BA44
- push {r4,lr}
- ldr r0, _0800BA80 @ =gUnknown_3003FB0
- ldrb r1, [r0, 0x16]
- adds r4, r0, 0
- cmp r1, 0x8
- bne _0800BA96
- ldr r1, _0800BA84 @ =0x0400012a
- ldrh r0, [r4, 0x14]
- strh r0, [r1]
- ldr r1, _0800BA88 @ =gUnknown_3000E65
- ldrb r2, [r1]
- cmp r2, 0
- bne _0800BA90
- ldr r0, _0800BA8C @ =0x00000339
- adds r1, r4, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r0, 0xCE
- lsls r0, 2
- adds r1, r4, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x31
- bls _0800BAEC
- strb r2, [r1]
- b _0800BAEC
- .align 2, 0
-_0800BA80: .4byte gUnknown_3003FB0
-_0800BA84: .4byte 0x0400012a
-_0800BA88: .4byte gUnknown_3000E65
-_0800BA8C: .4byte 0x00000339
-_0800BA90:
- movs r0, 0
- strb r0, [r1]
- b _0800BAEC
-_0800BA96:
- ldr r1, _0800BABC @ =gUnknown_3000E65
- ldrb r0, [r1]
- cmp r0, 0
- bne _0800BAB2
- ldr r2, _0800BAC0 @ =0x00000339
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800BAAC
- movs r0, 0x1
- strb r0, [r1]
-_0800BAAC:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800BAC8
-_0800BAB2:
- ldr r1, _0800BAC4 @ =0x0400012a
- movs r0, 0
- strh r0, [r1]
- b _0800BAE6
- .align 2, 0
-_0800BABC: .4byte gUnknown_3000E65
-_0800BAC0: .4byte 0x00000339
-_0800BAC4: .4byte 0x0400012a
-_0800BAC8:
- ldr r3, _0800BAF4 @ =0x0400012a
- movs r1, 0xCE
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 1
- ldrb r2, [r4, 0x16]
- movs r1, 0x64
- muls r1, r2
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
-_0800BAE6:
- ldrb r0, [r4, 0x16]
- adds r0, 0x1
- strb r0, [r4, 0x16]
-_0800BAEC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BAF4: .4byte 0x0400012a
- thumb_func_end DoSend
-
- thumb_func_start StopTimer
-StopTimer: @ 800BAF8
- push {lr}
- ldr r0, _0800BB18 @ =gUnknown_3003FB0
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800BB14
- ldr r2, _0800BB1C @ =0x0400010e
- ldrh r1, [r2]
- ldr r0, _0800BB20 @ =0x0000ff7f
- ands r0, r1
- strh r0, [r2]
- ldr r1, _0800BB24 @ =0x0400010c
- ldr r2, _0800BB28 @ =0x0000ff3b
- adds r0, r2, 0
- strh r0, [r1]
-_0800BB14:
- pop {r0}
- bx r0
- .align 2, 0
-_0800BB18: .4byte gUnknown_3003FB0
-_0800BB1C: .4byte 0x0400010e
-_0800BB20: .4byte 0x0000ff7f
-_0800BB24: .4byte 0x0400010c
-_0800BB28: .4byte 0x0000ff3b
- thumb_func_end StopTimer
-
- thumb_func_start SendRecvDone
-SendRecvDone: @ 800BB2C
- push {lr}
- ldr r1, _0800BB40 @ =gUnknown_3003FB0
- ldrb r0, [r1, 0x17]
- cmp r0, 0x8
- bne _0800BB44
- movs r0, 0
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- b _0800BB54
- .align 2, 0
-_0800BB40: .4byte gUnknown_3003FB0
-_0800BB44:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800BB54
- ldr r0, _0800BB58 @ =0x0400010e
- ldrh r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strh r1, [r0]
-_0800BB54:
- pop {r0}
- bx r0
- .align 2, 0
-_0800BB58: .4byte 0x0400010e
- thumb_func_end SendRecvDone
-
- thumb_func_start ResetSendBuffer
-ResetSendBuffer: @ 800BB5C
- push {r4-r6,lr}
- ldr r1, _0800BBA4 @ =gUnknown_3003FB0
- ldr r2, _0800BBA8 @ =0x00000339
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- movs r3, 0xCE
- lsls r3, 2
- adds r0, r1, r3
- strb r2, [r0]
- movs r0, 0
- movs r6, 0x64
- adds r5, r1, 0
- adds r5, 0x18
- ldr r4, _0800BBAC @ =0x0000efff
-_0800BB7A:
- movs r2, 0
- adds r1, r0, 0x1
- adds r3, r0, 0
- muls r3, r6
-_0800BB82:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r5
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x31
- bls _0800BB82
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x7
- bls _0800BB7A
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BBA4: .4byte gUnknown_3003FB0
-_0800BBA8: .4byte 0x00000339
-_0800BBAC: .4byte 0x0000efff
- thumb_func_end ResetSendBuffer
-
- thumb_func_start ResetRecvBuffer
-ResetRecvBuffer: @ 800BBB0
- push {r4-r7,lr}
- ldr r1, _0800BC10 @ =gUnknown_3003FB0
- ldr r2, _0800BC14 @ =0x00000fbd
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _0800BC18 @ =0x00000fbc
- adds r0, r1, r3
- strb r2, [r0]
- movs r0, 0x64
- mov r12, r0
- movs r3, 0xCF
- lsls r3, 2
- adds r7, r1, r3
- ldr r6, _0800BC1C @ =0x0000efff
-_0800BBCE:
- movs r3, 0
- lsls r0, r2, 1
- adds r5, r2, 0x1
- adds r0, r2
- lsls r0, 3
- adds r0, r2
- lsls r4, r0, 5
-_0800BBDC:
- movs r2, 0
- adds r1, r3, 0x1
- mov r0, r12
- muls r0, r3
- adds r3, r0, 0
-_0800BBE6:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r4
- adds r0, r7
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x31
- bls _0800BBE6
- lsls r0, r1, 24
- lsrs r3, r0, 24
- cmp r3, 0x7
- bls _0800BBDC
- lsls r0, r5, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0800BBCE
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800BC10: .4byte gUnknown_3003FB0
-_0800BC14: .4byte 0x00000fbd
-_0800BC18: .4byte 0x00000fbc
-_0800BC1C: .4byte 0x0000efff
- thumb_func_end ResetRecvBuffer
-
- .align 2, 0 @ Don't pad with nop.