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