summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s2
-rw-r--r--asm/cable_club.s22
-rw-r--r--asm/link.s1787
-rw-r--r--asm/link_rfu_2.s60
-rw-r--r--asm/overworld.s10
-rw-r--r--asm/trade.s10
6 files changed, 52 insertions, 1839 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 344325ff4..90c429e19 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -1645,7 +1645,7 @@ _08010B2A:
ldrb r0, [r0]
cmp r0, 0
beq _08010B64
- bl IsNoOneConnected
+ bl IsRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08010B82
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 03105bc3d..d7432e2c2 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -142,7 +142,7 @@ sub_8080844: @ 8080844
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- bl sub_800A0D0
+ bl GetLinkPlayerDataExchangeStatusTimed
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
@@ -384,9 +384,9 @@ sub_80809F8: @ 80809F8
ldrsh r2, [r4, r3]
cmp r2, 0
bne _08080A30
- bl sub_800A0B4
+ bl OpenLinkTimed
bl sub_800AA24
- bl sub_800A270
+ bl ResetLinkPlayers
ldr r0, _08080A2C @ =gUnknown_83C6AB0
bl AddWindow
strh r0, [r4, 0xA]
@@ -608,7 +608,7 @@ sub_8080BC8: @ 8080BC8
lsls r0, 24
cmp r0, 0
bne _08080C5C
- bl sub_800A944
+ bl GetSavedPlayerCount
adds r4, r0, 0
bl GetLinkPlayerCount_2
lsls r4, 24
@@ -685,7 +685,7 @@ sub_8080C6C: @ 8080C6C
beq _08080CCE
bl GetLinkPlayerCount_2
adds r4, r0, 0
- bl sub_800A944
+ bl GetSavedPlayerCount
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -1368,7 +1368,7 @@ sub_80811FC: @ 80811FC
cmp r2, 0
bne _08081230
bl OpenLink
- bl sub_800A270
+ bl ResetLinkPlayers
ldr r0, _0808122C @ =sub_8081A90
movs r1, 0x50
bl CreateTask
@@ -1443,7 +1443,7 @@ sub_80812A0: @ 80812A0
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl sub_800A944
+ bl GetSavedPlayerCount
adds r4, r0, 0
bl GetLinkPlayerCount_2
lsls r4, 24
@@ -1541,7 +1541,7 @@ _0808135C:
ldr r2, _08081378 @ =0x00002211
adds r0, r2, 0
strh r0, [r1]
- bl sub_800A068
+ bl ClearLinkCallback_2
b _080813AA
.align 2, 0
_08081374: .4byte gLinkType
@@ -1698,7 +1698,7 @@ _080814A0:
ldr r2, _080814C0 @ =0x00002211
adds r1, r2, 0
strh r1, [r0]
- bl sub_800A068
+ bl ClearLinkCallback_2
movs r0, 0x1
strh r0, [r6]
b _0808160A
@@ -2180,7 +2180,7 @@ _08081882:
movs r0, 0x1
movs r1, 0
bl fade_screen
- bl sub_800A068
+ bl ClearLinkCallback_2
b _080818B8
_08081894:
ldr r0, _080818A4 @ =gPaletteFade
@@ -2256,7 +2256,7 @@ _0808191A:
movs r0, 0x1
movs r1, 0
bl fade_screen
- bl sub_80F985C
+ bl Rfu_set_zero
b _08081950
_0808192C:
ldr r0, _0808193C @ =gPaletteFade
diff --git a/asm/link.s b/asm/link.s
index 14131af9e..b0de10227 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -5,1793 +5,6 @@
.text
- 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 @ =gLinkCallback
- ldr r0, _0800A008 @ =sub_800A040
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A000: .4byte gWirelessCommType
-_0800A004: .4byte gLinkCallback
-_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 @ =gLinkCallback
- ldr r1, [r0]
- ldr r0, _0800A034 @ =sub_800A040
- cmp r1, r0
- beq _0800A038
- movs r0, 0
- b _0800A03A
- .align 2, 0
-_0800A030: .4byte gLinkCallback
-_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 BuildSendCmd
-_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 @ =gLinkCallback
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A064: .4byte gLinkCallback
- 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 @ =gLinkCallback
- str r1, [r0]
-_0800A080:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A084: .4byte gLinkCallback
- 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 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- b _0800A0B0
- .align 2, 0
-_0800A0A0: .4byte gWirelessCommType
-_0800A0A4: .4byte gLinkStatus
-_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 @ =sPlayerDataExchangeStatus
- movs r1, 0
- str r1, [r0]
- ldr r0, _0800A0CC @ =gLinkTimeOutCounter
- strh r1, [r0]
- bl OpenLink
- pop {r0}
- bx r0
- .align 2, 0
-_0800A0C8: .4byte sPlayerDataExchangeStatus
-_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 @ =sPlayerDataExchangeStatus
- movs r0, 0x6
- str r0, [r1]
- b _0800A1E2
- .align 2, 0
-_0800A0F8: .4byte gReceivedRemoteLinkPlayers
-_0800A0FC: .4byte sPlayerDataExchangeStatus
-_0800A100:
- bl GetLinkPlayerCount
- lsls r0, 24
- cmp r0, 0
- bne _0800A112
- ldr r0, _0800A11C @ =gLinkErrorOccurred
- strb r4, [r0]
- bl CloseLink
-_0800A112:
- movs r6, 0
- ldr r4, _0800A120 @ =gLinkPlayers
- movs r5, 0
- b _0800A138
- .align 2, 0
-_0800A11C: .4byte gLinkErrorOccurred
-_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 @ =sPlayerDataExchangeStatus
- b _0800A1E0
- .align 2, 0
-_0800A170: .4byte gLinkPlayers
-_0800A174: .4byte 0x00001133
-_0800A178: .4byte sPlayerDataExchangeStatus
-_0800A17C:
- cmp r0, 0x2
- beq _0800A1A0
- ldr r2, _0800A184 @ =sPlayerDataExchangeStatus
- b _0800A1E0
- .align 2, 0
-_0800A184: .4byte sPlayerDataExchangeStatus
-_0800A188:
- ldr r1, _0800A190 @ =sPlayerDataExchangeStatus
- movs r0, 0x1
- b _0800A1BC
- .align 2, 0
-_0800A190: .4byte sPlayerDataExchangeStatus
-_0800A194:
- ldr r1, _0800A19C @ =sPlayerDataExchangeStatus
- movs r0, 0x4
- b _0800A1BC
- .align 2, 0
-_0800A19C: .4byte sPlayerDataExchangeStatus
-_0800A1A0:
- ldr r1, _0800A1A8 @ =sPlayerDataExchangeStatus
- movs r0, 0x5
- b _0800A1BC
- .align 2, 0
-_0800A1A8: .4byte sPlayerDataExchangeStatus
-_0800A1AC:
- ldr r1, _0800A1B4 @ =sPlayerDataExchangeStatus
- movs r0, 0x1
- b _0800A1BC
- .align 2, 0
-_0800A1B4: .4byte sPlayerDataExchangeStatus
-_0800A1B8:
- ldr r1, _0800A1C4 @ =sPlayerDataExchangeStatus
- movs r0, 0x3
-_0800A1BC:
- str r0, [r1]
- adds r2, r1, 0
- b _0800A1E0
- .align 2, 0
-_0800A1C4: .4byte sPlayerDataExchangeStatus
-_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 @ =sPlayerDataExchangeStatus
- 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 sPlayerDataExchangeStatus
- 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 @ =sPlayerDataExchangeStatus
- str r2, [r0]
- b _0800A24C
- .align 2, 0
-_0800A240: .4byte sPlayerDataExchangeStatus
-_0800A244:
- movs r2, 0
- ldr r1, _0800A254 @ =sPlayerDataExchangeStatus
- movs r0, 0x3
- str r0, [r1]
-_0800A24C:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0800A254: .4byte sPlayerDataExchangeStatus
- 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 @ =sBlockSend
- 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 sBlockSend
- 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 @ =sBlockSend
- ldrb r5, [r4, 0x8]
- cmp r5, 0
- beq _0800A2C0
- movs r0, 0
- b _0800A2FE
- .align 2, 0
-_0800A2BC: .4byte sBlockSend
-_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 BuildSendCmd
- ldr r1, _0800A30C @ =gLinkCallback
- ldr r0, _0800A310 @ =LinkCB_BlockSendBegin
- str r0, [r1]
- ldr r1, _0800A314 @ =sBlockSendDelayCounter
- 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 gLinkCallback
-_0800A310: .4byte LinkCB_BlockSendBegin
-_0800A314: .4byte sBlockSendDelayCounter
- thumb_func_end InitBlockSend
-
- thumb_func_start LinkCB_BlockSendBegin
-LinkCB_BlockSendBegin: @ 800A318
- push {lr}
- ldr r1, _0800A330 @ =sBlockSendDelayCounter
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0x2
- bls _0800A32C
- ldr r1, _0800A334 @ =gLinkCallback
- ldr r0, _0800A338 @ =LinkCB_BlockSend
- str r0, [r1]
-_0800A32C:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A330: .4byte sBlockSendDelayCounter
-_0800A334: .4byte gLinkCallback
-_0800A338: .4byte LinkCB_BlockSend
- thumb_func_end LinkCB_BlockSendBegin
-
- thumb_func_start LinkCB_BlockSend
-LinkCB_BlockSend: @ 800A33C
- push {r4-r6,lr}
- ldr r0, _0800A38C @ =sBlockSend
- ldr r5, [r0, 0x4]
- ldr r2, _0800A390 @ =gSendCmd
- 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 @ =gLinkCallback
- ldr r0, _0800A39C @ =sub_800A3A0
- str r0, [r1]
-_0800A384:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800A38C: .4byte sBlockSend
-_0800A390: .4byte gSendCmd
-_0800A394: .4byte 0x00008888
-_0800A398: .4byte gLinkCallback
-_0800A39C: .4byte sub_800A3A0
- thumb_func_end LinkCB_BlockSend
-
- thumb_func_start sub_800A3A0
-sub_800A3A0: @ 800A3A0
- ldr r1, _0800A3A8 @ =gLinkCallback
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A3A8: .4byte gLinkCallback
- thumb_func_end sub_800A3A0
-
- thumb_func_start sub_800A3AC
-sub_800A3AC: @ 800A3AC
- push {lr}
- bl GetMultiplayerId
- ldr r0, _0800A3C4 @ =0x00004444
- bl BuildSendCmd
- 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 @ =gLinkCallback
- ldr r0, _0800A3E4 @ =sub_800A3AC
- str r0, [r1]
- bx lr
- .align 2, 0
-_0800A3DC: .4byte gUnknown_2022114
-_0800A3E0: .4byte gLinkCallback
-_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 BuildSendCmd
- 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 @ =gLinkCallback
- ldr r0, [r0]
- cmp r0, 0
- beq _0800A4A4
- movs r0, 0
- b _0800A4B0
- .align 2, 0
-_0800A4A0: .4byte gLinkCallback
-_0800A4A4:
- ldr r0, _0800A4B4 @ =gBlockRequestType
- strb r2, [r0]
- ldr r0, _0800A4B8 @ =0x0000cccc
- bl BuildSendCmd
- movs r0, 0x1
-_0800A4B0:
- pop {r1}
- bx r1
- .align 2, 0
-_0800A4B4: .4byte gBlockRequestType
-_0800A4B8: .4byte 0x0000cccc
- thumb_func_end sub_800A474
-
- thumb_func_start IsLinkTaskFinished
-IsLinkTaskFinished: @ 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 @ =gLinkCallback
- 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 gLinkCallback
- thumb_func_end IsLinkTaskFinished
-
- thumb_func_start GetBlockReceivedStatus
-GetBlockReceivedStatus: @ 800A4EC
- push {lr}
- ldr r0, _0800A510 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800A518
- ldr r2, _0800A514 @ =gBlockReceivedStatus
- 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 gBlockReceivedStatus
-_0800A518:
- bl sub_80F9CC8
-_0800A51C:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetBlockReceivedStatus
-
- thumb_func_start SetBlockReceivedFlag
-SetBlockReceivedFlag: @ 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 @ =gBlockReceivedStatus
- adds r0, r1, r0
- movs r1, 0x1
- strb r1, [r0]
-_0800A548:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A54C: .4byte gBlockReceivedStatus
- thumb_func_end SetBlockReceivedFlag
-
- 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 @ =gBlockReceivedStatus
- 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 gBlockReceivedStatus
- 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 @ =gBlockReceivedStatus
- 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 gBlockReceivedStatus
- thumb_func_end ResetBlockReceivedFlag
-
- thumb_func_start CheckShouldAdvanceLinkState
-CheckShouldAdvanceLinkState: @ 800A5BC
- push {lr}
- ldr r0, _0800A5DC @ =gLinkStatus
- 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 @ =gShouldAdvanceLinkState
- movs r0, 0x1
- strb r0, [r1]
-_0800A5D8:
- pop {r0}
- bx r0
- .align 2, 0
-_0800A5DC: .4byte gLinkStatus
-_0800A5E0: .4byte gShouldAdvanceLinkState
- thumb_func_end CheckShouldAdvanceLinkState
-
- 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 @ =gLinkTestBGInfo
- 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 gLinkTestBGInfo
- 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 @ =gLinkTestBGInfo
- 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 gLinkTestBGInfo
- thumb_func_end sub_800A64C
-
- thumb_func_start LinkTest_prnthex
-LinkTest_prnthex: @ 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 LinkTest_prnthex
-
- 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 LinkCB_RequestPlayerDataExchange
-LinkCB_RequestPlayerDataExchange: @ 800A720
- push {lr}
- ldr r0, _0800A740 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800A734
- ldr r0, _0800A744 @ =0x00002222
- bl BuildSendCmd
-_0800A734:
- ldr r1, _0800A748 @ =gLinkCallback
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0800A740: .4byte gLinkStatus
-_0800A744: .4byte 0x00002222
-_0800A748: .4byte gLinkCallback
- thumb_func_end LinkCB_RequestPlayerDataExchange
-
- thumb_func_start task00_link_test
-task00_link_test: @ 800A74C
- push {r4-r6,lr}
- sub sp, 0x20
- ldr r1, _0800A86C @ =gASCIITestPrint
- mov r0, sp
- bl strcpy
- mov r0, sp
- movs r1, 0x5
- movs r2, 0x2
- bl sub_800A6D8
- ldr r0, _0800A870 @ =gShouldAdvanceLinkState
- ldrb r0, [r0]
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x2
- bl LinkTest_prnthex
- ldr r4, _0800A874 @ =gLinkStatus
- ldr r0, [r4]
- movs r1, 0xF
- movs r2, 0x1
- movs r3, 0x8
- bl LinkTest_prnthex
- ldr r0, _0800A878 @ =gLink
- ldrb r0, [r0, 0x1]
- movs r1, 0x2
- movs r2, 0xA
- movs r3, 0x2
- bl LinkTest_prnthex
- ldr r0, [r4]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- movs r1, 0xF
- movs r2, 0xA
- movs r3, 0x2
- bl LinkTest_prnthex
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xF
- movs r2, 0xC
- movs r3, 0x2
- bl LinkTest_prnthex
- ldr r0, _0800A87C @ =gLastSendQueueCount
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0x1
- movs r3, 0x2
- bl LinkTest_prnthex
- ldr r0, _0800A880 @ =gLastRecvQueueCount
- ldrb r0, [r0]
- movs r1, 0x19
- movs r2, 0x2
- movs r3, 0x2
- bl LinkTest_prnthex
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xF
- movs r2, 0x5
- movs r3, 0x2
- bl LinkTest_prnthex
- ldr r0, _0800A884 @ =gLinkDebugSeed
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xC
- movs r3, 0x8
- bl LinkTest_prnthex
- ldr r0, _0800A888 @ =gLinkDebugFlags
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- movs r3, 0x8
- bl LinkTest_prnthex
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x5
- movs r3, 0x1
- bl LinkTest_prnthex
- bl IsSioMultiMaster
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x6
- movs r3, 0x1
- bl LinkTest_prnthex
- bl IsLinkConnectionEstablished
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x7
- movs r3, 0x1
- bl LinkTest_prnthex
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x19
- movs r2, 0x8
- movs r3, 0x1
- bl LinkTest_prnthex
- movs r6, 0
- movs r5, 0x80
- lsls r5, 19
- ldr r4, _0800A88C @ =gLinkTestBlockChecksums
-_0800A84A:
- ldrh r0, [r4]
- lsrs r2, r5, 24
- movs r1, 0xA
- movs r3, 0x4
- bl LinkTest_prnthex
- 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 gASCIITestPrint
-_0800A870: .4byte gShouldAdvanceLinkState
-_0800A874: .4byte gLinkStatus
-_0800A878: .4byte gLink
-_0800A87C: .4byte gLastSendQueueCount
-_0800A880: .4byte gLastRecvQueueCount
-_0800A884: .4byte gLinkDebugSeed
-_0800A888: .4byte gLinkDebugFlags
-_0800A88C: .4byte gLinkTestBlockChecksums
- thumb_func_end task00_link_test
-
- thumb_func_start SetLinkDebugValues
-SetLinkDebugValues: @ 800A890
- ldr r2, _0800A89C @ =gLinkDebugSeed
- str r0, [r2]
- ldr r0, _0800A8A0 @ =gLinkDebugFlags
- str r1, [r0]
- bx lr
- .align 2, 0
-_0800A89C: .4byte gLinkDebugSeed
-_0800A8A0: .4byte gLinkDebugFlags
- thumb_func_end SetLinkDebugValues
-
- thumb_func_start sub_800A8A4
-sub_800A8A4: @ 800A8A4
- push {r4,lr}
- movs r1, 0
- movs r2, 0
- ldr r0, _0800A8D0 @ =gSavedLinkPlayerCount
- 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 gSavedLinkPlayerCount
- 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 @ =gSavedLinkPlayerCount
- strb r0, [r1]
- bl GetMultiplayerId
- ldr r1, _0800A938 @ =gSavedMultiplayerId
- 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 gSavedLinkPlayerCount
-_0800A938: .4byte gSavedMultiplayerId
-_0800A93C: .4byte gLinkPlayers
-_0800A940: .4byte gSavedLinkPlayers
- thumb_func_end sub_800A900
-
- thumb_func_start sub_800A944
-sub_800A944: @ 800A944
- ldr r0, _0800A94C @ =gSavedLinkPlayerCount
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800A94C: .4byte gSavedLinkPlayerCount
- thumb_func_end sub_800A944
-
- thumb_func_start sub_800A950
-sub_800A950: @ 800A950
- ldr r0, _0800A958 @ =gSavedMultiplayerId
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0800A958: .4byte gSavedMultiplayerId
- thumb_func_end sub_800A950
-
- thumb_func_start sub_800A95C
-sub_800A95C: @ 800A95C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0800A990 @ =gSavedLinkPlayerCount
- 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 gSavedLinkPlayerCount
-_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 @ =gSavedLinkPlayerCount
- 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 @ =gLinkErrorOccurred
- movs r0, 0x1
- strb r0, [r1]
- bl CloseLink
- ldr r0, _0800AA20 @ =CB2_LinkError
- bl SetMainCallback2
-_0800A9F6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800AA10 @ =gSavedLinkPlayerCount
- 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 gSavedLinkPlayerCount
-_0800AA14: .4byte gSavedLinkPlayers
-_0800AA18: .4byte gLinkPlayers
-_0800AA1C: .4byte gLinkErrorOccurred
-_0800AA20: .4byte CB2_LinkError
- thumb_func_end sub_800A9A4
-
- thumb_func_start sub_800AA24
-sub_800AA24: @ 800AA24
- ldr r0, _0800AA30 @ =gSavedLinkPlayerCount
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0800AA34 @ =gSavedMultiplayerId
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0800AA30: .4byte gSavedLinkPlayerCount
-_0800AA34: .4byte gSavedMultiplayerId
- thumb_func_end sub_800AA24
-
- thumb_func_start GetLinkPlayerCount_2
-GetLinkPlayerCount_2: @ 800AA38
- ldr r0, _0800AA44 @ =gLinkStatus
- ldr r0, [r0]
- movs r1, 0x1C
- ands r0, r1
- lsrs r0, 2
- bx lr
- .align 2, 0
-_0800AA44: .4byte gLinkStatus
- thumb_func_end GetLinkPlayerCount_2
-
- thumb_func_start IsLinkMaster
-IsLinkMaster: @ 800AA48
- push {lr}
- ldr r0, _0800AA60 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AA68
- ldr r0, _0800AA64 @ =gLinkStatus
- ldr r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- ands r0, r1
- b _0800AA70
- .align 2, 0
-_0800AA60: .4byte gWirelessCommType
-_0800AA64: .4byte gLinkStatus
-_0800AA68:
- bl sub_80FBA2C
- lsls r0, 24
- lsrs r0, 24
-_0800AA70:
- pop {r1}
- bx r1
- thumb_func_end IsLinkMaster
-
- 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 @ =gLinkCallback
- 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 gLinkCallback
-_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 @ =gLinkCallback
- 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 gLinkCallback
-_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 @ =gLastRecvQueueCount
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AB22
- ldr r0, _0800AB2C @ =0x00005fff
- bl BuildSendCmd
- ldr r1, _0800AB30 @ =gLinkCallback
- ldr r0, _0800AB34 @ =sub_800AB38
- str r0, [r1]
-_0800AB22:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AB28: .4byte gLastRecvQueueCount
-_0800AB2C: .4byte 0x00005fff
-_0800AB30: .4byte gLinkCallback
-_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 @ =gLinkCallback
- 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 gLinkCallback
-_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 @ =gLinkCallback
- 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 gLinkCallback
-_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 @ =gLastRecvQueueCount
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800ABEA
- ldr r0, _0800ABF4 @ =0x00002ffe
- bl BuildSendCmd
- ldr r1, _0800ABF8 @ =gLinkCallback
- ldr r0, _0800ABFC @ =sub_800AC00
- str r0, [r1]
-_0800ABEA:
- pop {r0}
- bx r0
- .align 2, 0
-_0800ABF0: .4byte gLastRecvQueueCount
-_0800ABF4: .4byte 0x00002ffe
-_0800ABF8: .4byte gLinkCallback
-_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 @ =gLinkCallback
- 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 gLinkCallback
- thumb_func_end sub_800AC00
-
- thumb_func_start CheckErrorStatus
-CheckErrorStatus: @ 800AC58
- push {lr}
- ldr r0, _0800AC9C @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0
- beq _0800AC98
- ldr r0, _0800ACA0 @ =gLinkStatus
- ldr r2, [r0]
- movs r0, 0xFE
- lsls r0, 11
- ands r0, r2
- cmp r0, 0
- beq _0800AC98
- ldr r0, _0800ACA4 @ =gSuppressLinkErrorMessage
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800AC8E
- ldr r1, _0800ACA8 @ =sLinkErrorBuffer
- str r2, [r1]
- ldr r0, _0800ACAC @ =gLastRecvQueueCount
- ldrb r0, [r0]
- strb r0, [r1, 0x4]
- ldr r0, _0800ACB0 @ =gLastSendQueueCount
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- ldr r0, _0800ACB4 @ =CB2_LinkError
- bl SetMainCallback2
-_0800AC8E:
- ldr r1, _0800ACB8 @ =gLinkErrorOccurred
- movs r0, 0x1
- strb r0, [r1]
- bl CloseLink
-_0800AC98:
- pop {r0}
- bx r0
- .align 2, 0
-_0800AC9C: .4byte gLinkOpen
-_0800ACA0: .4byte gLinkStatus
-_0800ACA4: .4byte gSuppressLinkErrorMessage
-_0800ACA8: .4byte sLinkErrorBuffer
-_0800ACAC: .4byte gLastRecvQueueCount
-_0800ACB0: .4byte gLastSendQueueCount
-_0800ACB4: .4byte CB2_LinkError
-_0800ACB8: .4byte gLinkErrorOccurred
- thumb_func_end CheckErrorStatus
-
thumb_func_start sub_800ACBC
sub_800ACBC: @ 800ACBC
push {r4,lr}
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index 3b6ec730f..04c4621e7 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -2148,8 +2148,8 @@ _080F9718: .4byte gUnknown_3005AF0
_080F971C: .4byte gUnknown_30054BE
thumb_func_end sub_80F965C
- thumb_func_start sub_80F9720
-sub_80F9720: @ 80F9720
+ thumb_func_start Rfu_SetBlockReceivedFlag
+Rfu_SetBlockReceivedFlag: @ 80F9720
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -2173,10 +2173,10 @@ _080F9740:
_080F9748:
pop {r0}
bx r0
- thumb_func_end sub_80F9720
+ thumb_func_end Rfu_SetBlockReceivedFlag
- thumb_func_start sub_80F974C
-sub_80F974C: @ 80F974C
+ thumb_func_start Rfu_ResetBlockReceivedFlag
+Rfu_ResetBlockReceivedFlag: @ 80F974C
lsls r0, 24
lsrs r0, 24
ldr r3, _080F976C @ =gUnknown_3005450
@@ -2194,7 +2194,7 @@ sub_80F974C: @ 80F974C
bx lr
.align 2, 0
_080F976C: .4byte gUnknown_3005450
- thumb_func_end sub_80F974C
+ thumb_func_end Rfu_ResetBlockReceivedFlag
thumb_func_start sub_80F9770
sub_80F9770: @ 80F9770
@@ -2281,8 +2281,8 @@ sub_80F9800: @ 80F9800
_080F9804: .4byte gUnknown_3005440
thumb_func_end sub_80F9800
- thumb_func_start sub_80F9808
-sub_80F9808: @ 80F9808
+ thumb_func_start IsSendingKeysToRfu
+IsSendingKeysToRfu: @ 80F9808
push {lr}
movs r2, 0
ldr r0, _080F9820 @ =gUnknown_3005450
@@ -2298,7 +2298,7 @@ _080F9818:
.align 2, 0
_080F9820: .4byte gUnknown_3005450
_080F9824: .4byte rfu_func_080F97B8
- thumb_func_end sub_80F9808
+ thumb_func_end IsSendingKeysToRfu
thumb_func_start sub_80F9828
sub_80F9828: @ 80F9828
@@ -2326,15 +2326,15 @@ _080F9854: .4byte gUnknown_843EDC4
_080F9858: .4byte rfu_func_080F97B8
thumb_func_end sub_80F9828
- thumb_func_start sub_80F985C
-sub_80F985C: @ 80F985C
+ thumb_func_start Rfu_set_zero
+Rfu_set_zero: @ 80F985C
ldr r1, _080F9864 @ =gUnknown_3005450
movs r0, 0
str r0, [r1]
bx lr
.align 2, 0
_080F9864: .4byte gUnknown_3005450
- thumb_func_end sub_80F985C
+ thumb_func_end Rfu_set_zero
thumb_func_start sub_80F9868
sub_80F9868: @ 80F9868
@@ -2597,7 +2597,7 @@ _080F9A4C:
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
- bl sub_80F9720
+ bl Rfu_SetBlockReceivedFlag
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
@@ -2637,7 +2637,7 @@ _080F9A9C:
adds r2, 0x4
adds r1, r2
ldrh r1, [r1]
- bl sub_80F9E60
+ bl Rfu_InitBlockSend
b _080F9BF4
.align 2, 0
_080F9AB8: .4byte gUnknown_843EC64
@@ -2909,8 +2909,8 @@ sub_80F9CB4: @ 80F9CB4
bx lr
thumb_func_end sub_80F9CB4
- thumb_func_start sub_80F9CC8
-sub_80F9CC8: @ 80F9CC8
+ thumb_func_start Rfu_GetBlockReceivedStatus
+Rfu_GetBlockReceivedStatus: @ 80F9CC8
push {r4,lr}
movs r2, 0
movs r1, 0
@@ -2942,7 +2942,7 @@ _080F9CEE:
bx r1
.align 2, 0
_080F9D00: .4byte gUnknown_3005450
- thumb_func_end sub_80F9CC8
+ thumb_func_end Rfu_GetBlockReceivedStatus
thumb_func_start sub_80F9D04
sub_80F9D04: @ 80F9D04
@@ -3126,8 +3126,8 @@ _080F9E58: .4byte gSendCmd
_080F9E5C: .4byte gUnknown_3005542
thumb_func_end sub_80F9E2C
- thumb_func_start sub_80F9E60
-sub_80F9E60: @ 80F9E60
+ thumb_func_start Rfu_InitBlockSend
+Rfu_InitBlockSend: @ 80F9E60
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -3235,7 +3235,7 @@ _080F9F2A:
_080F9F38: .4byte gBlockSendBuffer
_080F9F3C: .4byte gUnknown_3005450
_080F9F40: .4byte rfufunc_80F9F44
- thumb_func_end sub_80F9E60
+ thumb_func_end Rfu_InitBlockSend
thumb_func_start rfufunc_80F9F44
rfufunc_80F9F44: @ 80F9F44
@@ -4003,17 +4003,17 @@ _080FA4E6:
bx r1
thumb_func_end rfu_get_multiplayer_id
- thumb_func_start sub_80FA4EC
-sub_80FA4EC: @ 80FA4EC
+ thumb_func_start GetRfuPlayerCount
+GetRfuPlayerCount: @ 80FA4EC
ldr r0, _080FA4F4 @ =gUnknown_3005450
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
_080FA4F4: .4byte gUnknown_3005450
- thumb_func_end sub_80FA4EC
+ thumb_func_end GetRfuPlayerCount
- thumb_func_start IsNoOneConnected
-IsNoOneConnected: @ 80FA4F8
+ thumb_func_start IsRfuTaskFinished
+IsRfuTaskFinished: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end IsNoOneConnected
+ thumb_func_end IsRfuTaskFinished
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
@@ -4590,7 +4590,7 @@ _080FA940:
bl sub_800B110
lsls r0, r4, 24
lsrs r0, 24
- bl sub_80F974C
+ bl Rfu_ResetBlockReceivedFlag
adds r4, 0x1
ldrb r2, [r5, 0xD]
cmp r4, r2
@@ -6812,14 +6812,14 @@ sub_80FBA1C: @ 80FBA1C
_080FBA28: .4byte gUnknown_3005450
thumb_func_end sub_80FBA1C
- thumb_func_start sub_80FBA2C
-sub_80FBA2C: @ 80FBA2C
+ thumb_func_start Rfu_IsMaster
+Rfu_IsMaster: @ 80FBA2C
ldr r0, _080FBA34 @ =gUnknown_3005450
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_080FBA34: .4byte gUnknown_3005450
- thumb_func_end sub_80FBA2C
+ thumb_func_end Rfu_IsMaster
thumb_func_start RFUVSync
RFUVSync: @ 80FBA38
diff --git a/asm/overworld.s b/asm/overworld.s
index 10d1b4ee8..ef63df6bb 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -5643,7 +5643,7 @@ c1_link_related: @ 8057884
bl sub_80F90DC
cmp r0, 0
beq _0805789E
- bl sub_800A00C
+ bl IsSendingKeysToLink
cmp r0, 0
bne _080578C0
_0805789E:
@@ -6147,7 +6147,7 @@ _08057C72:
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08057CA8
- bl sub_800A00C
+ bl IsSendingKeysToLink
cmp r0, 0x1
bne _08057CA8
cmp r4, 0x11
@@ -7012,7 +7012,7 @@ sub_8058274: @ 8058274
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _080582D8
- bl sub_800A00C
+ bl IsSendingKeysToLink
cmp r0, 0x1
bne _080582D8
ldr r0, _080582C4 @ =gUnknown_3000E84
@@ -7065,7 +7065,7 @@ sub_80582E0: @ 80582E0
bl IsUpdateLinkStateCBActive
cmp r0, 0x1
bne _08058304
- bl sub_800A00C
+ bl IsSendingKeysToLink
cmp r0, 0x1
bne _08058304
ldr r0, _08058308 @ =gUnknown_3000E84
@@ -7093,7 +7093,7 @@ sub_8058318: @ 8058318
ldrb r0, [r0]
cmp r0, 0
bne _08058334
- bl sub_800A00C
+ bl IsSendingKeysToLink
cmp r0, 0
beq _08058334
movs r0, 0x1
diff --git a/asm/trade.s b/asm/trade.s
index 52db4c7d2..0c1c168cc 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -334,7 +334,7 @@ _0804C8F0: .4byte gUnknown_2031DA8
_0804C8F4:
bl GetLinkPlayerCount_2
adds r4, r0, 0
- bl sub_800A944
+ bl GetSavedPlayerCount
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl IsNoOneConnected
+ bl IsRfuTaskFinished
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl IsNoOneConnected
+ bl IsRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -7557,7 +7557,7 @@ _080502A8:
_080502B4:
bl GetLinkPlayerCount_2
adds r4, r0, 0
- bl sub_800A944
+ bl GetSavedPlayerCount
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl IsNoOneConnected
+ bl IsRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08054396