summaryrefslogtreecommitdiff
path: root/asm/intro.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/intro.s')
-rw-r--r--asm/intro.s5985
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}