diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/link.s | 831 | ||||
| -rw-r--r-- | asm/link_rfu_2.s | 14 | ||||
| -rw-r--r-- | asm/overworld.s | 10 | 
3 files changed, 12 insertions, 843 deletions
| diff --git a/asm/link.s b/asm/link.s index b0de10227..4b5b0e6b5 100644 --- a/asm/link.s +++ b/asm/link.s @@ -5,837 +5,6 @@  	.text -	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 CB2_LinkError -CB2_LinkError: @ 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 @ =Task_DestroySelf -	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 Task_DestroySelf -_0800AE14: .4byte gMain -_0800AE18: .4byte sub_800AF2C -	thumb_func_end CB2_LinkError - -	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 @ =gWirelessLinkDisplayPal -	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 gWirelessLinkDisplayPal -_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 @ =gLinkStatus -	ldr r0, [r0] -	lsrs r0, 6 -	movs r1, 0x1 -	ands r0, r1 -	bx lr -	.align 2, 0 -_0800B098: .4byte gLinkStatus -	thumb_func_end IsLinkConnectionEstablished - -	thumb_func_start SetSuppressLinkErrorMessage -SetSuppressLinkErrorMessage: @ 800B09C -	ldr r1, _0800B0A4 @ =gSuppressLinkErrorMessage -	strb r0, [r1] -	bx lr -	.align 2, 0 -_0800B0A4: .4byte gSuppressLinkErrorMessage -	thumb_func_end SetSuppressLinkErrorMessage - -	thumb_func_start HasLinkErrorOccurred -HasLinkErrorOccurred: @ 800B0A8 -	ldr r0, _0800B0B0 @ =gLinkErrorOccurred -	ldrb r0, [r0] -	bx lr -	.align 2, 0 -_0800B0B0: .4byte gLinkErrorOccurred -	thumb_func_end HasLinkErrorOccurred - -	thumb_func_start sub_800B0B4 -sub_800B0B4: @ 800B0B4 -	push {r4-r6,lr} -	bl InitLocalLinkPlayer -	ldr r1, _0800B100 @ =gLocalLinkPlayerBlock -	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 @ =gASCIIGameFreakInc -	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 gLocalLinkPlayerBlock -_0800B104: .4byte gLocalLinkPlayer -_0800B108: .4byte gASCIIGameFreakInc -_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 @ =gASCIIGameFreakInc -	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 @ =CB2_LinkError -	bl SetMainCallback2 -_0800B160: -	pop {r4-r6} -	pop {r0} -	bx r0 -	.align 2, 0 -_0800B168: .4byte gBlockRecvBuffer -_0800B16C: .4byte gLinkPlayers -_0800B170: .4byte gASCIIGameFreakInc -_0800B174: .4byte CB2_LinkError -	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 @ =gShouldAdvanceLinkState -	ldr r1, _0800B1B8 @ =gSendCmd -	ldr r2, _0800B1BC @ =gRecvCmds -	bl LinkMain1 -	ldr r4, _0800B1C0 @ =gLinkStatus -	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 gShouldAdvanceLinkState -_0800B1B8: .4byte gSendCmd -_0800B1BC: .4byte gRecvCmds -_0800B1C0: .4byte gLinkStatus -_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 @ =gLink -	ldr r1, _0800B264 @ =0x00000fbd -	adds r0, r1 -	ldrb r0, [r0] -	b _0800B26C -	.align 2, 0 -_0800B25C: .4byte gWirelessCommType -_0800B260: .4byte gLink -_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 DisableSerial -DisableSerial: @ 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 @ =gLink -	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 gLink -_0800B2F0: .4byte 0x050003f0 -	thumb_func_end DisableSerial - -	thumb_func_start EnableSerial -EnableSerial: @ 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 @ =gLink -	ldr r2, _0800B368 @ =0x050003f0 -	mov r0, sp -	bl CpuSet -	ldr r0, _0800B36C @ =sNumVBlanksWithoutSerialIntr -	strb r4, [r0] -	ldr r0, _0800B370 @ =sSendNonzeroCheck -	strh r5, [r0] -	ldr r0, _0800B374 @ =sRecvNonzeroCheck -	strh r5, [r0] -	ldr r0, _0800B378 @ =sChecksumAvailable -	strb r4, [r0] -	ldr r0, _0800B37C @ =sHandshakePlayerCount -	strb r4, [r0] -	ldr r0, _0800B380 @ =gLastSendQueueCount -	strb r4, [r0] -	ldr r0, _0800B384 @ =gLastRecvQueueCount -	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 gLink -_0800B368: .4byte 0x050003f0 -_0800B36C: .4byte sNumVBlanksWithoutSerialIntr -_0800B370: .4byte sSendNonzeroCheck -_0800B374: .4byte sRecvNonzeroCheck -_0800B378: .4byte sChecksumAvailable -_0800B37C: .4byte sHandshakePlayerCount -_0800B380: .4byte gLastSendQueueCount -_0800B384: .4byte gLastRecvQueueCount -	thumb_func_end EnableSerial - -	thumb_func_start ResetSerial -ResetSerial: @ 800B388 -	push {lr} -	bl EnableSerial -	bl DisableSerial -	pop {r0} -	bx r0 -	thumb_func_end ResetSerial -  	thumb_func_start LinkMain1  LinkMain1: @ 800B398  	push {r4-r7,lr} diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index 04c4621e7..fd1cf3dc6 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -1360,8 +1360,8 @@ _080F90D4: .4byte 0x000008d4  _080F90D8: .4byte 0x000008f2  	thumb_func_end sub_80F906C -	thumb_func_start sub_80F90DC -sub_80F90DC: @ 80F90DC +	thumb_func_start IsRfuRecvQueueEmpty +IsRfuRecvQueueEmpty: @ 80F90DC  	push {r4,lr}  	ldr r0, _080F90EC @ =gUnknown_3007460  	ldr r0, [r0] @@ -1398,7 +1398,7 @@ _080F9110:  	bx r1  	.align 2, 0  _080F9118: .4byte gRecvCmds -	thumb_func_end sub_80F90DC +	thumb_func_end IsRfuRecvQueueEmpty  	thumb_func_start sub_80F911C  sub_80F911C: @ 80F911C @@ -2029,7 +2029,7 @@ _080F9618:  	cmp r1, 0x6  	bls _080F9618  _080F9628: -	bl sub_80F90DC +	bl IsRfuRecvQueueEmpty  	add sp, 0x58  	pop {r3}  	mov r8, r3 @@ -8105,8 +8105,8 @@ _080FC458: .4byte gUnknown_3005450  _080FC45C: .4byte 0x000008d2  	thumb_func_end sub_80FC44C -	thumb_func_start sub_80FC460 -sub_80FC460: @ 80FC460 +	thumb_func_start GetRfuRecvQueueLength +GetRfuRecvQueueLength: @ 80FC460  	ldr r0, _080FC46C @ =gUnknown_3005450  	ldr r1, _080FC470 @ =0x0000069e  	adds r0, r1 @@ -8115,7 +8115,7 @@ sub_80FC460: @ 80FC460  	.align 2, 0  _080FC46C: .4byte gUnknown_3005450  _080FC470: .4byte 0x0000069e -	thumb_func_end sub_80FC460 +	thumb_func_end GetRfuRecvQueueLength  	thumb_func_start nullsub_89  nullsub_89: @ 80FC474 diff --git a/asm/overworld.s b/asm/overworld.s index ef63df6bb..ec8a03ddd 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -5640,7 +5640,7 @@ c1_link_related: @ 8057884  	ldrb r0, [r0]  	cmp r0, 0  	beq _0805789E -	bl sub_80F90DC +	bl IsRfuRecvQueueEmpty  	cmp r0, 0  	beq _0805789E  	bl IsSendingKeysToLink @@ -6289,7 +6289,7 @@ sub_8057D5C: @ 8057D5C  	movs r0, 0x11  	b _08057D92  _08057D70: -	bl sub_800B248 +	bl GetLinkRecvQueueLength  	cmp r0, 0x4  	bls _08057D7C  	movs r0, 0x1B @@ -6344,7 +6344,7 @@ _08057DC4: .4byte sub_8057D98  	thumb_func_start sub_8057DC8  sub_8057DC8: @ 8057DC8  	push {r4,lr} -	bl sub_800B248 +	bl GetLinkRecvQueueLength  	movs r4, 0x11  	cmp r0, 0x2  	bhi _08057DE0 @@ -6982,7 +6982,7 @@ sub_8058244: @ 8058244  	movs r0, 0  	b _0805826C  _08058252: -	bl sub_800B248 +	bl GetLinkRecvQueueLength  	cmp r0, 0x2  	bls _08058264  	ldr r1, _08058260 @ =gUnknown_3000E88 @@ -7006,7 +7006,7 @@ _08058270: .4byte gUnknown_3000E88  	thumb_func_start sub_8058274  sub_8058274: @ 8058274  	push {lr} -	bl sub_800B248 +	bl GetLinkRecvQueueLength  	cmp r0, 0x1  	bls _080582D8  	bl IsUpdateLinkStateCBActive | 
