diff options
Diffstat (limited to 'asm/intro.s')
-rw-r--r-- | asm/intro.s | 5985 |
1 files changed, 0 insertions, 5985 deletions
diff --git a/asm/intro.s b/asm/intro.s index c1754873c..97dd9b6de 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -3,5991 +3,6 @@ .syntax unified - .text - - thumb_func_start sub_816CBE8 -sub_816CBE8: @ 816CBE8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl ScanlineEffect_InitHBlankDmaTransfer - pop {r0} - bx r0 - thumb_func_end sub_816CBE8 - - thumb_func_start sub_816CC00 -sub_816CC00: @ 816CC00 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0816CC3C - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816CC3C - ldr r0, =sub_816CC54 - bl SetMainCallback2 - b _0816CC4C - .pool -_0816CC3C: - ldr r2, =gUnknown_030062A0 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0816CC4C - adds r0, r1, 0x1 - str r0, [r2] -_0816CC4C: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816CC00 - - thumb_func_start sub_816CC54 -sub_816CC54: @ 816CC54 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0816CC66 - ldr r0, =CB2_InitTitleScreen - bl SetMainCallback2 -_0816CC66: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816CC54 - - thumb_func_start load_copyright_graphics -@ void load_copyright_graphics(u16 tile_patterns_dest, u16 tilemap_dest, u16 unknown_dest) -load_copyright_graphics: @ 816CC70 - push {r4-r6,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gIntroCopyright_Gfx - movs r6, 0xC0 - lsls r6, 19 - adds r3, r6 - adds r1, r3, 0 - bl LZ77UnCompVram - ldr r0, =gIntroCopyright_Tilemap - adds r4, r6 - adds r1, r4, 0 - bl LZ77UnCompVram - ldr r0, =gIntroCopyright_Pal - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end load_copyright_graphics - - thumb_func_start SerialCb_CopyrightScreen -SerialCb_CopyrightScreen: @ 816CCB8 - push {lr} - ldr r0, =gUnknown_030062B0 - bl GameCubeMultiBoot_HandleSerialInterrupt - pop {r0} - bx r0 - .pool - thumb_func_end SerialCb_CopyrightScreen - - thumb_func_start do_copyright_screen -do_copyright_screen: @ 816CCC8 - push {r4-r6,lr} - sub sp, 0x10 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, 0x8C - bne _0816CCDC - b _0816CE00 -_0816CCDC: - cmp r4, 0x8C - bgt _0816CCEC - cmp r4, 0 - beq _0816CCF4 - b _0816CDBC - .pool -_0816CCEC: - cmp r4, 0x8D - bne _0816CCF2 - b _0816CE2C -_0816CCF2: - b _0816CDBC -_0816CCF4: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x00007fff - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - str r4, [sp, 0x4] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x05006000 - add r0, sp, 0x4 - bl CpuSet - str r4, [sp, 0x8] - add r0, sp, 0x8 - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x05000100 - bl CpuSet - add r0, sp, 0xC - strh r4, [r0] - ldr r1, =0x05000002 - ldr r2, =0x010001ff - bl CpuSet - bl ResetPaletteFade - movs r1, 0xE0 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl load_copyright_graphics - bl ScanlineEffect_Stop - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r1, 0xE0 - lsls r1, 3 - movs r0, 0x8 - bl SetGpuReg - movs r0, 0x1 - bl EnableInterrupts - ldr r0, =sub_816CBE8 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =SerialCb_CopyrightScreen - bl SetSerialCallback - ldr r0, =gUnknown_030062B0 - bl GameCubeMultiBoot_Init -_0816CDBC: - bl UpdatePaletteFade - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, =gUnknown_030062B0 - bl GameCubeMultiBoot_Main - b _0816CEA0 - .pool -_0816CE00: - ldr r4, =gUnknown_030062B0 - adds r0, r4, 0 - bl GameCubeMultiBoot_Main - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - beq _0816CEA0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0816CEA0 - .pool -_0816CE2C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0816CEA0 - ldr r0, =task_intro_1 - movs r1, 0 - bl CreateTask - ldr r0, =sub_816CC00 - bl SetMainCallback2 - ldr r5, =gUnknown_030062B0 - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _0816CE8C - ldrb r0, [r5, 0x2] - cmp r0, 0x2 - bne _0816CE96 - ldr r6, =0x020000ac - ldr r4, [r6] - ldr r0, =0x65366347 - cmp r4, r0 - bne _0816CE6C - ldr r0, =gMultiBootProgram_PokemonColosseum_Start - movs r1, 0x80 - lsls r1, 18 - movs r2, 0xA0 - lsls r2, 9 - bl CpuSet - str r4, [r6] -_0816CE6C: - adds r0, r5, 0 - bl GameCubeMultiBoot_ExecuteProgram - b _0816CE96 - .pool -_0816CE8C: - bl GameCubeMultiBoot_Quit - ldr r0, =SerialCB - bl SetSerialCallback -_0816CE96: - movs r0, 0 - b _0816CEA2 - .pool -_0816CEA0: - movs r0, 0x1 -_0816CEA2: - add sp, 0x10 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end do_copyright_screen - - thumb_func_start c2_copyright_1 -c2_copyright_1: @ 816CEAC - push {lr} - bl do_copyright_screen - lsls r0, 24 - cmp r0, 0 - bne _0816CEFA - bl sub_815355C - lsls r0, 16 - lsrs r0, 16 - bl SetSaveBlocksPointers - bl sub_808447C - bl ResetSaveCounters - movs r0, 0 - bl sub_81534D0 - ldr r0, =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _0816CEDE - cmp r0, 0x2 - bne _0816CEE2 -_0816CEDE: - bl Sav2_ClearSetDefault -_0816CEE2: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsls r0, 31 - lsrs r0, 31 - bl SetPokemonCryStereo - ldr r0, =0x02000000 - movs r1, 0xE0 - lsls r1, 9 - bl InitHeap -_0816CEFA: - pop {r0} - bx r0 - .pool - thumb_func_end c2_copyright_1 - - thumb_func_start CB2_InitCopyrightScreenAfterTitleScreen -CB2_InitCopyrightScreenAfterTitleScreen: @ 816CF0C - push {lr} - bl do_copyright_screen - pop {r0} - bx r0 - thumb_func_end CB2_InitCopyrightScreenAfterTitleScreen - - thumb_func_start task_intro_1 -@ void task_intro_1(int task_id) -task_intro_1: @ 816CF18 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - bl SetVBlankCallback - ldr r4, =gUnknown_0203BCC8 - bl Random - movs r1, 0x1 - ands r1, r0 - strh r1, [r4] - bl intro_reset_and_hide_bgs - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0x50 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0x18 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0x28 - bl SetGpuReg - ldr r0, =gIntro1BGLeavesGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, =gIntro1BG0_Tilemap - ldr r1, =0x06008000 - bl LZ77UnCompVram - ldr r1, =0x06008800 - add r0, sp, 0x8 - movs r6, 0 - strh r6, [r0] - ldr r4, =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - ldr r5, =0x81000400 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, =gIntro1BG1_Tilemap - ldr r1, =0x06009000 - bl LZ77UnCompVram - ldr r1, =0x06009800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, =gIntro1BG2_Tilemap - ldr r1, =0x0600a000 - bl LZ77UnCompVram - ldr r1, =0x0600a800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, =gIntro1BG3_Tilemap - ldr r1, =0x0600b000 - bl LZ77UnCompVram - ldr r1, =0x0600b800 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, =gIntro1BGPals - movs r5, 0x80 - lsls r5, 2 - movs r1, 0 - adds r2, r5, 0 - bl LoadPalette - ldr r1, =0x00009603 - movs r0, 0xE - bl SetGpuReg - ldr r1, =0x00009402 - movs r0, 0xC - bl SetGpuReg - ldr r1, =0x00009201 - movs r0, 0xA - bl SetGpuReg - movs r1, 0x90 - lsls r1, 8 - movs r0, 0x8 - bl SetGpuReg - ldr r0, =gUnknown_085E4FDC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085E4FEC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085E4FFC - bl LoadSpritePalettes - ldr r0, =gUnknown_085E4A74 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085E4A84 - bl LoadSpritePalettes - ldr r4, =gPlttBufferUnfaded + 0x200 - movs r3, 0xF0 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0x10 - bl CpuSet - movs r0, 0xE1 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xF - bl CpuSet - movs r3, 0xD2 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xE - bl CpuSet - movs r0, 0xC3 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xD - bl CpuSet - movs r3, 0xB4 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xC - bl CpuSet - movs r0, 0xA5 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xB - bl CpuSet - movs r3, 0x96 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xA - bl CpuSet - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0 - bl sub_816FDB8 - movs r1, 0xE - negs r1, r1 - movs r0, 0x78 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0xEC - adds r2, r5, 0 - movs r3, 0x1 - bl sub_816F7D0 - ldr r2, =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - ldr r0, =task_intro_2 - str r0, [r1] - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_1 - - thumb_func_start task_intro_2 -task_intro_2: @ 816D12C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r5, 0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =sub_816CBE8 - bl SetVBlankCallback - movs r1, 0xFA - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_3 - str r1, [r0] - ldr r0, =gUnknown_030062A0 - str r5, [r0] - movs r0, 0xCF - lsls r0, 1 - bl m4aSongNumStart - bl ResetSerial - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_2 - - thumb_func_start task_intro_3 -task_intro_3: @ 816D190 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, =gUnknown_030062A0 - ldr r0, [r5] - cmp r0, 0x4C - bne _0816D1BE - ldr r2, =gSprites - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0816D1BE: - ldr r0, [r5] - cmp r0, 0x80 - bne _0816D1CC - ldr r0, =task_intro_3_1 - movs r1, 0 - bl CreateTask -_0816D1CC: - ldr r0, [r5] - cmp r0, 0xFB - bne _0816D1EE - ldr r2, =gSprites - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0816D1EE: - ldr r1, [r5] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _0816D200 - ldr r0, =task_intro_3_2 - movs r1, 0 - bl CreateTask -_0816D200: - ldr r1, [r5] - movs r0, 0xB8 - lsls r0, 1 - cmp r1, r0 - bne _0816D220 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x70 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x30 - movs r1, 0 - movs r3, 0x5 - bl sub_816F7D0 -_0816D220: - ldr r1, [r5] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - bne _0816D240 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x80 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0xC8 - movs r1, 0x3C - movs r3, 0x9 - bl sub_816F7D0 -_0816D240: - ldr r0, [r5] - movs r4, 0x8C - lsls r4, 2 - cmp r0, r4 - bne _0816D252 - ldr r0, =task_intro_3_3 - movs r1, 0 - bl CreateTask -_0816D252: - ldr r0, [r5] - cmp r0, r4 - bls _0816D27A - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x50 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x18 - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - movs r1, 0x28 - strh r1, [r0, 0x12] - strh r2, [r0, 0x14] - ldr r1, =task_intro_4 - str r1, [r0] -_0816D27A: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_3 - - thumb_func_start task_intro_3_3 -task_intro_3_3: @ 816D2A0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816D2C4 - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0816D2C4: - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0816D2D8 - cmp r0, 0x1 - beq _0816D314 - b _0816D324 - .pool -_0816D2D8: - ldr r0, =gUnknown_085E4AB8 - ldr r2, =gUnknown_085E4AD0 - movs r1, 0x8 - ldrsh r3, [r4, r1] - lsls r3, 1 - adds r1, r3, r2 - ldrb r1, [r1] - adds r2, 0x1 - adds r3, r2 - ldrh r2, [r4, 0x6] - ldrb r3, [r3] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0xC - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0816D324 - .pool -_0816D314: - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _0816D324 - strh r0, [r4] -_0816D324: - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0x3C - ble _0816D332 - adds r0, r5, 0 - bl DestroyTask -_0816D332: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_intro_3_3 - - thumb_func_start sub_816D338 -sub_816D338: @ 816D338 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _0816D350 - adds r0, r1, 0 - bl DestroySprite -_0816D350: - pop {r0} - bx r0 - thumb_func_end sub_816D338 - - thumb_func_start task_intro_4 -task_intro_4: @ 816D354 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r1, r0, 24 - adds r4, r1, 0 - ldr r5, =gUnknown_030062A0 - ldr r2, [r5] - ldr r0, =0x00000387 - cmp r2, r0 - bhi _0816D418 - ldr r0, =gTasks - lsls r4, r1, 2 - adds r4, r1 - lsls r4, 3 - adds r4, r0 - movs r1, 0xA - ldrsh r0, [r4, r1] - lsls r0, 16 - ldrh r1, [r4, 0xC] - adds r1, r0, r1 - ldr r0, =0xffffa000 - adds r1, r0 - asrs r0, r1, 16 - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] - ldrh r1, [r4, 0xA] - movs r0, 0x1A - bl SetGpuReg - movs r1, 0xE - ldrsh r0, [r4, r1] - lsls r0, 16 - ldrh r1, [r4, 0x10] - adds r1, r0, r1 - ldr r0, =0xffff8000 - adds r1, r0 - asrs r0, r1, 16 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - ldrh r1, [r4, 0xE] - movs r0, 0x16 - bl SetGpuReg - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r0, 16 - ldrh r1, [r4, 0x14] - adds r1, r0, r1 - ldr r0, =0xffff4000 - adds r1, r0 - asrs r0, r1, 16 - strh r0, [r4, 0x12] - strh r1, [r4, 0x14] - ldrh r1, [r4, 0x12] - movs r0, 0x12 - bl SetGpuReg - ldr r1, [r5] - movs r0, 0xD0 - lsls r0, 2 - cmp r1, r0 - bne _0816D43E - ldr r0, =gUnknown_085E4FC4 - movs r1, 0x78 - movs r2, 0xA0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - b _0816D43E - .pool -_0816D418: - ldr r0, =0x000003ef - cmp r2, r0 - bls _0816D43E - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_5 - str r1, [r0] -_0816D43E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_4 - - thumb_func_start task_intro_5 -task_intro_5: @ 816D458 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - ldr r0, =0x00000402 - cmp r1, r0 - bls _0816D476 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_intro_6 - str r0, [r1] -_0816D476: - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_5 - - thumb_func_start task_intro_6 -task_intro_6: @ 816D48C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl intro_reset_and_hide_bgs - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, =gUnknown_0203BD24 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_0203BD26 - strh r1, [r0] - ldr r0, =gUnknown_0203BCCC - strh r1, [r0] - movs r0, 0x1 - bl load_intro_part2_graphics - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_7 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_6 - - thumb_func_start task_intro_7 -task_intro_7: @ 816D4E4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0203BCC8 - ldrh r0, [r0] - cmp r0, 0 - bne _0816D504 - ldr r0, =gUnknown_085F52BC - bl LoadCompressedObjectPic - b _0816D50A - .pool -_0816D504: - ldr r0, =gUnknown_085F52CC - bl LoadCompressedObjectPic -_0816D50A: - ldr r0, =gUnknown_085F52DC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085F52FC - bl LoadCompressedObjectPic - movs r6, 0 - lsls r7, r4, 2 - ldr r5, =gUnknown_085E4AE8 -_0816D51C: - lsls r0, r6, 3 - adds r0, r5 - bl LoadCompressedObjectPic - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _0816D51C - ldr r0, =gUnknown_085F530C - bl LoadSpritePalettes - ldr r0, =gUnknown_085E4B08 - bl LoadSpritePalettes - ldr r0, =gUnknown_085E4BDC - movs r5, 0x88 - lsls r5, 1 - adds r1, r5, 0 - movs r2, 0x80 - movs r3, 0 - bl CreateSprite - ldr r0, =gUnknown_085E4BA4 - movs r1, 0x90 - lsls r1, 1 - movs r2, 0x6E - movs r3, 0x1 - bl CreateSprite - ldr r0, =gUnknown_0203BCC8 - ldrh r0, [r0] - cmp r0, 0 - bne _0816D590 - adds r0, r5, 0 - movs r1, 0x64 - bl sub_817B834 - b _0816D598 - .pool -_0816D590: - adds r0, r5, 0 - movs r1, 0x64 - bl sub_817B88C -_0816D598: - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r2, 0 - adds r5, 0x1C - adds r3, r0, r5 - ldr r1, =sub_816F9D4 - str r1, [r3] - adds r2, 0x8 - adds r0, r2 - ldr r1, =gUnknown_085E4DC4 - str r1, [r0] - ldr r0, =gTasks - adds r4, r7, r4 - lsls r4, 3 - adds r4, r0 - strh r6, [r4, 0xA] - ldr r0, =gUnknown_085E4B40 - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x50 - movs r3, 0x4 - bl CreateSprite - movs r0, 0x40 - negs r0, r0 - movs r1, 0x3C - bl sub_817B9C4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - ldr r1, =sub_816FAB0 - str r1, [r0] - strh r6, [r4, 0xC] - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =sub_816CBE8 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 7 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x1 - movs r3, 0x10 - bl sub_817B3DC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - movs r0, 0x1 - bl sub_817B150 - ldr r0, =task_intro_8 - str r0, [r4] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_7 - - thumb_func_start task_intro_8 -@ void task_intro_8(int task_id) -task_intro_8: @ 816D650 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, =gUnknown_030062A0 - ldr r1, [r5] - movs r0, 0xE8 - lsls r0, 3 - cmp r1, r0 - bne _0816D67C - ldr r1, =gUnknown_0203BD28 - movs r0, 0x2 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - bl DestroyTask -_0816D67C: - ldr r1, [r5] - ldr r0, =0x0000079a - cmp r1, r0 - bls _0816D6A4 - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_9 - str r1, [r0] -_0816D6A4: - ldr r1, [r5] - ldr r0, =0x00000455 - ldr r3, =gTasks - cmp r1, r0 - bne _0816D6C8 - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0816D6C8: - ldr r1, [r5] - ldr r0, =0x000004be - cmp r1, r0 - bne _0816D6EA - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] -_0816D6EA: - ldr r1, [r5] - ldr r0, =0x00000572 - cmp r1, r0 - bne _0816D70C - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xC - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0816D70C: - ldr r1, [r5] - ldr r0, =0x00000576 - cmp r1, r0 - bne _0816D72E - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0816D72E: - ldr r1, [r5] - movs r0, 0xC5 - lsls r0, 3 - cmp r1, r0 - bne _0816D752 - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x2E] -_0816D752: - ldr r1, [r5] - ldr r0, =0x000006bf - cmp r1, r0 - bne _0816D774 - ldr r2, =gSprites - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r4, 0xA - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x2E] -_0816D774: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 18 - movs r1, 0x7F - ands r0, r1 - movs r1, 0x30 - bl Sin - ldr r1, =gUnknown_0203BCCC - strh r0, [r1] - ldrh r2, [r4, 0xE] - movs r7, 0xE - ldrsh r1, [r4, r7] - ldr r0, =0x000001ff - cmp r1, r0 - bgt _0816D7A0 - adds r0, r2, 0x1 - strh r0, [r4, 0xE] -_0816D7A0: - movs r0, 0 - bl sub_817B540 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_8 - - thumb_func_start task_intro_9 -task_intro_9: @ 816D7E8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - ldr r0, =0x00000814 - cmp r1, r0 - bls _0816D806 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_intro_10 - str r0, [r1] -_0816D806: - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_9 - - thumb_func_start sub_816D81C -sub_816D81C: @ 816D81C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x4 - strh r0, [r4, 0x34] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bls _0816D830 - b _0816D9BA -_0816D830: - lsls r0, 2 - ldr r1, =_0816D840 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816D840: - .4byte _0816D864 - .4byte _0816D87A - .4byte _0816D898 - .4byte _0816D8BC - .4byte _0816D8D8 - .4byte _0816D8FA - .4byte _0816D912 - .4byte _0816D96E - .4byte _0816D99C -_0816D864: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB3 - bgt _0816D874 - b _0816D9BA -_0816D874: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0816D87A: - ldrh r0, [r4, 0x20] - subs r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - beq _0816D88A - b _0816D9BA -_0816D88A: - movs r0, 0x8 - strh r0, [r4, 0x2E] - movs r0, 0x14 - strh r0, [r4, 0x30] - movs r0, 0x2 - strh r0, [r4, 0x32] - b _0816D9BA -_0816D898: - ldrh r1, [r4, 0x20] - adds r1, 0x8 - strh r1, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7C - beq _0816D8AE - b _0816D9BA -_0816D8AE: - movs r0, 0x8 - strh r0, [r4, 0x2E] - movs r0, 0x14 - strh r0, [r4, 0x30] - movs r0, 0x3 - strh r0, [r4, 0x32] - b _0816D9BA -_0816D8BC: - ldrh r0, [r4, 0x22] - adds r0, 0x4 - strh r0, [r4, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x50 - bne _0816D9BA - movs r0, 0x8 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - b _0816D9BA -_0816D8D8: - ldrh r1, [r4, 0x20] - subs r1, 0x8 - strh r1, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x2 - strh r0, [r4, 0x22] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3C - bne _0816D9BA - movs r0, 0x8 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x30] - movs r0, 0x5 - strh r0, [r4, 0x32] - b _0816D9BA -_0816D8FA: - ldrh r0, [r4, 0x20] - adds r0, 0x3C - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x36] - movs r0, 0x80 - strh r0, [r4, 0x38] - movs r0, 0x3 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0816D912: - ldrh r0, [r4, 0x36] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3C - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x36] - adds r1, 0x2 - strh r1, [r4, 0x36] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - strh r0, [r4, 0x38] - movs r0, 0xFF - ands r1, r0 - cmp r1, 0x40 - bne _0816D9BA - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x2 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _0816D9BA - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - b _0816D9B8 -_0816D96E: - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x38] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x14 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - strh r0, [r4, 0x38] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _0816D9BA - adds r0, r4, 0 - bl DestroySprite - b _0816D9BA -_0816D99C: - ldrh r0, [r4, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _0816D9BA - ldrh r0, [r4, 0x32] -_0816D9B8: - strh r0, [r4, 0x2E] -_0816D9BA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816D81C - - thumb_func_start sub_816D9C0 -sub_816D9C0: @ 816D9C0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _0816D9CE - b _0816DADA -_0816D9CE: - lsls r0, 2 - ldr r1, =_0816D9DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816D9DC: - .4byte _0816D9F4 - .4byte _0816DA08 - .4byte _0816DA20 - .4byte _0816DA64 - .4byte _0816DA9A - .4byte _0816DACA -_0816D9F4: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0x99 - lsls r0, 3 - cmp r1, r0 - bne _0816DADA - b _0816DABA - .pool -_0816DA08: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0xC5 - lsls r0, 3 - cmp r1, r0 - bne _0816DA70 - adds r0, r4, 0 - movs r1, 0 - b _0816DABE - .pool -_0816DA20: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - ldr r0, =0x000006c7 - cmp r1, r0 - beq _0816DA50 - ldrh r0, [r4, 0x30] - adds r2, r0, 0 - adds r2, 0x20 - strh r2, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0816DADA - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _0816DA8A - .pool -_0816DA50: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x50 - strh r0, [r4, 0x32] - b _0816DADA -_0816DA64: - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - beq _0816DA94 -_0816DA70: - ldrh r0, [r4, 0x30] - adds r2, r0, 0 - adds r2, 0x40 - strh r2, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _0816DADA - ldrh r0, [r4, 0x20] - subs r0, 0x1 -_0816DA8A: - strh r0, [r4, 0x20] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - b _0816DADA -_0816DA94: - adds r0, r4, 0 - movs r1, 0x2 - b _0816DABE -_0816DA9A: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0816DAAE - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] -_0816DAAE: - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0xA8 - lsls r0, 1 - cmp r1, r0 - ble _0816DADA -_0816DABA: - adds r0, r4, 0 - movs r1, 0x1 -_0816DABE: - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0816DADA -_0816DACA: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - ldr r0, =0x0000073f - cmp r1, r0 - bls _0816DADA - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] -_0816DADA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816D9C0 - - thumb_func_start sub_816DAE8 -sub_816DAE8: @ 816DAE8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816DB1C - cmp r0, 0x1 - bgt _0816DAFE - cmp r0, 0 - beq _0816DB04 - b _0816DBA4 -_0816DAFE: - cmp r0, 0x2 - beq _0816DB42 - b _0816DBA4 -_0816DB04: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0x88 - lsls r0, 3 - cmp r1, r0 - bne _0816DBA4 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0816DBA4 - .pool -_0816DB1C: - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0x92 - lsls r0, 3 - cmp r1, r0 - bne _0816DBA4 - ldrh r0, [r4, 0x22] - subs r0, 0xC - strh r0, [r4, 0x22] - movs r0, 0x80 - strh r0, [r4, 0x30] - movs r0, 0 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0816DB42: - movs r2, 0x20 - ldrsh r0, [r4, r2] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bgt _0816DB60 - adds r0, r4, 0 - bl DestroySprite - b _0816DBA4 - .pool -_0816DB60: - ldrh r0, [r4, 0x30] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x3F - bgt _0816DB72 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x10 - b _0816DB84 -_0816DB72: - cmp r1, 0x40 - bne _0816DB7C - ldrh r0, [r4, 0x20] - subs r0, 0x30 - strh r0, [r4, 0x20] -_0816DB7C: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x40 -_0816DB84: - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] -_0816DBA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816DAE8 - - thumb_func_start task_intro_10 -task_intro_10: @ 816DBAC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl intro_reset_and_hide_bgs - ldr r0, =gIntro3Pokeball_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, =gIntro3Pokeball_Tilemap - ldr r1, =0x06004000 - bl LZ77UnCompVram - ldr r0, =gIntro3PokeballPal - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadPalette - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r5, 0 - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0 - movs r3, 0 - bl sub_816F2A8 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, =0x00004883 - movs r0, 0xC - bl SetGpuReg - ldr r1, =0x00001441 - movs r0, 0 - bl SetGpuReg - ldr r0, =task_intro_11 - str r0, [r4] - ldr r0, =gUnknown_030062A0 - str r5, [r0] - movs r0, 0xDD - lsls r0, 1 - bl m4aSongNumStart - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_10 - - thumb_func_start task_intro_11 -task_intro_11: @ 816DC64 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r1, 0x80 - lsls r1, 3 - adds r0, r1, 0 - ldrh r1, [r3, 0x8] - adds r0, r1 - strh r0, [r3, 0x8] - ldrh r4, [r3, 0xA] - movs r0, 0xA - ldrsh r1, [r3, r0] - ldr r0, =0x000006bf - cmp r1, r0 - bgt _0816DCA4 - ldrh r0, [r3, 0xC] - adds r1, r4, r0 - strh r1, [r3, 0xA] - adds r0, 0x2 - strh r0, [r3, 0xC] - b _0816DCA8 - .pool -_0816DCA4: - ldr r0, =task_intro_12 - str r0, [r3] -_0816DCA8: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r2 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldrh r3, [r4, 0x8] - movs r0, 0x78 - movs r1, 0x50 - bl sub_816F2A8 - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - cmp r0, 0x1C - bne _0816DCE6 - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0816DCE6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_11 - - thumb_func_start task_intro_12 -task_intro_12: @ 816DCFC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - cmp r0, 0x2B - bls _0816DD18 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_intro_13 - str r0, [r1] -_0816DD18: - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_12 - - thumb_func_start task_intro_13 -task_intro_13: @ 816DD28 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816DD94 - bl intro_reset_and_hide_bgs - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x8 - strb r0, [r1] - ldr r0, =gIntro3GroudonGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, =gIntro3GroudonTilemap - ldr r1, =0x0600c000 - bl LZDecompressVram - ldr r0, =gIntro3LegendBgGfx - ldr r1, =0x06004000 - bl LZDecompressVram - ldr r0, =gIntro3GroudonBgTilemap - ldr r1, =0x0600e000 - bl LZDecompressVram - ldr r0, =gBattleAnimPicTable + 0x1D0 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gBattleAnimPaletteTable + 0x1D0 - bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gIntro3BgPal - ldr r1, =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 1 - bl CpuSet - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_14 - str r1, [r0] -_0816DD94: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_13 - - thumb_func_start task_intro_14 -task_intro_14: @ 816DDD8 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0x3F - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - ldr r1, =0x0000b880 - movs r0, 0xC - bl SetGpuReg - ldr r1, =0x00001c05 - movs r0, 0xA - bl SetGpuReg - ldr r1, =0x00003641 - movs r0, 0 - bl SetGpuReg - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r0, 0 - strh r0, [r4, 0x8] - ldr r0, =0x0000ffa0 - strh r0, [r4, 0xA] - ldr r1, =0x0000ff51 - strh r1, [r4, 0xC] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r4, 0xE] - movs r3, 0 - bl sub_816F2A8 - ldr r0, =task_intro_15 - str r0, [r4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_14 - - thumb_func_start task_intro_15 -task_intro_15: @ 816DE7C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r2, [r4, 0x8] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - beq _0816DEB8 - adds r0, r2, 0x4 - strh r0, [r4, 0x8] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r1, 8 - adds r0, r2, 0 - subs r0, 0x9C - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x44 - bl SetGpuReg - b _0816DEC6 - .pool -_0816DEB8: - movs r1, 0x82 - lsls r1, 6 - movs r0, 0x44 - bl SetGpuReg - ldr r0, =task_intro_16 - str r0, [r4] -_0816DEC6: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_15 - - thumb_func_start task_intro_16 -task_intro_16: @ 816DED0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, =task_intro_17 - str r0, [r1] - bx lr - .pool - thumb_func_end task_intro_16 - - thumb_func_start task_intro_17 -task_intro_17: @ 816DEEC - push {lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - ldr r0, =task_intro_18 - str r0, [r1] - movs r0, 0x1 - str r0, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r2, [sp, 0x8] - movs r0, 0 - movs r1, 0xA0 - movs r2, 0x4 - movs r3, 0x4 - bl ScanlineEffect_InitWave - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_17 - - thumb_func_start task_intro_18 -task_intro_18: @ 816DF2C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - ldrh r0, [r4] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bhi _0816DF62 - ldrh r0, [r4, 0xA] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0816DF62 - ldrh r0, [r4, 0x8] - movs r1, 0x3 - eors r0, r1 - strh r0, [r4, 0x8] -_0816DF62: - ldrh r0, [r4, 0x2] - ldrh r1, [r4, 0x8] - ldrh r2, [r4, 0x4] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0x6] - movs r3, 0 - bl sub_816F2A8 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bls _0816DF80 - b _0816E176 -_0816DF80: - lsls r0, 2 - ldr r1, =_0816DF94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816DF94: - .4byte _0816DFBC - .4byte _0816DFE6 - .4byte _0816E024 - .4byte _0816E038 - .4byte _0816E07C - .4byte _0816E09A - .4byte _0816E0C8 - .4byte _0816E0DE - .4byte _0816E13C - .4byte _0816E156 -_0816DFBC: - ldrh r0, [r4, 0x2] - adds r0, 0x10 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - beq _0816DFCC - b _0816E176 -_0816DFCC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - movs r0, 0x2 - strh r0, [r4, 0xC] - movs r2, 0xF1 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r4, 0xE] - adds r0, r5, 0 - bl sub_816E190 - b _0816E176 -_0816DFE6: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816DFF4 - b _0816E176 -_0816DFF4: - movs r0, 0x2 - strh r0, [r4, 0xC] - movs r1, 0xE - ldrsh r0, [r4, r1] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0x3E - movs r2, 0x1 - bl CpuSet - ldrh r0, [r4, 0xE] - adds r0, 0x2 - strh r0, [r4, 0xE] - lsls r0, 16 - movs r1, 0xF6 - lsls r1, 17 - cmp r0, r1 - beq _0816E01A - b _0816E176 -_0816E01A: - b _0816E14E - .pool -_0816E024: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E032 - b _0816E176 -_0816E032: - movs r0, 0x2 - strh r0, [r4, 0xC] - b _0816E14E -_0816E038: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E046 - b _0816E176 -_0816E046: - movs r0, 0x2 - strh r0, [r4, 0xC] - movs r2, 0xE - ldrsh r0, [r4, r2] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0x3E - movs r2, 0x1 - bl CpuSet - ldrh r0, [r4, 0xE] - subs r0, 0x2 - strh r0, [r4, 0xE] - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 17 - cmp r0, r1 - beq _0816E06C - b _0816E176 -_0816E06C: - movs r0, 0x8 - strh r0, [r4, 0xC] - b _0816E14E - .pool -_0816E07C: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816E176 - movs r1, 0x60 - negs r1, r1 - adds r0, r1, 0 - strh r0, [r4, 0x2] - movs r0, 0xA9 - strh r0, [r4, 0x4] - movs r0, 0x3 - strh r0, [r4, 0xC] - b _0816E14E -_0816E09A: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _0816E176 - movs r0, 0x50 - strh r0, [r4, 0x2] - movs r0, 0x29 - strh r0, [r4, 0x4] - movs r0, 0x10 - strh r0, [r4, 0xC] - ldr r0, =0x00000195 - str r1, [sp] - movs r1, 0 - movs r2, 0x64 - movs r3, 0xA - bl PlayCryInternal - b _0816E14E - .pool -_0816E0C8: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816E176 - movs r0, 0x50 - strh r0, [r4, 0x2] - movs r0, 0x28 - strh r0, [r4, 0x4] - b _0816E14E -_0816E0DE: - ldrh r0, [r4, 0x2] - adds r0, 0x4 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x4] - adds r0, 0x4 - strh r0, [r4, 0x4] - ldr r2, =0x00000666 - adds r0, r2, 0 - ldrh r1, [r4, 0xC] - adds r0, r1 - strh r0, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - lsrs r0, 8 - movs r1, 0x40 - bl Sin - movs r1, 0x80 - lsls r1, 1 - adds r5, r1, 0 - adds r0, r5 - strh r0, [r4, 0x6] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - bne _0816E176 - movs r0, 0x2 - negs r0, r0 - ldr r1, =0x00007fff - str r1, [sp] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - strh r5, [r4, 0x6] - movs r0, 0 - strh r0, [r4, 0x8] - b _0816E14E - .pool -_0816E13C: - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0816E14E - adds r0, r1, 0 - subs r0, 0x8 - strh r0, [r4, 0x6] - b _0816E176 -_0816E14E: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0816E176 -_0816E156: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816E176 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_19 - str r1, [r0] - ldr r1, =gScanlineEffect - movs r0, 0x3 - strb r0, [r1, 0x15] -_0816E176: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_18 - - thumb_func_start sub_816E190 -sub_816E190: @ 816E190 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r6, =gSprites - ldr r5, =gUnknown_085E4C64 -_0816E19C: - movs r0, 0 - ldrsh r1, [r5, r0] - lsls r3, r4, 24 - lsrs r3, 24 - ldr r0, =gUnknown_08596C10 - movs r2, 0xA0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r0, r6, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, =sub_816E1F8 - str r1, [r0] - adds r2, r6 - ldrb r0, [r2, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2, 0x5] - strh r4, [r2, 0x30] - strh r7, [r2, 0x36] - ldrb r1, [r5, 0x2] - adds r0, r2, 0 - bl StartSpriteAnim - adds r5, 0x6 - adds r4, 0x1 - cmp r4, 0x5 - ble _0816E19C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816E190 - - thumb_func_start sub_816E1F8 -sub_816E1F8: @ 816E1F8 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - ldrh r0, [r3, 0x34] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0816E214 - ldrh r0, [r3, 0x26] - movs r1, 0x3 - eors r0, r1 - strh r0, [r3, 0x26] -_0816E214: - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _0816E222 - cmp r0, 0x1 - beq _0816E278 - b _0816E29C -_0816E222: - ldr r2, =gUnknown_085E4C64 - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r2, 0x4 - adds r0, r2 - ldrh r2, [r0] - ldrh r1, [r3, 0x32] - adds r2, r1 - strh r2, [r3, 0x32] - movs r0, 0x32 - ldrsh r1, [r3, r0] - movs r0, 0xFF - lsls r0, 8 - ands r1, r0 - asrs r1, 8 - ldrh r0, [r3, 0x22] - subs r0, r1 - strh r0, [r3, 0x22] - movs r0, 0xFF - ands r2, r0 - strh r2, [r3, 0x32] - ldr r2, =gTasks - movs r0, 0x36 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x7 - ble _0816E29C - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _0816E29C - .pool -_0816E278: - ldrh r1, [r3, 0x20] - movs r2, 0x20 - ldrsh r0, [r3, r2] - cmp r0, 0x77 - bgt _0816E286 - subs r0, r1, 0x2 - b _0816E288 -_0816E286: - adds r0, r1, 0x2 -_0816E288: - strh r0, [r3, 0x20] - ldrh r1, [r3, 0x22] - movs r2, 0x22 - ldrsh r0, [r3, r2] - cmp r0, 0x4F - bgt _0816E298 - subs r0, r1, 0x2 - b _0816E29A -_0816E298: - adds r0, r1, 0x2 -_0816E29A: - strh r0, [r3, 0x22] -_0816E29C: - pop {r0} - bx r0 - thumb_func_end sub_816E1F8 - - thumb_func_start task_intro_19 -task_intro_19: @ 816E2A0 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetSpriteData - ldr r0, =gIntro3KyogreGfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, =gIntro3KyogreTilemap - ldr r1, =0x0600c000 - bl LZDecompressVram - ldr r0, =gIntro3KyogreBgTilemap - ldr r1, =0x0600e000 - bl LZDecompressVram - ldr r0, =gUnknown_085E4C88 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085E4C98 - bl LoadSpritePalette - movs r0, 0x2 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =task_intro_20 - str r0, [r1] - movs r4, 0 - strh r4, [r1, 0x8] - movs r0, 0xA8 - lsls r0, 1 - strh r0, [r1, 0xA] - movs r2, 0x50 - strh r2, [r1, 0xC] - movs r2, 0x10 - strh r2, [r1, 0x14] - adds r2, 0xF0 - strh r2, [r1, 0xE] - movs r1, 0x50 - movs r3, 0 - bl sub_816F2A8 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0 - movs r1, 0xA0 - movs r2, 0x4 - movs r3, 0x4 - bl ScanlineEffect_InitWave - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_19 - - thumb_func_start task_intro_20 -task_intro_20: @ 816E358 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5, 0x2] - ldrh r1, [r5, 0x4] - ldrh r2, [r5, 0x6] - movs r3, 0 - bl sub_816F2A8 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0xD - bls _0816E380 - b _0816E6BC -_0816E380: - lsls r0, 2 - ldr r1, =_0816E394 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816E394: - .4byte _0816E3CC - .4byte _0816E3E0 - .4byte _0816E43C - .4byte _0816E488 - .4byte _0816E4C4 - .4byte _0816E4EC - .4byte _0816E544 - .4byte _0816E560 - .4byte _0816E5A0 - .4byte _0816E5BC - .4byte _0816E5FC - .4byte _0816E61A - .4byte _0816E664 - .4byte _0816E69C -_0816E3CC: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E3DA - b _0816E6BC -_0816E3DA: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_0816E3E0: - ldrh r0, [r5, 0xC] - adds r0, 0x4 - strh r0, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - movs r1, 0x80 - lsls r1, 1 - bl Sin - ldr r1, =gTasks - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r1 - movs r2, 0xAC - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - strh r1, [r4, 0xA] - movs r1, 0xC - ldrsh r0, [r5, r1] - movs r1, 0x40 - bl Cos - movs r1, 0x54 - subs r1, r0 - strh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x40 - beq _0816E420 - b _0816E6BC -_0816E420: - movs r0, 0x19 - strh r0, [r5, 0xC] - movs r0, 0x1 - strh r0, [r5, 0xE] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0 - bl sub_816E6D4 - b _0816E6BC - .pool -_0816E43C: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E44A - b _0816E6BC -_0816E44A: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r2, [r1, 0xA] - adds r0, r2 - strh r0, [r1, 0xA] - ldr r2, =0xfffffefe - adds r0, r2, 0 - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xC] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0 - bl sub_816E6D4 - bl sub_816E74C - b _0816E6BC - .pool -_0816E488: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E496 - b _0816E6BC -_0816E496: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r2, =0xffffff00 - adds r0, r2, 0 - ldrh r2, [r1, 0xA] - adds r0, r2 - strh r0, [r1, 0xA] - movs r2, 0x81 - lsls r2, 1 - adds r0, r2, 0 - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xC] - b _0816E690 - .pool -_0816E4C4: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E4D2 - b _0816E6BC -_0816E4D2: - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0xC] - subs r1, 0xFC - strh r1, [r0, 0xC] - movs r0, 0x8 - strh r0, [r5, 0xC] - b _0816E690 - .pool -_0816E4EC: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E4FA - b _0816E6BC -_0816E4FA: - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - adds r0, 0xFC - strh r0, [r1, 0xC] - ldrh r2, [r5, 0xE] - movs r0, 0xE - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _0816E528 - movs r0, 0xC - strh r0, [r5, 0xC] - subs r0, r2, 0x1 - strh r0, [r5, 0xE] - movs r0, 0x2 - strh r0, [r5] - b _0816E6BC - .pool -_0816E528: - movs r0, 0x1 - strh r0, [r5, 0xC] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0xCA - lsls r0, 1 - str r1, [sp] - movs r1, 0 - movs r2, 0x78 - movs r3, 0xA - bl PlayCryInternal - b _0816E6BC -_0816E544: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E552 - b _0816E6BC -_0816E552: - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r1, 0xF5 - lsls r1, 1 - adds r0, r1, 0 - strh r0, [r5, 0xE] - b _0816E690 -_0816E560: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E56E - b _0816E6BC -_0816E56E: - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r2, 0xE - ldrsh r0, [r5, r2] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0x5E - movs r2, 0x1 - bl CpuSet - ldrh r0, [r5, 0xE] - subs r0, 0x2 - strh r0, [r5, 0xE] - lsls r0, 16 - movs r1, 0xF0 - lsls r1, 17 - cmp r0, r1 - beq _0816E594 - b _0816E6BC -_0816E594: - b _0816E690 - .pool -_0816E5A0: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _0816E5AE - b _0816E6BC -_0816E5AE: - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r1, 0xF1 - lsls r1, 1 - adds r0, r1, 0 - strh r0, [r5, 0xE] - b _0816E690 -_0816E5BC: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816E6BC - movs r0, 0x4 - strh r0, [r5, 0xC] - movs r2, 0xE - ldrsh r0, [r5, r2] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0x5E - movs r2, 0x1 - bl CpuSet - ldrh r0, [r5, 0xE] - adds r0, 0x2 - strh r0, [r5, 0xE] - lsls r0, 16 - movs r1, 0xF7 - lsls r1, 17 - cmp r0, r1 - bne _0816E6BC - movs r0, 0x10 - strh r0, [r5, 0xC] - b _0816E690 - .pool -_0816E5FC: - ldrh r0, [r5, 0xC] - subs r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bne _0816E6BC - strh r0, [r5, 0xC] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - adds r0, r6, 0 - bl sub_816E6D4 - b _0816E6BC -_0816E61A: - ldrh r0, [r5, 0xC] - adds r0, 0x4 - strh r0, [r5, 0xC] - ldrh r0, [r5, 0x6] - subs r0, 0x8 - strh r0, [r5, 0x6] - movs r1, 0xC - ldrsh r0, [r5, r1] - movs r1, 0x3C - bl Sin - ldr r2, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - adds r0, 0x58 - strh r0, [r1, 0xA] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x40 - bne _0816E6BC - movs r0, 0x2 - negs r0, r0 - ldr r1, =0x00007fff - str r1, [sp] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0816E690 - .pool -_0816E664: - ldrh r0, [r5, 0xC] - adds r0, 0x4 - strh r0, [r5, 0xC] - ldrh r0, [r5, 0x6] - subs r0, 0x8 - strh r0, [r5, 0x6] - movs r1, 0xC - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl Sin - ldr r2, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r2 - adds r0, 0x80 - strh r0, [r1, 0xA] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x80 - bne _0816E6BC -_0816E690: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _0816E6BC - .pool -_0816E69C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816E6BC - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_21 - str r1, [r0] - ldr r1, =gScanlineEffect - movs r0, 0x3 - strb r0, [r1, 0x15] -_0816E6BC: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_20 - - thumb_func_start sub_816E6D4 -sub_816E6D4: @ 816E6D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r7, =gUnknown_085E4CA8 - ldr r0, =gSprites - mov r9, r0 - adds r4, r7, 0 - movs r6, 0 -_0816E6EE: - movs r3, 0 - ldrsh r1, [r4, r3] - adds r0, r7, 0x2 - adds r0, r6, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - lsls r3, r5, 24 - lsrs r3, 24 - ldr r0, =gUnknown_085E4D14 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - mov r0, r8 - strh r0, [r2, 0x38] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0x3A] - movs r0, 0x40 - strh r0, [r2, 0x3C] - adds r4, 0x6 - adds r6, 0x6 - adds r5, 0x1 - cmp r5, 0x5 - ble _0816E6EE - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816E6D4 - - thumb_func_start sub_816E74C -sub_816E74C: @ 816E74C - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r7, =gUnknown_085E4CA8 - adds r4, r7, 0x4 - movs r6, 0x24 - ldr r0, =gSprites - mov r8, r0 -_0816E75E: - movs r3, 0x20 - ldrsh r1, [r4, r3] - adds r0, r7, 0x2 - adds r0, r6, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - lsls r3, r5, 24 - lsrs r3, 24 - ldr r0, =gUnknown_085E4D14 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r8 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4] - strh r0, [r2, 0x3A] - movs r0, 0x40 - strh r0, [r2, 0x3C] - adds r4, 0x6 - adds r6, 0x6 - adds r5, 0x1 - cmp r5, 0x5 - ble _0816E75E - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816E74C - - thumb_func_start sub_816E7B4 -sub_816E7B4: @ 816E7B4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0816E7C6 - cmp r0, 0x1 - beq _0816E84C - b _0816E882 -_0816E7C6: - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0816E80A - ldrh r0, [r4, 0x30] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - adds r0, 0x30 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0816E82A - adds r0, r4, 0 - bl DestroySprite - b _0816E82A -_0816E80A: - subs r0, r1, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bne _0816E82A - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0816E82A: - ldr r2, =gTasks - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0xB - ble _0816E882 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0816E882 - .pool -_0816E84C: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x77 - bgt _0816E85A - subs r0, r1, 0x3 - b _0816E85C -_0816E85A: - adds r0, r1, 0x3 -_0816E85C: - strh r0, [r4, 0x20] - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0x4F - bgt _0816E86C - subs r0, r1, 0x3 - b _0816E86E -_0816E86C: - adds r0, r1, 0x3 -_0816E86E: - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x22] - subs r0, 0x14 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8C - bls _0816E882 - adds r0, r4, 0 - bl DestroySprite -_0816E882: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816E7B4 - - thumb_func_start task_intro_21 -task_intro_21: @ 816E888 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x50 - movs r1, 0x87 - bl SetGpuReg - ldr r1, =0x00001f1f - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0x1F - bl SetGpuReg - movs r1, 0xB0 - lsls r1, 7 - movs r0, 0x8 - bl SetGpuReg - ldr r1, =0x00005a04 - movs r0, 0xA - bl SetGpuReg - ldr r1, =0x00001c06 - movs r0, 0xC - bl SetGpuReg - movs r1, 0xDD - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0x50 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - ldr r1, =0x0000ffb0 - movs r0, 0x14 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - ldr r4, =gIntro3CloudsGfx - movs r1, 0xC0 - lsls r1, 19 - adds r0, r4, 0 - bl LZDecompressVram - ldr r1, =0x06004000 - adds r0, r4, 0 - bl LZDecompressVram - ldr r0, =gIntro3Clouds3Tilemap - ldr r1, =0x0600e000 - bl LZDecompressVram - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_22 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_21 - - thumb_func_start task_intro_22 -task_intro_22: @ 816E954 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gIntro3Clouds1Tilemap - ldr r1, =0x0600c000 - bl LZDecompressVram - ldr r0, =gIntro3Clouds2Tilemap - ldr r1, =0x0600d000 - bl LZDecompressVram - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_23 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_22 - - thumb_func_start task_intro_23 -task_intro_23: @ 816E998 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_24 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] - movs r1, 0x10 - strh r1, [r0, 0x14] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_23 - - thumb_func_start task_intro_24 -task_intro_24: @ 816E9DC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r5, r1, 3 - ldr r6, =gTasks + 0x8 - adds r4, r5, r6 - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 24 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 24 - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x14 - bl SetGpuReg - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0816EA24 - cmp r0, 0x1 - beq _0816EA58 - b _0816EAA6 - .pool -_0816EA24: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816EAA6 - movs r0, 0x2 - negs r0, r0 - ldr r1, =0x0000ffff - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r2, 0xA0 - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r4, 0xC] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _0816EAA6 - .pool -_0816EA58: - movs r0, 0xC - ldrsh r1, [r4, r0] - movs r0, 0xA0 - lsls r0, 6 - cmp r1, r0 - bne _0816EA74 - ldr r0, =0x0000fffe - ldr r1, =0x00002949 - str r1, [sp] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0816EA74: - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0816EA90 - adds r0, r1, 0 - subs r0, 0x80 - strh r0, [r4, 0xC] - b _0816EAA6 - .pool -_0816EA90: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816EAA6 - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =task_intro_25 - str r1, [r0] -_0816EAA6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_24 - - thumb_func_start task_intro_25 -task_intro_25: @ 816EAB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gIntro3RayquazaTilemap - ldr r1, =0x0600e000 - bl LZDecompressVram - ldr r0, =gIntro3Clouds4Tilemap - ldr r1, =0x0600c000 - bl LZDecompressVram - ldr r0, =gIntro3RayquazaGfx - ldr r1, =0x06004000 - bl LZDecompressVram - ldr r0, =gIntro3Clouds2Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - movs r1, 0xD5 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =task_intro_26 - str r1, [r0] - movs r2, 0 - strh r2, [r0, 0x8] - movs r1, 0x1 - strh r1, [r0, 0x14] - strh r2, [r0, 0x16] - ldr r0, =gUnknown_085E4BF4 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_085E4C04 - bl LoadSpritePalettes - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_25 - - thumb_func_start task_intro_26 -task_intro_26: @ 816EB44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, =gTasks + 0x8 - adds r6, r1, r2 - movs r3, 0 - ldrsh r0, [r6, r3] - cmp r0, 0x1 - beq _0816EBE0 - cmp r0, 0x1 - bgt _0816EB6C - cmp r0, 0 - beq _0816EB72 - b _0816EC62 - .pool -_0816EB6C: - cmp r0, 0x2 - beq _0816EC4C - b _0816EC62 -_0816EB72: - ldrh r0, [r6, 0xC] - subs r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816EC62 - ldr r4, =gUnknown_085E4C4C - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x70 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - bl StartSpriteAnim - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r0, 0x48 - strh r0, [r6, 0xC] - b _0816EC62 - .pool -_0816EBE0: - ldrh r0, [r6, 0xC] - subs r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816EC62 - ldr r4, =gUnknown_085E4C4C - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0x70 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x2 - bl StartSpriteAnim - ldrh r0, [r6] - adds r0, 0x1 - strh r0, [r6] - movs r0, 0x30 - strh r0, [r6, 0xC] - b _0816EC62 - .pool -_0816EC4C: - ldrh r0, [r6, 0xC] - subs r0, 0x1 - strh r0, [r6, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _0816EC62 - adds r0, r2, 0 - subs r0, 0x8 - adds r0, r1, r0 - ldr r1, =task_intro_27 - str r1, [r0] -_0816EC62: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_26 - - thumb_func_start sub_816EC6C -sub_816EC6C: @ 816EC6C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0816EC88 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0816EC88: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816ECAC - cmp r0, 0x1 - bgt _0816EC9A - cmp r0, 0 - beq _0816ECA0 - b _0816ED12 -_0816EC9A: - cmp r0, 0x2 - beq _0816ECDC - b _0816ED12 -_0816ECA0: - movs r0, 0xE1 - lsls r0, 1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0816ECAC: - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0xBA - movs r2, 0x1 - bl CpuSet - ldrh r0, [r4, 0x30] - adds r0, 0x2 - strh r0, [r4, 0x30] - lsls r0, 16 - movs r1, 0xE7 - lsls r1, 17 - cmp r0, r1 - bne _0816ED12 - movs r0, 0xE6 - lsls r0, 1 - strh r0, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_0816ECDC: - ldrh r0, [r4, 0x32] - subs r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _0816ED12 - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldr r1, =gIntro3BgPal - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0xBA - movs r2, 0x1 - bl CpuSet - ldrh r0, [r4, 0x30] - subs r0, 0x2 - strh r0, [r4, 0x30] - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 17 - cmp r0, r1 - bne _0816ED12 - adds r0, r4, 0 - bl DestroySprite -_0816ED12: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816EC6C - - thumb_func_start task_intro_27 -task_intro_27: @ 816ED20 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_085E5048 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085E5058 - bl LoadSpritePalettes - movs r1, 0xD5 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - ldr r6, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldr r0, =task_intro_28 - str r0, [r4] - ldr r0, =0x0000ffde - ldr r1, =0x00002949 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0 - strh r0, [r4, 0x8] - movs r0, 0xA8 - strh r0, [r4, 0xA] - ldr r1, =0x0000fff0 - strh r1, [r4, 0xC] - ldr r0, =0x0000ff78 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - ldr r0, =sub_816EEA8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - strh r5, [r1, 0x10] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_27 - - thumb_func_start task_intro_28 -task_intro_28: @ 816EDB4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r5, =gTasks + 0x8 - adds r2, r4, r5 - ldrh r0, [r2, 0xE] - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - bne _0816EDD6 - ldrh r0, [r2, 0xC] - movs r1, 0x2 - eors r0, r1 - strh r0, [r2, 0xC] -_0816EDD6: - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - movs r6, 0 - ldrsh r1, [r2, r6] - cmp r1, 0x1 - beq _0816EE2E - cmp r1, 0x1 - bgt _0816EDF4 - cmp r1, 0 - beq _0816EDFE - b _0816EE86 - .pool -_0816EDF4: - cmp r1, 0x2 - beq _0816EE3A - cmp r1, 0x3 - beq _0816EE70 - b _0816EE86 -_0816EDFE: - ands r0, r3 - cmp r0, 0 - beq _0816EE1C - ldrh r0, [r2, 0x2] - subs r0, 0x2 - strh r0, [r2, 0x2] - ldrh r0, [r2, 0x4] - adds r0, 0x1 - strh r0, [r2, 0x4] - ldrh r0, [r2, 0x6] - adds r0, 0x2 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_0816EE1C: - movs r1, 0x2 - ldrsh r0, [r2, r1] - cmp r0, 0x68 - bne _0816EE86 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - strh r3, [r2, 0xA] - b _0816EE86 -_0816EE2E: - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r0, 0x4 - strh r0, [r2, 0xA] - b _0816EE86 -_0816EE3A: - ldrh r0, [r2, 0x2] - adds r0, 0x4 - strh r0, [r2, 0x2] - ldrh r0, [r2, 0x4] - subs r0, 0x2 - strh r0, [r2, 0x4] - ldrh r0, [r2, 0x6] - subs r0, 0x4 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - subs r0, 0x2 - strh r0, [r2, 0x8] - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816EE86 - movs r0, 0x8C - strh r0, [r2, 0xA] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _0816EE86 - .pool -_0816EE70: - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _0816EE86 - adds r0, r5, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, =task_intro_29 - str r1, [r0] -_0816EE86: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_28 - - thumb_func_start task_intro_29 -task_intro_29: @ 816EE90 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, =sub_816CC54 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end task_intro_29 - - thumb_func_start sub_816EEA8 -sub_816EEA8: @ 816EEA8 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - ldrh r0, [r5, 0x4] - adds r0, 0x1 - strh r0, [r5, 0x4] - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x5 - bls _0816EECA - b _0816F0B2 -_0816EECA: - lsls r0, 2 - ldr r1, =_0816EEDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816EEDC: - .4byte _0816EEF4 - .4byte _0816EF34 - .4byte _0816EF80 - .4byte _0816F00A - .4byte _0816F074 - .4byte _0816F0A0 -_0816EEF4: - ldrh r1, [r5, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816EF16 - movs r2, 0x2 - ldrsh r0, [r5, r2] - lsls r0, 1 - ldr r1, =gIntro3BgPal + 0x1A2 - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0xBC - movs r2, 0x1 - bl CpuSet - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] -_0816EF16: - movs r1, 0x2 - ldrsh r0, [r5, r1] - cmp r0, 0x6 - beq _0816EF20 - b _0816F0B2 -_0816EF20: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0 - strh r0, [r5, 0x2] - b _0816EF70 - .pool -_0816EF34: - ldrh r1, [r5, 0x6] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0816F004 - ldrh r1, [r5, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816EF60 - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 1 - ldr r1, =gIntro3BgPal + 0x1A2 - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0xB0 - movs r2, 0x1 - bl CpuSet - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] -_0816EF60: - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x6 - beq _0816EF6A - b _0816F0B2 -_0816EF6A: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_0816EF70: - movs r0, 0xA - strh r0, [r5, 0x6] - b _0816F0B2 - .pool -_0816EF80: - ldrh r1, [r5, 0x6] - movs r2, 0x6 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _0816F004 - ldrh r1, [r5, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816EFAC - movs r1, 0x2 - ldrsh r0, [r5, r1] - lsls r0, 1 - ldr r1, =gIntro3BgPal + 0x182 - adds r0, r1 - ldr r1, =gPlttBufferFaded + 0xB8 - movs r2, 0x1 - bl CpuSet - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] -_0816EFAC: - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0x6 - beq _0816EFB6 - b _0816F0B2 -_0816EFB6: - ldr r0, =gUnknown_085E5030 - movs r1, 0x78 - movs r2, 0x58 - movs r3, 0xF - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x67 - bl PlaySE - ldr r1, =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - ldrh r1, [r5, 0x8] - strh r1, [r0, 0x34] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0x10 - strh r0, [r5, 0x6] - b _0816F0B2 - .pool -_0816F004: - subs r0, r1, 0x1 - strh r0, [r5, 0x6] - b _0816F0B2 -_0816F00A: - ldrh r1, [r5, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816F0B2 - ldrh r0, [r5, 0x6] - subs r0, 0x1 - adds r2, r0, 0 - strh r0, [r5, 0x6] - lsls r0, 16 - cmp r0, 0 - beq _0816F068 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =0x00002949 - movs r0, 0x50 - movs r1, 0x10 - bl BlendPalette - ldr r4, =gIntro3BgPal + 0x1AC - ldr r5, =gPlttBufferFaded + 0xBC - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - adds r1, r5, 0 - subs r1, 0xC - adds r0, r4, 0 - movs r2, 0x1 - bl CpuSet - subs r4, 0x20 - subs r5, 0x4 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - b _0816F0B2 - .pool -_0816F068: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - movs r0, 0x35 - strh r0, [r5, 0x6] - b _0816F0B2 -_0816F074: - ldrh r0, [r5, 0x6] - subs r0, 0x1 - strh r0, [r5, 0x6] - lsls r0, 16 - cmp r0, 0 - bne _0816F0B2 - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _0816F0B2 - .pool -_0816F0A0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0816F0B2 - adds r0, r2, 0 - bl DestroyTask -_0816F0B2: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816EEA8 - - thumb_func_start intro_reset_and_hide_bgs -@ void intro_reset_and_hide_bgs() -intro_reset_and_hide_bgs: @ 816F0C0 - push {lr} - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - pop {r0} - bx r0 - thumb_func_end intro_reset_and_hide_bgs - - thumb_func_start task_intro_3_1 -task_intro_3_1: @ 816F128 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816F170 - cmp r0, 0x1 - ble _0816F148 - cmp r0, 0x2 - beq _0816F1BC -_0816F148: - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldr r0, =gUnknown_0853FF70 - ldrh r1, [r0, 0x3E] - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x40 - b _0816F1AC - .pool -_0816F170: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0816F1A0 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - movs r1, 0xFF - lsls r1, 1 - ldr r2, =gUnknown_0853FF70 - ands r0, r1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x52 - bl SetGpuReg - b _0816F1DA - .pool -_0816F1A0: - ldr r0, =gUnknown_0853FF70 - ldrh r1, [r0] - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x10 -_0816F1AC: - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0816F1DA - .pool -_0816F1BC: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask -_0816F1DA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_intro_3_1 - - thumb_func_start task_intro_3_2 -task_intro_3_2: @ 816F1E0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816F228 - cmp r0, 0x1 - ble _0816F200 - cmp r0, 0x2 - beq _0816F274 -_0816F200: - movs r1, 0xFD - lsls r1, 6 - movs r0, 0x50 - bl SetGpuReg - ldr r0, =gUnknown_0853FF70 - ldrh r1, [r0] - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - b _0816F264 - .pool -_0816F228: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x3D - bgt _0816F258 - adds r0, r1, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - movs r1, 0xFF - lsls r1, 1 - ldr r2, =gUnknown_0853FF70 - ands r0, r1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x52 - bl SetGpuReg - b _0816F2A2 - .pool -_0816F258: - ldr r0, =gUnknown_0853FF70 - ldrh r1, [r0, 0x3E] - movs r0, 0x52 - bl SetGpuReg - movs r0, 0x10 -_0816F264: - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0816F2A2 - .pool -_0816F274: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0816F284 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - b _0816F2A2 -_0816F284: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - bl DestroyTask -_0816F2A2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task_intro_3_2 - - thumb_func_start sub_816F2A8 -sub_816F2A8: @ 816F2A8 - push {r4,lr} - sub sp, 0x24 - lsls r2, 16 - lsrs r2, 16 - movs r4, 0x80 - lsls r4, 8 - str r4, [sp] - str r4, [sp, 0x4] - mov r4, sp - strh r0, [r4, 0x8] - mov r0, sp - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - strh r2, [r0, 0xE] - strh r3, [r0, 0x10] - add r4, sp, 0x14 - adds r1, r4, 0 - movs r2, 0x1 - bl BgAffineSet - ldrh r1, [r4] - movs r0, 0x20 - bl SetGpuReg - ldrh r1, [r4, 0x2] - movs r0, 0x22 - bl SetGpuReg - ldrh r1, [r4, 0x4] - movs r0, 0x24 - bl SetGpuReg - ldrh r1, [r4, 0x6] - movs r0, 0x26 - bl SetGpuReg - ldrh r1, [r4, 0x8] - movs r0, 0x28 - bl SetGpuReg - ldrh r1, [r4, 0xA] - movs r0, 0x2A - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x2C - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x2E - bl SetGpuReg - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816F2A8 - - thumb_func_start sub_816F318 -sub_816F318: @ 816F318 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xBF - ble _0816F394 - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0816F336 - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - b _0816F39A -_0816F336: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x32] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 5 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1, 0 - subs r0, 0xC0 - cmp r0, 0 - bge _0816F378 - adds r0, 0x7F -_0816F378: - asrs r0, 7 - adds r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _0816F386 - movs r0, 0xF -_0816F386: - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - b _0816F39A -_0816F394: - adds r0, r4, 0 - bl DestroySprite -_0816F39A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816F318 - - thumb_func_start sub_816F3A4 -sub_816F3A4: @ 816F3A4 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gSprites - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0816F420 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, =sub_816F318 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec - b _0816F44C - .pool -_0816F420: - ldrh r0, [r1, 0x24] - strh r0, [r4, 0x24] - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x22] -_0816F44C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816F3A4 - - thumb_func_start sub_816F454 -sub_816F454: @ 816F454 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0816F464 - ldr r0, =sub_816F46C - str r0, [r1, 0x1C] -_0816F464: - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F454 - - thumb_func_start sub_816F46C -sub_816F46C: @ 816F46C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - ldrh r4, [r7, 0x20] - movs r1, 0x20 - ldrsh r0, [r7, r1] - cmp r0, 0x74 - bgt _0816F4AC - ldrh r0, [r7, 0x26] - ldrh r1, [r7, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x22] - strh r1, [r7, 0x26] - adds r0, r4, 0x4 - strh r0, [r7, 0x20] - ldr r0, =0x0000fffc - strh r0, [r7, 0x24] - movs r0, 0x80 - strh r0, [r7, 0x36] - ldr r0, =sub_816F5B4 - str r0, [r7, 0x1C] - b _0816F59E - .pool -_0816F4AC: - ldrh r1, [r7, 0x36] - ldr r5, =gSineTable - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r0, r1, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r3, [r0] - adds r1, 0x2 - strh r1, [r7, 0x36] - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, 0 - bge _0816F4D2 - adds r0, 0x1F -_0816F4D2: - asrs r0, 5 - strh r0, [r7, 0x26] - subs r0, r4, 0x1 - strh r0, [r7, 0x20] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0816F4E8 - ldrh r0, [r7, 0x22] - adds r0, 0x1 - strh r0, [r7, 0x22] -_0816F4E8: - lsls r0, r3, 16 - asrs r0, 16 - negs r0, r0 - cmp r0, 0 - bge _0816F4F4 - adds r0, 0xF -_0816F4F4: - lsls r1, r0, 12 - lsrs r1, 16 - ldrh r4, [r7, 0x32] - ldrh r3, [r7, 0x34] - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r1, 0x30 - lsls r1, 24 - lsrs r1, 23 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r1, 0 - muls r0, r4 - cmp r0, 0 - bge _0816F51E - adds r0, 0xFF -_0816F51E: - lsls r0, 8 - lsrs r0, 16 - mov r8, r0 - lsls r0, r2, 16 - asrs r2, r0, 16 - negs r0, r2 - muls r0, r3 - cmp r0, 0 - bge _0816F532 - adds r0, 0xFF -_0816F532: - lsls r0, 8 - lsrs r0, 16 - mov r10, r0 - adds r0, r2, 0 - muls r0, r4 - cmp r0, 0 - bge _0816F542 - adds r0, 0xFF -_0816F542: - lsls r0, 8 - lsrs r5, r0, 16 - adds r0, r1, 0 - muls r0, r3 - cmp r0, 0 - bge _0816F550 - adds r0, 0xFF -_0816F550: - lsls r6, r0, 8 - lsrs r6, 16 - ldrh r0, [r7, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r3, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r5 - mov r1, r10 - lsls r5, r1, 16 - lsrs r3, r5, 16 - lsls r4, r6, 16 - str r6, [sp] - mov r1, r8 - mov r2, r9 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 1 - lsrs r5, 16 - lsls r4, 1 - lsrs r4, 16 - str r4, [sp] - mov r1, r8 - mov r2, r9 - adds r3, r5, 0 - bl SetOamMatrix -_0816F59E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F46C - - thumb_func_start sub_816F5B4 -sub_816F5B4: @ 816F5B4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x40 - beq _0816F64C - adds r0, r1, 0 - subs r0, 0x8 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x36] - adds r1, r0, 0 - ldr r2, =gSineTable - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bge _0816F62E - adds r0, 0x3F -_0816F62E: - asrs r0, 6 - strh r0, [r4, 0x24] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0816F642 - adds r0, 0x3F -_0816F642: - asrs r0, 6 - strh r0, [r4, 0x26] - b _0816F654 - .pool -_0816F64C: - movs r0, 0 - strh r0, [r4, 0x36] - ldr r0, =sub_816F660 - str r0, [r4, 0x1C] -_0816F654: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F5B4 - - thumb_func_start sub_816F660 -sub_816F660: @ 816F660 - push {r4,lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0816F6C0 - ldrh r0, [r1, 0x36] - adds r0, 0x8 - strh r0, [r1, 0x36] - ldr r3, =gSineTable - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0816F684 - adds r0, 0xF -_0816F684: - asrs r0, 4 - adds r0, 0x40 - lsls r0, 16 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0816F6A0 - adds r0, 0x3F -_0816F6A0: - asrs r0, 6 - strh r0, [r1, 0x24] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0816F6B4 - adds r0, 0x3F -_0816F6B4: - asrs r0, 6 - strh r0, [r1, 0x26] - b _0816F6C4 - .pool -_0816F6C0: - ldr r0, =sub_816F6D0 - str r0, [r1, 0x1C] -_0816F6C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F660 - - thumb_func_start sub_816F6D0 -sub_816F6D0: @ 816F6D0 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0816F6E8 - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0816F744 -_0816F6E8: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, =sub_816F318 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0816F744: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F6D0 - - thumb_func_start sub_816F750 -sub_816F750: @ 816F750 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0816F768 - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0816F7C4 -_0816F768: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, =sub_816F318 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0816F7C4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816F750 - - thumb_func_start sub_816F7D0 -sub_816F7D0: @ 816F7D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r6, [sp, 0x34] - ldr r0, [sp, 0x38] - mov r8, r0 - lsls r4, 16 - lsls r5, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0xC] - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, =gUnknown_085E4D64 - lsrs r2, r4, 16 - mov r10, r2 - asrs r4, 16 - lsrs r1, r5, 16 - str r1, [sp, 0x4] - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r5, r0, 2 - adds r4, r5, r2 - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x3C] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r4, 0x30] - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - mov r2, sp - ldrh r2, [r2, 0x8] - strh r2, [r4, 0x34] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x3A] - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ldr r1, [sp, 0xC] - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - mov r1, r8 - cmp r1, 0 - bne _0816F898 - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, =sub_816F454 - b _0816F8A0 - .pool -_0816F898: - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, =sub_816F750 -_0816F8A0: - str r1, [r0] - str r7, [sp, 0x10] - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - ldr r0, [sp, 0x4] - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - ldr r0, =gUnknown_085E4D64 - mov r1, r10 - mov r2, r8 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r0, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x1 - mov r9, r2 - strh r2, [r0, 0x30] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r2, r9 - movs r1, 0x1F - ands r2, r1 - lsls r2, 1 - ldrb r3, [r0, 0x3] - movs r6, 0x3F - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x3] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r2, =gSprites + 0x1C - adds r4, r2 - ldr r0, =sub_816F3A4 - str r0, [r4] - ldr r0, =gUnknown_085E4D64 - mov r1, r10 - mov r2, r8 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r5, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r5, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x2 - mov r8, r2 - strh r2, [r5, 0x30] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - mov r0, r8 - movs r2, 0x1F - ands r0, r2 - lsls r0, 1 - ldrb r1, [r5, 0x3] - ands r6, r1 - orrs r6, r0 - strb r6, [r5, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r0, =gSprites + 0x1C - adds r4, r0 - ldr r1, =sub_816F3A4 - str r1, [r4] - ldr r2, [sp, 0xC] - lsls r0, r2, 24 - lsrs r0, 24 - ldr r5, [sp, 0x8] - adds r5, 0x20 - lsls r4, r5, 16 - lsrs r4, 16 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 17 - lsrs r5, 16 - str r5, [sp] - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldr r0, [sp, 0x10] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_816F7D0 - - thumb_func_start sub_816F9D4 -sub_816F9D4: @ 816F9D4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0816FA62 - lsls r0, 2 - ldr r1, =_0816F9F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816F9F0: - .4byte _0816FA04 - .4byte _0816FA12 - .4byte _0816FA30 - .4byte _0816FA62 - .4byte _0816FA50 -_0816FA04: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x20] - subs r0, 0x1 - b _0816FA60 -_0816FA12: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0816FAAA - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _0816FA60 - .pool -_0816FA30: - ldrh r2, [r4, 0x20] - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _0816FA46 - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0816FA6E -_0816FA46: - adds r0, r2, 0x1 - b _0816FA60 - .pool -_0816FA50: - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _0816FA62 - subs r0, r2, 0x2 -_0816FA60: - strh r0, [r4, 0x20] -_0816FA62: - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0816FAAA -_0816FA6E: - movs r1, 0x26 - ldrsh r5, [r4, r1] - cmp r5, 0 - beq _0816FA80 - movs r0, 0 - strh r0, [r4, 0x26] - b _0816FAAA - .pool -_0816FA80: - bl Random - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x1 - beq _0816FAA8 - cmp r1, 0x1 - bgt _0816FA96 - cmp r1, 0 - beq _0816FA9E - b _0816FAAA -_0816FA96: - cmp r1, 0x3 - bgt _0816FAAA - strh r5, [r4, 0x26] - b _0816FAAA -_0816FA9E: - ldr r0, =0x0000ffff - strh r0, [r4, 0x26] - b _0816FAAA - .pool -_0816FAA8: - strh r1, [r4, 0x26] -_0816FAAA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_816F9D4 - - thumb_func_start sub_816FAB0 -sub_816FAB0: @ 816FAB0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816FACA - cmp r0, 0x1 - ble _0816FB12 - cmp r0, 0x2 - beq _0816FAEA - cmp r0, 0x3 - beq _0816FB04 - b _0816FB12 -_0816FACA: - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - ldr r1, =0x0000012f - cmp r0, r1 - bgt _0816FAE4 - ldrh r0, [r4, 0x24] - adds r0, 0x8 - b _0816FB10 - .pool -_0816FAE4: - movs r0, 0x2 - strh r0, [r4, 0x2E] - b _0816FB12 -_0816FAEA: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0x78 - ble _0816FAFE - ldrh r0, [r4, 0x24] - subs r0, 0x1 - b _0816FB10 -_0816FAFE: - movs r0, 0x3 - strh r0, [r4, 0x2E] - b _0816FB12 -_0816FB04: - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _0816FB12 - subs r0, r1, 0x2 -_0816FB10: - strh r0, [r4, 0x24] -_0816FB12: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8 - bl Sin - ldr r1, =gUnknown_0203BCCC - ldrh r1, [r1] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816FAB0 - - thumb_func_start sub_816FB38 -sub_816FB38: @ 816FB38 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x2E - ldrsh r0, [r6, r1] - cmp r0, 0x5 - bls _0816FB46 - b _0816FD38 -_0816FB46: - lsls r0, 2 - ldr r1, =_0816FB54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0816FB54: - .4byte _0816FB6C - .4byte _0816FB94 - .4byte _0816FBB4 - .4byte _0816FC5C - .4byte _0816FCC4 - .4byte _0816FCF4 -_0816FB6C: - ldrh r1, [r6, 0x30] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - beq _0816FB7C - subs r0, r1, 0x1 - strh r0, [r6, 0x30] - b _0816FD38 -_0816FB7C: - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _0816FCE6 -_0816FB94: - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - cmp r0, 0x90 - beq _0816FB9E - b _0816FD38 -_0816FB9E: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - movs r0, 0x9 - strh r0, [r6, 0x30] - movs r0, 0x2 - strh r0, [r6, 0x34] - b _0816FD38 - .pool -_0816FBB4: - ldrh r1, [r6, 0x34] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _0816FC66 - movs r0, 0x2 - strh r0, [r6, 0x34] - movs r1, 0x30 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0816FC14 - lsls r0, 1 - ldr r4, =gIntro1GameFreakTextFadePal - adds r0, r4 - ldr r5, =gPlttBufferFaded + 0x23E - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - movs r1, 0x30 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x20 - adds r0, r1 - adds r1, r5, 0 - subs r1, 0x16 - movs r2, 0x1 - bl CpuSet - movs r2, 0x30 - ldrsh r0, [r6, r2] - lsls r0, 1 - adds r4, 0x40 - adds r0, r4 - subs r5, 0xA - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - ldrh r0, [r6, 0x30] - subs r0, 0x1 - strh r0, [r6, 0x30] - b _0816FD38 - .pool -_0816FC14: - movs r1, 0x30 - ldrsh r0, [r6, r1] - lsls r0, 1 - ldr r4, =gIntro1GameFreakTextFadePal - adds r0, r4 - ldr r5, =gPlttBufferFaded + 0x23E - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - movs r2, 0x30 - ldrsh r0, [r6, r2] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x20 - adds r0, r1 - adds r1, r5, 0 - subs r1, 0x16 - movs r2, 0x1 - bl CpuSet - movs r1, 0x30 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r4, 0x40 - adds r0, r4 - subs r5, 0xA - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - b _0816FCE6 - .pool -_0816FC5C: - ldrh r1, [r6, 0x34] - movs r2, 0x34 - ldrsh r0, [r6, r2] - cmp r0, 0 - beq _0816FC6C -_0816FC66: - subs r0, r1, 0x1 - strh r0, [r6, 0x34] - b _0816FD38 -_0816FC6C: - movs r0, 0x2 - strh r0, [r6, 0x34] - movs r1, 0x30 - ldrsh r0, [r6, r1] - cmp r0, 0x9 - bgt _0816FCE6 - lsls r0, 1 - ldr r4, =gIntro1GameFreakTextFadePal - adds r0, r4 - ldr r5, =gPlttBufferFaded + 0x23E - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - movs r1, 0x30 - ldrsh r0, [r6, r1] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x20 - adds r0, r1 - adds r1, r5, 0 - subs r1, 0x16 - movs r2, 0x1 - bl CpuSet - movs r2, 0x30 - ldrsh r0, [r6, r2] - lsls r0, 1 - adds r4, 0x40 - adds r0, r4 - subs r5, 0xA - adds r1, r5, 0 - movs r2, 0x1 - bl CpuSet - ldrh r0, [r6, 0x30] - adds r0, 0x1 - strh r0, [r6, 0x30] - b _0816FD38 - .pool -_0816FCC4: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bne _0816FD38 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldrb r1, [r6, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6, 0x1] -_0816FCE6: - ldrh r0, [r6, 0x2E] - adds r0, 0x1 - strh r0, [r6, 0x2E] - b _0816FD38 - .pool -_0816FCF4: - ldr r1, =gUnknown_085E4F48 - movs r2, 0x32 - ldrsh r0, [r6, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, 0x34] - adds r0, r1 - strh r0, [r6, 0x34] - movs r2, 0x34 - ldrsh r0, [r6, r2] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - asrs r0, 8 - strh r0, [r6, 0x24] - movs r1, 0x32 - ldrsh r0, [r6, r1] - cmp r0, 0x3 - bgt _0816FD24 - movs r2, 0x24 - ldrsh r0, [r6, r2] - negs r0, r0 - strh r0, [r6, 0x24] -_0816FD24: - adds r0, r6, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0816FD38 - adds r0, r6, 0 - bl DestroySprite -_0816FD38: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_816FB38 - - thumb_func_start sub_816FD44 -sub_816FD44: @ 816FD44 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0816FD7C - cmp r0, 0x1 - bgt _0816FD5A - cmp r0, 0 - beq _0816FD60 - b _0816FDB0 -_0816FD5A: - cmp r0, 0x2 - beq _0816FD9C - b _0816FDB0 -_0816FD60: - ldr r0, =gUnknown_030062A0 - ldr r0, [r0] - cmp r0, 0x80 - bne _0816FDB0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - b _0816FD90 - .pool -_0816FD7C: - ldr r0, =gUnknown_030062A0 - ldr r1, [r0] - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - bne _0816FDB0 - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim -_0816FD90: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0816FDB0 - .pool -_0816FD9C: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0816FDB0 - adds r0, r4, 0 - bl DestroySprite -_0816FDB0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_816FD44 - - thumb_func_start sub_816FDB8 -sub_816FDB8: @ 816FDB8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x4] - movs r7, 0 -_0816FDD2: - lsls r5, r7, 2 - ldr r0, =gUnknown_085E4E94 - adds r0, 0x2 - adds r0, r5, r0 - ldr r2, [sp] - lsls r1, r2, 16 - asrs r1, 16 - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r3, [sp, 0x4] - lsls r2, r3, 16 - asrs r0, r2, 16 - str r0, [sp, 0x8] - ldr r3, =0xfffc0000 - adds r2, r3 - ldr r0, =gUnknown_085E4F5C - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - movs r1, 0 - strh r1, [r4, 0x2E] - ldr r0, =gUnknown_085E4FA4 - adds r0, r7, r0 - ldrb r0, [r0] - strh r0, [r4, 0x30] - strh r7, [r4, 0x32] - adds r1, r4, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - mov r10, r2 - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - adds r1, r7, 0 - adds r1, 0xC - movs r0, 0x1F - mov r9, r0 - mov r2, r9 - ands r1, r2 - lsls r1, 1 - ldrb r0, [r4, 0x3] - movs r3, 0x3F - negs r3, r3 - mov r8, r3 - mov r2, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - ldr r3, =gUnknown_085E4E94 - adds r5, r3 - ldrb r1, [r5] - adds r0, r4, 0 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x8 - bls _0816FDD2 - ldr r0, =gUnknown_085E4F8C - ldr r2, [sp, 0x8] - subs r2, 0x6 - lsls r2, 16 - asrs r2, 16 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r2, 0 - strh r2, [r0, 0x2E] - adds r2, r0, 0 - adds r2, 0x3E - ldrb r1, [r2] - mov r3, r10 - orrs r1, r3 - strb r1, [r2] - adds r2, r7, 0 - adds r2, 0xC - mov r1, r9 - ands r2, r1 - lsls r2, 1 - ldrb r1, [r0, 0x3] - mov r3, r8 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x3] - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r0, r6, 0 - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_816FDB8 - thumb_func_start sub_816FEDC sub_816FEDC: @ 816FEDC push {r4-r6,lr} |