summaryrefslogtreecommitdiff
path: root/asm/title_screen.s
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
committerDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
commitb4a39100c0e052bdab3cfa2da707072c2ee18115 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/title_screen.s
parentf09f9cef752c37e3cc0686573c1fdb29da842772 (diff)
parent6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff)
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/title_screen.s')
-rw-r--r--asm/title_screen.s1321
1 files changed, 1321 insertions, 0 deletions
diff --git a/asm/title_screen.s b/asm/title_screen.s
new file mode 100644
index 000000000..43910ace6
--- /dev/null
+++ b/asm/title_screen.s
@@ -0,0 +1,1321 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80AA40C
+sub_80AA40C: @ 80AA40C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, =0x03005e00
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080AA43C
+ ldrb r0, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x42
+ strh r0, [r3, 0x22]
+ b _080AA46A
+ .pool
+_080AA43C:
+ ldrh r1, [r3, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x42
+ beq _080AA44A
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x22]
+_080AA44A:
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080AA458
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x2E]
+_080AA458:
+ ldr r0, =gUnknown_0853FF70
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x52
+ bl SetGpuReg
+_080AA46A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80AA40C
+
+ thumb_func_start sub_80AA474
+sub_80AA474: @ 80AA474
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, =0x03005e00
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080AA4A0
+ ldrb r0, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x42
+ b _080AA4AC
+ .pool
+_080AA4A0:
+ ldrh r1, [r3, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x42
+ beq _080AA4AE
+ adds r0, r1, 0x1
+_080AA4AC:
+ strh r0, [r3, 0x22]
+_080AA4AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA474
+
+ thumb_func_start sub_80AA4B4
+sub_80AA4B4: @ 80AA4B4
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080AA4DC
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080AA4DC
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080AA4E8
+_080AA4DC:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080AA4E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80AA4B4
+
+ thumb_func_start sub_80AA4EC
+sub_80AA4EC: @ 80AA4EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r2, =0xffc00000
+ adds r0, r2
+ lsrs r0, 16
+ movs r6, 0
+ lsls r7, r1, 16
+_080AA4FA:
+ lsls r5, r0, 16
+ asrs r5, 16
+ ldr r0, =gUnknown_085400D8
+ adds r1, r5, 0
+ asrs r2, r7, 16
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, =0x02020630
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl StartObjectImageAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, 0x20
+ lsls r5, 16
+ lsrs r0, r5, 16
+ cmp r6, 0x4
+ bls _080AA4FA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80AA4EC
+
+ thumb_func_start sub_80AA548
+sub_80AA548: @ 80AA548
+ push {r4-r6,lr}
+ lsls r0, 16
+ ldr r2, =0xffc00000
+ adds r0, r2
+ lsrs r0, 16
+ movs r5, 0
+ lsls r6, r1, 16
+_080AA556:
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r0, =gUnknown_085400D8
+ adds r1, r4, 0
+ asrs r2, r6, 16
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, =0x02020630
+ adds r2, r0
+ adds r1, r5, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartObjectImageAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x20
+ lsls r4, 16
+ lsrs r0, r4, 16
+ cmp r5, 0x4
+ bls _080AA556
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80AA548
+
+ thumb_func_start title_screen_logo_shine_obj_callback_type1
+@ void title_screen_logo_shine_obj_callback_type1(struct obj *obj)
+title_screen_logo_shine_obj_callback_type1: @ 80AA5A4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ ldr r0, =0x0000010f
+ cmp r1, r0
+ bgt _080AA63C
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _080AA630
+ cmp r1, 0x77
+ bgt _080AA5E0
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1E
+ bgt _080AA5F8
+ adds r1, 0x1
+ strh r1, [r3, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bgt _080AA5F8
+ adds r0, r1, 0x1
+ b _080AA5F6
+ .pool
+_080AA5E0:
+ ldrh r1, [r3, 0x30]
+ movs r4, 0x30
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _080AA5F8
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080AA5F8
+ subs r0, r1, 0x2
+_080AA5F6:
+ strh r0, [r3, 0x30]
+_080AA5F8:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r2, r0, 10
+ lsls r1, r0, 5
+ adds r2, r1
+ orrs r2, r0
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ ldrh r4, [r3, 0x20]
+ cmp r0, 0x84
+ beq _080AA61C
+ cmp r0, 0x88
+ beq _080AA61C
+ cmp r0, 0x8C
+ beq _080AA61C
+ cmp r0, 0x90
+ bne _080AA62C
+_080AA61C:
+ ldr r1, =0x02037b14
+ ldr r0, =0x000033f8
+ strh r0, [r1]
+ b _080AA630
+ .pool
+_080AA62C:
+ ldr r0, =0x02037b14
+ strh r2, [r0]
+_080AA630:
+ adds r0, r4, 0x4
+ strh r0, [r3, 0x20]
+ b _080AA648
+ .pool
+_080AA63C:
+ ldr r1, =0x02037b14
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl RemoveObjectAndFreeTiles
+_080AA648:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end title_screen_logo_shine_obj_callback_type1
+
+ thumb_func_start title_screen_logo_shine_obj_callback_type2
+@ void title_screen_logo_shine_obj_callback_type2(struct obj *obj)
+title_screen_logo_shine_obj_callback_type2: @ 80AA654
+ push {lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ ldr r0, =0x0000010f
+ cmp r1, r0
+ bgt _080AA670
+ adds r0, r3, 0
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ b _080AA676
+ .pool
+_080AA670:
+ adds r0, r2, 0
+ bl RemoveObjectAndFreeTiles
+_080AA676:
+ pop {r0}
+ bx r0
+ thumb_func_end title_screen_logo_shine_obj_callback_type2
+
+ thumb_func_start title_screen_add_logo_shine_obj
+@ void title_screen_add_logo_shine_obj(int a1)
+title_screen_add_logo_shine_obj: @ 80AA67C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ beq _080AA6D0
+ cmp r5, 0x1
+ bgt _080AA698
+ cmp r5, 0
+ beq _080AA69C
+ b _080AA766
+_080AA698:
+ cmp r5, 0x2
+ bne _080AA766
+_080AA69C:
+ ldr r0, =gUnknown_08540124
+ movs r1, 0
+ movs r2, 0x44
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =0x02020630
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ strh r5, [r0, 0x2E]
+ b _080AA766
+ .pool
+_080AA6D0:
+ ldr r0, =gUnknown_08540124
+ mov r9, r0
+ movs r1, 0
+ movs r2, 0x44
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r6, =0x02020630
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x8
+ mov r8, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ strh r5, [r1, 0x2E]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0x44
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r0, r1, r5
+ ldr r2, =title_screen_logo_shine_obj_callback_type2
+ mov r10, r2
+ str r2, [r0]
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ movs r1, 0x50
+ negs r1, r1
+ mov r0, r9
+ movs r2, 0x44
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r5
+ mov r1, r10
+ str r1, [r5]
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ mov r2, r8
+ orrs r4, r2
+ strb r4, [r0, 0x1]
+_080AA766:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end title_screen_add_logo_shine_obj
+
+ thumb_func_start title_screen_vblank_callback
+@ void title_screen_vblank_callback()
+title_screen_vblank_callback: @ 80AA780
+ push {lr}
+ bl sub_80BA0A8
+ bl LoadOamFromSprites
+ bl ProcessObjectCopyRequests
+ bl copy_pal_bg_faded_to_pal_ram
+ ldr r0, =0x02022e1a
+ ldrh r1, [r0]
+ movs r0, 0x16
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end title_screen_vblank_callback
+
+ thumb_func_start c2_title_screen_1
+@ void c2_title_screen_1()
+c2_title_screen_1: @ 80AA7A4
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _080AA7E0
+ lsls r0, 2
+ ldr r1, =_080AA7C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080AA7C8:
+ .4byte _080AA7E0
+ .4byte _080AA8C4
+ .4byte _080AA998
+ .4byte _080AA9E0
+ .4byte _080AAA14
+ .4byte _080AAAF0
+_080AA7E0:
+ 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, 0xC
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0xA
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x8
+ 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
+ add r1, sp, 0xC
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x10]
+ add r0, sp, 0x10
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0xC
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_80A1A74
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080AAB1E
+ .pool
+_080AA8C4:
+ ldr r0, =gTitleScreenPokemonLogoTiles
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_08DE0644
+ ldr r1, =0x06004800
+ bl LZ77UnCompVram
+ ldr r0, =gTitleScreenBgPalettes
+ movs r2, 0xF0
+ lsls r2, 1
+ movs r1, 0
+ bl gpu_pal_apply
+ ldr r0, =gTitleScreenRayquazaTiles
+ ldr r1, =0x06008000
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_0853F83C
+ ldr r1, =0x0600d000
+ bl LZ77UnCompVram
+ ldr r0, =gTitleScreenCloudsTiles
+ ldr r1, =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_08DDE458
+ ldr r1, =0x0600d800
+ bl LZ77UnCompVram
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetAllObjectData
+ bl ResetObjectPaletteAllocator
+ ldr r1, =0x0300301c
+ movs r0, 0x9
+ strb r0, [r1]
+ ldr r0, =gUnknown_08540048
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_085400F0
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_0854013C
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08DDE438
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl gpu_pal_apply
+ ldr r0, =gUnknown_08540100
+ bl LoadTaggedObjectPalette
+ ldr r0, =0x030022c0
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ b _080AAB1E
+ .pool
+_080AA998:
+ ldr r0, =task_title_screen_1
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldr r0, =0x0000fff0
+ strh r0, [r1, 0xC]
+ subs r0, 0x10
+ strh r0, [r1, 0xE]
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ b _080AAB1E
+ .pool
+_080AA9E0:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl pal_fade_maybe
+ ldr r0, =title_screen_vblank_callback
+ bl SetVBlankCallback
+ ldr r0, =0x030022c0
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x4
+ strb r1, [r0]
+ b _080AAB1E
+ .pool
+_080AAA14:
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x78
+ movs r1, 0x50
+ movs r3, 0
+ bl sub_816F2A8
+ movs r1, 0xE3
+ lsls r1, 8
+ movs r0, 0x28
+ bl SetGpuReg
+ ldr r4, =0x0000ffff
+ movs r0, 0x2A
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r1, 0xE0
+ lsls r1, 8
+ movs r0, 0x2C
+ bl SetGpuReg
+ movs r0, 0x2E
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x40
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x44
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x42
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x46
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00001f1f
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r1, =0x00003f1f
+ movs r0, 0x4A
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0x84
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0xC
+ bl SetGpuReg
+ ldr r1, =0x00001a0b
+ movs r0, 0x8
+ bl SetGpuReg
+ ldr r1, =0x00001b0e
+ movs r0, 0xA
+ bl SetGpuReg
+ ldr r1, =0x00004981
+ movs r0, 0xC
+ bl SetGpuReg
+ movs r0, 0x1
+ bl EnableInterrupts
+ ldr r1, =0x0000b441
+ movs r0, 0
+ bl SetGpuReg
+ ldr r0, =0x0000019d
+ bl m4aSongNumStart
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ b _080AAB1E
+ .pool
+_080AAAF0:
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080AAB1E
+ movs r0, 0
+ bl title_screen_add_logo_shine_obj
+ str r4, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xA0
+ movs r2, 0x4
+ movs r3, 0x4
+ bl sub_80BA384
+ ldr r0, =c2_title_screen_2
+ bl SetMainCallback2
+_080AAB1E:
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_title_screen_1
+
+ thumb_func_start c2_title_screen_2
+@ void c2_title_screen_2()
+c2_title_screen_2: @ 80AAB2C
+ push {lr}
+ bl RunTasks
+ bl CallObjectCallbacks
+ bl PrepareSpritesForOamLoad
+ bl fade_and_return_progress_probably
+ pop {r0}
+ bx r0
+ thumb_func_end c2_title_screen_2
+
+ thumb_func_start task_title_screen_1
+@ void task_title_screen_1(int task_id)
+task_title_screen_1: @ 80AAB44
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ ldr r6, =0x03005e00
+ cmp r0, 0
+ bne _080AAB6A
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080AAB7C
+_080AAB6A:
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0x8]
+ adds r4, r3, 0
+_080AAB7C:
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r6, r0, r6
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080AABC0
+ ldrh r0, [r6, 0x8]
+ cmp r0, 0xB0
+ bne _080AABA0
+ movs r0, 0x1
+ bl title_screen_add_logo_shine_obj
+ b _080AABAA
+ .pool
+_080AABA0:
+ cmp r0, 0x40
+ bne _080AABAA
+ movs r0, 0x2
+ bl title_screen_add_logo_shine_obj
+_080AABAA:
+ ldr r0, =0x03005e00
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080AAC32
+ .pool
+_080AABC0:
+ ldr r1, =0x00001441
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00003f50
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0x10
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gUnknown_08540018
+ movs r1, 0x62
+ movs r2, 0x2
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, =0x02020630
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x40
+ strh r0, [r1, 0x2E]
+ strh r5, [r1, 0x30]
+ ldr r0, =gUnknown_08540030
+ movs r1, 0xA2
+ movs r2, 0x2
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ strh r5, [r1, 0x30]
+ movs r0, 0x90
+ strh r0, [r6, 0x8]
+ ldr r0, =task_title_screen_2
+ str r0, [r6]
+_080AAC32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_title_screen_1
+
+ thumb_func_start task_title_screen_2
+@ void task_title_screen_2(int task_id)
+task_title_screen_2: @ 80AAC50
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ ldr r2, =0x03005e00
+ cmp r0, 0
+ bne _080AAC76
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r1, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080AAC88
+_080AAC76:
+ lsls r3, r4, 2
+ adds r0, r3, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0x8]
+ adds r6, r3, 0
+_080AAC88:
+ ldr r1, =0x03005e00
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ movs r1, 0x8
+ ldrsh r7, [r5, r1]
+ cmp r7, 0
+ beq _080AACA8
+ subs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080AACE2
+ .pool
+_080AACA8:
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ ldr r1, =0x00002142
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x00000f06
+ movs r0, 0x52
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00001741
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x80
+ movs r1, 0x6C
+ bl sub_80AA4EC
+ movs r0, 0x80
+ movs r1, 0x94
+ bl sub_80AA548
+ strh r7, [r5, 0x10]
+ ldr r0, =task_title_screen_3
+ str r0, [r5]
+_080AACE2:
+ ldr r2, =0x03005e00
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r1, [r3, 0x8]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080AAD02
+ ldrh r1, [r3, 0xC]
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ cmp r0, 0
+ beq _080AAD02
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xC]
+_080AAD02:
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r1, [r3, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AAD20
+ ldrh r1, [r3, 0xE]
+ movs r5, 0xE
+ ldrsh r0, [r3, r5]
+ cmp r0, 0
+ beq _080AAD20
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xE]
+_080AAD20:
+ adds r4, r6, r4
+ lsls r4, 3
+ adds r4, r2
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r5, r1, 8
+ lsls r1, 24
+ lsrs r1, 16
+ movs r0, 0x2C
+ bl SetGpuReg
+ lsrs r5, 16
+ movs r0, 0x2E
+ adds r1, r5, 0
+ bl SetGpuReg
+ movs r0, 0xF
+ strh r0, [r4, 0x12]
+ movs r0, 0x6
+ strh r0, [r4, 0x14]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_title_screen_2
+
+ thumb_func_start task_title_screen_3
+@ void task_title_screen_3(int task_id)
+task_title_screen_3: @ 80AAD64
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, =0x030022c0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080AAD84
+ movs r0, 0x8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080AADB0
+_080AAD84:
+ movs r0, 0x4
+ bl play_sound_effect
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, =0x0000ffff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ ldr r0, =Cb2_GoToMainMenu
+ bl SetMainCallback2
+ b _080AAE98
+ .pool
+_080AADB0:
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x46
+ ands r0, r1
+ cmp r0, 0x46
+ bne _080AADC8
+ ldr r0, =c2_clear_save_data_screen_1
+ bl SetMainCallback2
+ b _080AAE98
+ .pool
+_080AADC8:
+ movs r0, 0x26
+ ands r0, r1
+ cmp r0, 0x26
+ bne _080AADFC
+ bl sub_809D614
+ cmp r0, 0x1
+ bne _080AADFC
+ movs r0, 0x4
+ bl play_sound_effect
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ ldr r0, =c2_reset_rtc_screen_1
+ bl SetMainCallback2
+ b _080AAE98
+ .pool
+_080AADFC:
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x6
+ bne _080AAE30
+ movs r0, 0x4
+ bl play_sound_effect
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ ldr r0, =c2_berry_program_update_screen_1
+ bl SetMainCallback2
+ b _080AAE98
+ .pool
+_080AAE30:
+ movs r0, 0x2C
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x2E
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x03005e00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080AAE72
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ ldr r2, =0x02022e1a
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r2]
+ ldr r1, =0x02022e18
+ movs r0, 0
+ strh r0, [r1]
+_080AAE72:
+ ldrb r0, [r3, 0x8]
+ bl title_screen_update_rayquaza_ring_palette
+ ldr r0, =0x03007420
+ ldr r1, =0x0000ffff
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080AAE98
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ ldr r0, =c2_show_copyright_and_intro_again_1
+ bl SetMainCallback2
+_080AAE98:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_title_screen_3
+
+ thumb_func_start Cb2_GoToMainMenu
+Cb2_GoToMainMenu: @ 80AAEB8
+ push {lr}
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AAECA
+ ldr r0, =CB2_InitMainMenu
+ bl SetMainCallback2
+_080AAECA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Cb2_GoToMainMenu
+
+ thumb_func_start c2_show_copyright_and_intro_again_1
+c2_show_copyright_and_intro_again_1: @ 80AAED4
+ push {lr}
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AAEE6
+ ldr r0, =c2_show_copyright_and_intro_again_2
+ bl SetMainCallback2
+_080AAEE6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_show_copyright_and_intro_again_1
+
+ thumb_func_start c2_clear_save_data_screen_1
+c2_clear_save_data_screen_1: @ 80AAEF0
+ push {lr}
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AAF02
+ ldr r0, =c2_clear_save_data_screen_2
+ bl SetMainCallback2
+_080AAF02:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_clear_save_data_screen_1
+
+ thumb_func_start c2_reset_rtc_screen_1
+c2_reset_rtc_screen_1: @ 80AAF0C
+ push {lr}
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AAF1E
+ ldr r0, =sub_809EF88
+ bl SetMainCallback2
+_080AAF1E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_reset_rtc_screen_1
+
+ thumb_func_start c2_berry_program_update_screen_1
+c2_berry_program_update_screen_1: @ 80AAF28
+ push {lr}
+ bl fade_and_return_progress_probably
+ lsls r0, 24
+ cmp r0, 0
+ bne _080AAF3E
+ bl m4aMPlayAllStop
+ ldr r0, =sub_81BF384
+ bl SetMainCallback2
+_080AAF3E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_berry_program_update_screen_1
+
+ thumb_func_start title_screen_update_rayquaza_ring_palette
+@ void title_screen_update_rayquaza_ring_palette(u8 a1)
+title_screen_update_rayquaza_ring_palette: @ 80AAF48
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080AAF9C
+ adds r0, r1, 0
+ movs r1, 0x80
+ bl cosine
+ lsls r0, 16
+ asrs r0, 16
+ adds r2, r0, 0
+ adds r2, 0x80
+ lsls r0, r2, 5
+ subs r0, r2
+ cmp r0, 0
+ bge _080AAF72
+ adds r0, 0xFF
+_080AAF72:
+ asrs r0, 8
+ movs r3, 0x1F
+ subs r1, r3, r0
+ movs r0, 0x16
+ muls r0, r2
+ cmp r0, 0
+ bge _080AAF82
+ adds r0, 0xFF
+_080AAF82:
+ asrs r0, 8
+ subs r0, r3, r0
+ lsls r0, 5
+ orrs r1, r0
+ movs r0, 0xC0
+ lsls r0, 6
+ orrs r1, r0
+ mov r0, sp
+ strh r1, [r0]
+ movs r1, 0xEF
+ movs r2, 0x2
+ bl gpu_pal_apply
+_080AAF9C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end title_screen_update_rayquaza_ring_palette
+
+ .align 2, 0 @ Don't pad with nop.