.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start SpriteCB_ResetRtcCusor0 SpriteCB_ResetRtcCusor0: @ 806A480 push {lr} adds r3, r0, 0 ldr r2, _0806A4B0 @ =gTasks movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0xC ldrsh r1, [r0, r2] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r1, r0 beq _0806A596 strh r1, [r3, 0x30] subs r0, r1, 0x1 cmp r0, 0x5 bhi _0806A596 lsls r0, 2 ldr r1, _0806A4B4 @ =_0806A4B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806A4B0: .4byte gTasks _0806A4B4: .4byte _0806A4B8 .align 2, 0 _0806A4B8: .4byte _0806A4D0 .4byte _0806A4F4 .4byte _0806A518 .4byte _0806A53C .4byte _0806A566 .4byte _0806A590 _0806A4D0: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x35 b _0806A55E _0806A4F4: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x56 b _0806A55E _0806A518: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x6B b _0806A55E _0806A53C: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x41 ands r0, r1 strb r0, [r2] movs r0, 0x80 _0806A55E: strh r0, [r3, 0x20] movs r0, 0x44 strh r0, [r3, 0x22] b _0806A596 _0806A566: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0x2 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x42 ands r0, r1 strb r0, [r2] movs r0, 0x9B strh r0, [r3, 0x20] movs r0, 0x50 strh r0, [r3, 0x22] b _0806A596 _0806A590: adds r0, r3, 0 bl DestroySprite _0806A596: pop {r0} bx r0 thumb_func_end SpriteCB_ResetRtcCusor0 thumb_func_start SpriteCB_ResetRtcCusor1 SpriteCB_ResetRtcCusor1: @ 806A59C push {lr} adds r3, r0, 0 ldr r2, _0806A5CC @ =gTasks movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r2, 0xC ldrsh r1, [r0, r2] movs r2, 0x30 ldrsh r0, [r3, r2] cmp r1, r0 beq _0806A696 strh r1, [r3, 0x30] subs r0, r1, 0x1 cmp r0, 0x5 bhi _0806A696 lsls r0, 2 ldr r1, _0806A5D0 @ =_0806A5D4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806A5CC: .4byte gTasks _0806A5D0: .4byte _0806A5D4 .align 2, 0 _0806A5D4: .4byte _0806A5EC .4byte _0806A610 .4byte _0806A634 .4byte _0806A658 .4byte _0806A682 .4byte _0806A690 _0806A5EC: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x35 b _0806A67A _0806A610: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x56 b _0806A67A _0806A634: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x6B b _0806A67A _0806A658: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r0, 0 strb r0, [r1] subs r2, 0x12 ldrb r1, [r2] subs r0, 0x40 ands r0, r1 strb r0, [r2] movs r0, 0x80 _0806A67A: strh r0, [r3, 0x20] movs r0, 0x5C strh r0, [r3, 0x22] b _0806A696 _0806A682: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _0806A696 _0806A690: adds r0, r3, 0 bl DestroySprite _0806A696: pop {r0} bx r0 thumb_func_end SpriteCB_ResetRtcCusor1 thumb_func_start ResetRtcScreen_CreateCursor ResetRtcScreen_CreateCursor: @ 806A69C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, _0806A70C @ =gUnknown_083764BC bl LoadSpritePalette ldr r0, _0806A710 @ =gSpriteTemplate_83764E8 mov r8, r0 movs r1, 0x35 movs r2, 0x44 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 ldr r6, _0806A714 @ =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r6, 0 adds r4, 0x1C adds r2, r0, r4 ldr r1, _0806A718 @ =SpriteCB_ResetRtcCusor0 str r1, [r2] adds r0, r6 strh r5, [r0, 0x2E] ldr r1, _0806A71C @ =0x0000ffff strh r1, [r0, 0x30] mov r0, r8 movs r1, 0x35 movs r2, 0x44 movs r3, 0 bl CreateSpriteAtEnd lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r0, r4 ldr r1, _0806A720 @ =SpriteCB_ResetRtcCusor1 str r1, [r4] adds r0, r6 strh r5, [r0, 0x2E] movs r1, 0x1 negs r1, r1 strh r1, [r0, 0x30] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A70C: .4byte gUnknown_083764BC _0806A710: .4byte gSpriteTemplate_83764E8 _0806A714: .4byte gSprites _0806A718: .4byte SpriteCB_ResetRtcCusor0 _0806A71C: .4byte 0x0000ffff _0806A720: .4byte SpriteCB_ResetRtcCusor1 thumb_func_end ResetRtcScreen_CreateCursor thumb_func_start ResetRtcScreen_FreeCursorPalette ResetRtcScreen_FreeCursorPalette: @ 806A724 push {lr} ldr r0, _0806A734 @ =gUnknown_083764BC ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag pop {r0} bx r0 .align 2, 0 _0806A734: .4byte gUnknown_083764BC thumb_func_end ResetRtcScreen_FreeCursorPalette thumb_func_start ResetRtcScreen_HideChooseTimeWindow ResetRtcScreen_HideChooseTimeWindow: @ 806A738 push {lr} movs r0, 0x3 movs r1, 0x8 movs r2, 0x19 movs r3, 0xB bl MenuZeroFillWindowRect pop {r0} bx r0 thumb_func_end ResetRtcScreen_HideChooseTimeWindow thumb_func_start ResetRtcScreen_PrintTime ResetRtcScreen_PrintTime: @ 806A74C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r0 adds r0, r2, 0 adds r4, r3, 0 ldr r6, [sp, 0x24] ldr r2, [sp, 0x28] mov r9, r2 mov r2, r10 lsls r2, 24 lsrs r2, 24 mov r10, r2 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r0, 16 lsrs r0, 16 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r7, _0806A83C @ =gStringVar4 ldr r1, _0806A840 @ =0x00002710 bl __umodsi3 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0x18 bl __umodsi3 mov r8, r0 mov r2, r8 lsls r2, 24 lsrs r2, 24 mov r8, r2 adds r0, r6, 0 movs r1, 0x3C bl __umodsi3 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 mov r0, r9 movs r1, 0x3C bl __umodsi3 mov r9, r0 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r4, _0806A844 @ =gStringVar1 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x18 movs r3, 0x1 bl sub_8072C44 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 ldr r1, _0806A848 @ =gOtherText_Day bl StringCopy adds r7, r0, 0 adds r0, r4, 0 mov r1, r8 movs r2, 0x12 movs r3, 0x1 bl sub_8072C44 adds r0, r7, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 ldr r4, _0806A84C @ =gUnknown_08376500 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 adds r1, r6, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN adds r7, r0, 0 adds r1, r4, 0 bl StringCopy adds r7, r0, 0 mov r1, r9 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, _0806A83C @ =gStringVar4 mov r1, r10 ldr r2, [sp] bl MenuPrint add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806A83C: .4byte gStringVar4 _0806A840: .4byte 0x00002710 _0806A844: .4byte gStringVar1 _0806A848: .4byte gOtherText_Day _0806A84C: .4byte gUnknown_08376500 thumb_func_end ResetRtcScreen_PrintTime thumb_func_start ResetRtcScreen_ShowChooseTimeWindow ResetRtcScreen_ShowChooseTimeWindow: @ 806A850 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x8 adds r6, r0, 0 mov r8, r1 adds r4, r2, 0 adds r5, r3, 0 lsls r6, 16 lsrs r6, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r0, 0x3 movs r1, 0x8 movs r2, 0x19 movs r3, 0xB bl MenuDrawTextWindow ldr r0, _0806A8A8 @ =gOtherText_OK movs r1, 0x14 movs r2, 0x9 bl MenuPrint str r4, [sp] str r5, [sp, 0x4] movs r0, 0x4 movs r1, 0x9 adds r2, r6, 0 mov r3, r8 bl ResetRtcScreen_PrintTime add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806A8A8: .4byte gOtherText_OK thumb_func_end ResetRtcScreen_ShowChooseTimeWindow thumb_func_start ResetRtcScreen_MoveTimeUpDown ResetRtcScreen_MoveTimeUpDown: @ 806A8AC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r3, 16 lsrs r3, 16 adds r1, r3, 0 movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _0806A8C6 ldrh r0, [r4] subs r0, 0x1 b _0806A8E0 _0806A8C6: movs r0, 0x40 ands r0, r3 cmp r0, 0 beq _0806A8D4 ldrh r0, [r4] adds r0, 0x1 b _0806A8FE _0806A8D4: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _0806A8EE ldrh r0, [r4] subs r0, 0xA _0806A8E0: strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r5 bge _0806A90A strh r2, [r4] b _0806A90A _0806A8EE: movs r0, 0x10 ands r1, r0 cmp r1, 0 bne _0806A8FA movs r0, 0 b _0806A90C _0806A8FA: ldrh r0, [r4] adds r0, 0xA _0806A8FE: strh r0, [r4] movs r1, 0 ldrsh r0, [r4, r1] cmp r0, r2 ble _0806A90A strh r5, [r4] _0806A90A: movs r0, 0x1 _0806A90C: pop {r4,r5} pop {r1} bx r1 thumb_func_end ResetRtcScreen_MoveTimeUpDown thumb_func_start Task_ResetRtc_3 Task_ResetRtc_3: @ 806A914 lsls r0, 24 lsrs r0, 24 ldr r2, _0806A928 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] bx lr .align 2, 0 _0806A928: .4byte gTasks thumb_func_end Task_ResetRtc_3 thumb_func_start Task_ResetRtc_2 Task_ResetRtc_2: @ 806A92C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetRtcScreen_HideChooseTimeWindow bl ResetRtcScreen_FreeCursorPalette ldr r1, _0806A950 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0806A954 @ =Task_ResetRtc_3 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0806A950: .4byte gTasks _0806A954: .4byte Task_ResetRtc_3 thumb_func_end Task_ResetRtc_2 thumb_func_start Task_ResetRtc_1 Task_ResetRtc_1: @ 806A958 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, _0806A99C @ =gTasks + 0x8 mov r8, r0 adds r5, r7, r0 ldrb r4, [r5, 0x4] lsls r0, r4, 1 adds r0, r4 lsls r0, 2 ldr r1, _0806A9A0 @ =gUnknown_08376420 - 0xC adds r2, r0, r1 ldr r1, _0806A9A4 @ =gMain ldrh r3, [r1, 0x2E] movs r0, 0x2 ands r0, r3 mov r12, r1 cmp r0, 0 beq _0806A9AC mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0806A9A8 @ =Task_ResetRtc_2 str r1, [r0] movs r0, 0 strh r0, [r5, 0x2] movs r0, 0x6 b _0806A9CC .align 2, 0 _0806A99C: .4byte gTasks + 0x8 _0806A9A0: .4byte gUnknown_08376420 - 0xC _0806A9A4: .4byte gMain _0806A9A8: .4byte Task_ResetRtc_2 _0806A9AC: movs r0, 0x10 ands r0, r3 cmp r0, 0 beq _0806A9BA ldrb r0, [r2, 0x7] cmp r0, 0 bne _0806A9CC _0806A9BA: mov r3, r12 ldrh r1, [r3, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0806A9D6 ldrb r0, [r2, 0x6] cmp r0, 0 beq _0806A9D6 _0806A9CC: strh r0, [r5, 0x4] movs r0, 0x5 bl PlaySE b _0806AA58 _0806A9D6: cmp r4, 0x5 bne _0806AA24 mov r0, r12 ldrh r1, [r0, 0x2E] movs r4, 0x1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0806AA58 ldr r1, _0806AA18 @ =gLocalTime ldrh r0, [r5, 0x6] strh r0, [r1] ldrh r0, [r5, 0x8] strb r0, [r1, 0x2] ldrh r0, [r5, 0xA] strb r0, [r1, 0x3] ldrh r0, [r5, 0xC] strb r0, [r1, 0x4] movs r0, 0x5 bl PlaySE ldr r1, _0806AA1C @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0806AA20 @ =Task_ResetRtc_2 str r1, [r0] strh r4, [r5, 0x2] movs r0, 0x6 strh r0, [r5, 0x4] b _0806AA58 .align 2, 0 _0806AA18: .4byte gLocalTime _0806AA1C: .4byte gTasks _0806AA20: .4byte Task_ResetRtc_2 _0806AA24: ldrb r0, [r2] lsls r0, 1 adds r0, r5, r0 ldrh r1, [r2, 0x2] ldrh r2, [r2, 0x4] mov r3, r12 ldrh r4, [r3, 0x30] movs r3, 0xC0 ands r3, r4 bl ResetRtcScreen_MoveTimeUpDown cmp r0, 0 beq _0806AA58 movs r0, 0x5 bl PlaySE ldrh r2, [r5, 0x6] ldrb r3, [r5, 0x8] ldrb r0, [r5, 0xA] str r0, [sp] ldrb r0, [r5, 0xC] str r0, [sp, 0x4] movs r0, 0x4 movs r1, 0x9 bl ResetRtcScreen_PrintTime _0806AA58: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end Task_ResetRtc_1 thumb_func_start Task_ResetRtc_0 Task_ResetRtc_0: @ 806AA64 push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r6, r5, 2 adds r6, r5 lsls r6, 3 ldr r0, _0806AACC @ =gTasks + 0x8 mov r8, r0 adds r4, r6, r0 movs r0, 0 strh r0, [r4] ldr r3, _0806AAD0 @ =gLocalTime ldrh r0, [r3] strh r0, [r4, 0x6] movs r1, 0x2 ldrsb r1, [r3, r1] strh r1, [r4, 0x8] movs r2, 0x3 ldrsb r2, [r3, r2] strh r2, [r4, 0xA] ldrb r3, [r3, 0x4] lsls r3, 24 asrs r3, 24 strh r3, [r4, 0xC] ldrh r0, [r4, 0x6] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 bl ResetRtcScreen_ShowChooseTimeWindow adds r0, r5, 0 bl ResetRtcScreen_CreateCursor movs r0, 0x2 strh r0, [r4, 0x4] movs r0, 0x8 negs r0, r0 add r8, r0 add r6, r8 ldr r0, _0806AAD4 @ =Task_ResetRtc_1 str r0, [r6] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0806AACC: .4byte gTasks + 0x8 _0806AAD0: .4byte gLocalTime _0806AAD4: .4byte Task_ResetRtc_1 thumb_func_end Task_ResetRtc_0 thumb_func_start CB2_InitResetRtcScreen CB2_InitResetRtcScreen: @ 806AAD8 push {r4-r7,lr} sub sp, 0x4 movs r0, 0x80 lsls r0, 19 movs r4, 0 strh r4, [r0] movs r0, 0 bl SetVBlankCallback movs r2, 0xA0 lsls r2, 19 mov r0, sp strh r4, [r0] ldr r1, _0806AB94 @ =0x040000d4 str r0, [r1] str r2, [r1, 0x4] ldr r0, _0806AB98 @ =0x81000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0xC0 lsls r2, 19 movs r3, 0xC0 lsls r3, 9 mov r4, sp movs r6, 0 movs r5, 0x80 lsls r5, 5 ldr r7, _0806AB9C @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _0806AB16: strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r2, r5 subs r3, r5 cmp r3, r5 bhi _0806AB16 strh r6, [r4] mov r0, sp str r0, [r1] str r2, [r1, 0x4] lsrs r0, r3, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 movs r1, 0x80 bl ResetOamRange bl LoadOam bl remove_some_task bl dp12_8087EA4 bl ResetSpriteData bl ResetTasks bl ResetPaletteFade ldr r4, _0806ABA0 @ =gWindowConfig_81E6CE4 adds r0, r4, 0 bl SetUpWindowConfig adds r0, r4, 0 bl InitMenuWindow movs r1, 0x80 lsls r1, 19 movs r2, 0x88 lsls r2, 5 adds r0, r2, 0 strh r0, [r1] ldr r0, _0806ABA4 @ =VBlankCB_ResetRtcScreen bl SetVBlankCallback ldr r0, _0806ABA8 @ =CB2_ResetRtcScreen bl SetMainCallback2 ldr r0, _0806ABAC @ =Task_ResetRtcScreen movs r1, 0x50 bl CreateTask add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0806AB94: .4byte 0x040000d4 _0806AB98: .4byte 0x81000200 _0806AB9C: .4byte 0x81000800 _0806ABA0: .4byte gWindowConfig_81E6CE4 _0806ABA4: .4byte VBlankCB_ResetRtcScreen _0806ABA8: .4byte CB2_ResetRtcScreen _0806ABAC: .4byte Task_ResetRtcScreen thumb_func_end CB2_InitResetRtcScreen thumb_func_start CB2_ResetRtcScreen CB2_ResetRtcScreen: @ 806ABB0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end CB2_ResetRtcScreen thumb_func_start VBlankCB_ResetRtcScreen VBlankCB_ResetRtcScreen: @ 806ABC8 push {lr} bl ProcessSpriteCopyRequests bl LoadOam bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end VBlankCB_ResetRtcScreen thumb_func_start ResetRtcScreen_ShowMessage ResetRtcScreen_ShowMessage: @ 806ABDC push {r4,lr} adds r4, r0, 0 bl MenuDisplayMessageBox adds r0, r4, 0 movs r1, 0x2 movs r2, 0xF bl MenuPrint pop {r4} pop {r0} bx r0 thumb_func_end ResetRtcScreen_ShowMessage thumb_func_start Task_ShowResetRtcPrompt Task_ShowResetRtcPrompt: @ 806ABF4 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0806AC14 @ =gTasks + 0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 beq _0806AC18 cmp r0, 0x1 beq _0806AC80 b _0806ACC4 .align 2, 0 _0806AC14: .4byte gTasks + 0x8 _0806AC18: bl MenuZeroFillScreen movs r0, 0 movs r1, 0 movs r2, 0x14 movs r3, 0xA bl MenuDrawTextWindow ldr r0, _0806AC98 @ =gSystemText_PresentTime movs r1, 0x1 movs r2, 0x1 bl MenuPrint ldr r0, _0806AC9C @ =gLocalTime ldrh r2, [r0] ldrb r3, [r0, 0x2] ldrb r1, [r0, 0x3] str r1, [sp] ldrb r0, [r0, 0x4] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x3 bl ResetRtcScreen_PrintTime ldr r0, _0806ACA0 @ =gSystemText_PreviousTime movs r1, 0x1 movs r2, 0x5 bl MenuPrint ldr r1, _0806ACA4 @ =gSaveBlock2 adds r0, r1, 0 adds r0, 0xA0 ldrh r2, [r0] adds r0, 0x2 ldrb r3, [r0] adds r0, 0x1 ldrb r0, [r0] str r0, [sp] adds r0, r1, 0 adds r0, 0xA4 ldrb r0, [r0] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x7 bl ResetRtcScreen_PrintTime ldr r0, _0806ACA8 @ =gSystemText_ResetRTCPrompt bl ResetRtcScreen_ShowMessage ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _0806AC80: ldr r0, _0806ACAC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0806ACB0 adds r0, r5, 0 bl DestroyTask bl DoSoftReset b _0806ACC4 .align 2, 0 _0806AC98: .4byte gSystemText_PresentTime _0806AC9C: .4byte gLocalTime _0806ACA0: .4byte gSystemText_PreviousTime _0806ACA4: .4byte gSaveBlock2 _0806ACA8: .4byte gSystemText_ResetRTCPrompt _0806ACAC: .4byte gMain _0806ACB0: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806ACC4 movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl DestroyTask _0806ACC4: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end Task_ShowResetRtcPrompt thumb_func_start Task_ResetRtcScreen Task_ResetRtcScreen: @ 806ACCC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0806ACF4 @ =gTasks + 0x8 adds r5, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x6 bls _0806ACE8 b _0806AEC4 _0806ACE8: lsls r0, 2 ldr r1, _0806ACF8 @ =_0806ACFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0806ACF4: .4byte gTasks + 0x8 _0806ACF8: .4byte _0806ACFC .align 2, 0 _0806ACFC: .4byte _0806AD18 .4byte _0806AD34 .4byte _0806AD80 .4byte _0806ADD8 .4byte _0806AE5C .4byte _0806AE8C .4byte _0806AEAE _0806AD18: movs r0, 0x1 negs r0, r0 ldr r1, _0806AD30 @ =0x0000ffff str r1, [sp] movs r1, 0x1 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x1 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AD30: .4byte 0x0000ffff _0806AD34: ldr r0, _0806AD5C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0806AD42 b _0806AEC4 _0806AD42: ldr r0, _0806AD60 @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _0806AD4E cmp r0, 0x2 bne _0806AD68 _0806AD4E: ldr r0, _0806AD64 @ =gSystemText_NoSaveFileNoTime bl ResetRtcScreen_ShowMessage movs r0, 0x5 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AD5C: .4byte gPaletteFade _0806AD60: .4byte gSaveFileStatus _0806AD64: .4byte gSystemText_NoSaveFileNoTime _0806AD68: bl RtcCalcLocalTime ldr r0, _0806AD7C @ =Task_ShowResetRtcPrompt movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x2] b _0806ADFC .align 2, 0 _0806AD7C: .4byte Task_ShowResetRtcPrompt _0806AD80: ldr r2, _0806ADC4 @ =gTasks movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0x1 bne _0806AD96 b _0806AEC4 _0806AD96: bl MenuZeroFillScreen ldr r0, _0806ADC8 @ =gSystemText_PleaseResetTime bl ResetRtcScreen_ShowMessage ldr r2, _0806ADCC @ =gLocalTime ldr r0, _0806ADD0 @ =gSaveBlock2 adds r0, 0xA0 ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [r2] str r1, [r2, 0x4] ldr r0, _0806ADD4 @ =Task_ResetRtc_0 movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x2] movs r0, 0x3 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806ADC4: .4byte gTasks _0806ADC8: .4byte gSystemText_PleaseResetTime _0806ADCC: .4byte gLocalTime _0806ADD0: .4byte gSaveBlock2 _0806ADD4: .4byte Task_ResetRtc_0 _0806ADD8: ldr r2, _0806AE04 @ =gTasks movs r0, 0x2 ldrsh r1, [r5, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 beq _0806AEC4 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _0806AE08 ldrb r0, [r5, 0x2] bl DestroyTask _0806ADFC: movs r0, 0x2 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AE04: .4byte gTasks _0806AE08: ldrb r0, [r5, 0x2] bl DestroyTask bl RtcReset ldr r4, _0806AE4C @ =gLocalTime movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x2 ldrsb r1, [r4, r1] movs r2, 0x3 ldrsb r2, [r4, r2] movs r3, 0x4 ldrsb r3, [r4, r3] bl RtcCalcLocalTimeOffset ldr r2, _0806AE50 @ =gSaveBlock2 adds r2, 0xA0 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [r2] str r1, [r2, 0x4] ldr r0, _0806AE54 @ =0x00004040 ldrh r1, [r4] bl VarSet bl DisableResetRTC ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave bl ResetRtcScreen_ShowMessage movs r0, 0x4 strh r0, [r5] b _0806AEC4 .align 2, 0 _0806AE4C: .4byte gLocalTime _0806AE50: .4byte gSaveBlock2 _0806AE54: .4byte 0x00004040 _0806AE58: .4byte gSystemText_ClockResetDataSave _0806AE5C: movs r0, 0 bl TrySavingData lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0806AE7C ldr r0, _0806AE78 @ =gSystemText_SaveCompleted bl ResetRtcScreen_ShowMessage movs r0, 0x49 bl PlaySE b _0806AE88 .align 2, 0 _0806AE78: .4byte gSystemText_SaveCompleted _0806AE7C: ldr r0, _0806AECC @ =gSystemText_SaveFailed bl ResetRtcScreen_ShowMessage movs r0, 0x16 bl PlaySE _0806AE88: movs r0, 0x5 strh r0, [r5] _0806AE8C: ldr r0, _0806AED0 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0806AEC4 movs r0, 0x1 negs r0, r0 ldr r1, _0806AED4 @ =0x0000ffff str r1, [sp] movs r1, 0x1 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x6 strh r0, [r5] _0806AEAE: ldr r0, _0806AED8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0806AEC4 adds r0, r4, 0 bl DestroyTask bl DoSoftReset _0806AEC4: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0806AECC: .4byte gSystemText_SaveFailed _0806AED0: .4byte gMain _0806AED4: .4byte 0x0000ffff _0806AED8: .4byte gPaletteFade thumb_func_end Task_ResetRtcScreen .align 2, 0 @ Don't pad with nop.