.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, =gTasks 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, =gTasks 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 CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, =gSprites adds r4, r0 adds r0, r4, 0 adds r1, r6, 0 bl StartSpriteAnim 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 CreateSprite lsls r0, 24 lsrs r0, 24 lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, =gSprites adds r2, r0 adds r1, r5, 0x5 lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl StartSpriteAnim 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, =gPlttBufferFaded ldr r0, =0x000033f8 strh r0, [r1] b _080AA630 .pool _080AA62C: ldr r0, =gPlttBufferFaded strh r2, [r0] _080AA630: adds r0, r4, 0x4 strh r0, [r3, 0x20] b _080AA648 .pool _080AA63C: ldr r1, =gPlttBufferFaded movs r0, 0 strh r0, [r1] adds r0, r3, 0 bl DestroySprite _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 DestroySprite _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 CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gSprites 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 CreateSprite lsls r0, 24 lsrs r2, r0, 24 ldr r6, =gSprites 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 CreateSprite 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 CreateSprite 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 LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer ldr r0, =gUnknown_02022E1A 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, =gMain 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 ResetPaletteFade ldr r0, =gMain 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 LoadPalette 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 ResetSpriteData bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount 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 LoadPalette ldr r0, =gUnknown_08540100 bl LoadSpritePalette ldr r0, =gMain 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, =gTasks 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, =gMain 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 BeginNormalPaletteFade ldr r0, =title_screen_vblank_callback bl SetVBlankCallback ldr r0, =gMain 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, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x5 strb r1, [r0] b _080AAB1E .pool _080AAAF0: bl UpdatePaletteFade 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 AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade 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, =gMain ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 ldr r6, =gTasks 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, =gTasks 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 CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, =gSprites 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 CreateSprite 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, =gMain ldrh r1, [r0, 0x2E] movs r0, 0xF ands r0, r1 ldr r2, =gTasks 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, =gTasks 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, =gTasks 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, =gMain 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 FadeOutBGM movs r0, 0x1 negs r0, r0 ldr r1, =0x0000ffff str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade 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 CanResetRTC cmp r0, 0x1 bne _080AADFC movs r0, 0x4 bl FadeOutBGM movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =c2_reset_rtc_screen_1 bl SetMainCallback2 b _080AAE98 .pool _080AADFC: ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x6 ands r0, r1 cmp r0, 0x6 bne _080AAE30 movs r0, 0x4 bl FadeOutBGM movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade 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, =gTasks 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, =gUnknown_02022E1A movs r1, 0x10 ldrsh r0, [r3, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 strh r0, [r2] ldr r1, =gUnknown_02022E18 movs r0, 0 strh r0, [r1] _080AAE72: ldrb r0, [r3, 0x8] bl title_screen_update_rayquaza_ring_palette ldr r0, =gMPlay_BGM 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 BeginNormalPaletteFade 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 UpdatePaletteFade 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 UpdatePaletteFade 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 UpdatePaletteFade 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 UpdatePaletteFade 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 UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080AAF3E bl m4aMPlayAllStop ldr r0, =InitBerryFixProgram 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 Cos 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 LoadPalette _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.