diff options
-rw-r--r-- | asm/reset_rtc_screen.s | 1300 | ||||
-rw-r--r-- | asm/rom_806936C.s | 1291 | ||||
-rw-r--r-- | asm/title_screen.s | 10 | ||||
-rw-r--r-- | ld_script.txt | 1 |
4 files changed, 1306 insertions, 1296 deletions
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s new file mode 100644 index 000000000..950ca5b73 --- /dev/null +++ b/asm/reset_rtc_screen.s @@ -0,0 +1,1300 @@ + .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 @ =sub_806A480 + 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 @ =sub_806A59C + 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 @ =sub_806A914 + 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_08376414 + 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 @ =sub_806A92C + 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_08376414 +_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 @ =sub_806A92C + 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 @ =sub_806A958 + 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 @ =sub_806ABC8 + bl SetVBlankCallback + ldr r0, _0806ABA8 @ =sub_806ABB0 + bl SetMainCallback2 + ldr r0, _0806ABAC @ =sub_806ACCC + 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 @ =sub_806ABF4 + 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 @ =sub_806AA64 + 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 sub_80691A0 + 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 sub_8125D44 + 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. diff --git a/asm/rom_806936C.s b/asm/rom_806936C.s index 9c1a0f441..47a91f0a4 100644 --- a/asm/rom_806936C.s +++ b/asm/rom_806936C.s @@ -2285,1295 +2285,4 @@ _0806A478: .4byte gMain _0806A47C: .4byte sub_806A44C thumb_func_end sub_806A460 - thumb_func_start sub_806A480 -sub_806A480: @ 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 sub_806A480 - - thumb_func_start sub_806A59C -sub_806A59C: @ 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 sub_806A59C - - thumb_func_start sub_806A69C -sub_806A69C: @ 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 @ =sub_806A480 - 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 @ =sub_806A59C - 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 sub_806A480 -_0806A71C: .4byte 0x0000ffff -_0806A720: .4byte sub_806A59C - thumb_func_end sub_806A69C - - thumb_func_start sub_806A724 -sub_806A724: @ 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 sub_806A724 - - thumb_func_start sub_806A738 -sub_806A738: @ 806A738 - push {lr} - movs r0, 0x3 - movs r1, 0x8 - movs r2, 0x19 - movs r3, 0xB - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_806A738 - - thumb_func_start sub_806A74C -sub_806A74C: @ 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 sub_806A74C - - thumb_func_start sub_806A850 -sub_806A850: @ 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 sub_806A74C - 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 sub_806A850 - - thumb_func_start sub_806A8AC -sub_806A8AC: @ 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 sub_806A8AC - - thumb_func_start sub_806A914 -sub_806A914: @ 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 sub_806A914 - - thumb_func_start sub_806A92C -sub_806A92C: @ 806A92C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_806A738 - bl sub_806A724 - ldr r1, _0806A950 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0806A954 @ =sub_806A914 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806A950: .4byte gTasks -_0806A954: .4byte sub_806A914 - thumb_func_end sub_806A92C - - thumb_func_start sub_806A958 -sub_806A958: @ 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_08376414 - 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 @ =sub_806A92C - 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_08376414 -_0806A9A4: .4byte gMain -_0806A9A8: .4byte sub_806A92C -_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 @ =sub_806A92C - 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 sub_806A92C -_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 sub_806A8AC - 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 sub_806A74C -_0806AA58: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806A958 - - thumb_func_start sub_806AA64 -sub_806AA64: @ 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 sub_806A850 - adds r0, r5, 0 - bl sub_806A69C - movs r0, 0x2 - strh r0, [r4, 0x4] - movs r0, 0x8 - negs r0, r0 - add r8, r0 - add r6, r8 - ldr r0, _0806AAD4 @ =sub_806A958 - 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 sub_806A958 - thumb_func_end sub_806AA64 - - thumb_func_start sub_806AAD8 -sub_806AAD8: @ 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 @ =sub_806ABC8 - bl SetVBlankCallback - ldr r0, _0806ABA8 @ =sub_806ABB0 - bl SetMainCallback2 - ldr r0, _0806ABAC @ =sub_806ACCC - 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 sub_806ABC8 -_0806ABA8: .4byte sub_806ABB0 -_0806ABAC: .4byte sub_806ACCC - thumb_func_end sub_806AAD8 - - thumb_func_start sub_806ABB0 -sub_806ABB0: @ 806ABB0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_806ABB0 - - thumb_func_start sub_806ABC8 -sub_806ABC8: @ 806ABC8 - push {lr} - bl ProcessSpriteCopyRequests - bl LoadOam - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_806ABC8 - - thumb_func_start sub_806ABDC -sub_806ABDC: @ 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 sub_806ABDC - - thumb_func_start sub_806ABF4 -sub_806ABF4: @ 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 sub_806A74C - 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 sub_806A74C - ldr r0, _0806ACA8 @ =gSystemText_ResetRTCPrompt - bl sub_806ABDC - 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 sub_806ABF4 - - thumb_func_start sub_806ACCC -sub_806ACCC: @ 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 sub_806ABDC - 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 @ =sub_806ABF4 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x2] - b _0806ADFC - .align 2, 0 -_0806AD7C: .4byte sub_806ABF4 -_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 sub_806ABDC - 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 @ =sub_806AA64 - 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 sub_806AA64 -_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 sub_80691A0 - ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave - bl sub_806ABDC - 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 sub_8125D44 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806AE7C - ldr r0, _0806AE78 @ =gSystemText_SaveCompleted - bl sub_806ABDC - movs r0, 0x49 - bl PlaySE - b _0806AE88 - .align 2, 0 -_0806AE78: .4byte gSystemText_SaveCompleted -_0806AE7C: - ldr r0, _0806AECC @ =gSystemText_SaveFailed - bl sub_806ABDC - 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 sub_806ACCC - .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index 1e545020e..d8e7d8efd 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -1101,7 +1101,7 @@ _0807C6C4: b _0807C74E .align 2, 0 _0807C6F4: .4byte CB2_GoToClearSaveDataScreen -_0807C6F8: .4byte sub_807C7C8 +_0807C6F8: .4byte CB2_GoToResetRtcScreen _0807C6FC: ldr r0, _0807C758 @ =REG_BG2Y_L movs r3, 0 @@ -1205,8 +1205,8 @@ _0807C7BE: _0807C7C4: .4byte CB2_InitClearSaveDataScreen thumb_func_end CB2_GoToClearSaveDataScreen - thumb_func_start sub_807C7C8 -sub_807C7C8: @ 807C7C8 + thumb_func_start CB2_GoToResetRtcScreen +CB2_GoToResetRtcScreen: @ 807C7C8 push {lr} bl UpdatePaletteFade lsls r0, 24 @@ -1218,8 +1218,8 @@ _0807C7DA: pop {r0} bx r0 .align 2, 0 -_0807C7E0: .4byte sub_806AAD8 - thumb_func_end sub_807C7C8 +_0807C7E0: .4byte CB2_InitResetRtcScreen + thumb_func_end CB2_GoToResetRtcScreen thumb_func_start sub_807C7E4 sub_807C7E4: @ 807C7E4 diff --git a/ld_script.txt b/ld_script.txt index 0d02748c4..b570a5ddb 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -83,6 +83,7 @@ SECTIONS { src/var.o(.text); src/flag.o(.text); asm/rom_806936C.o(.text); + asm/reset_rtc_screen.o(.text); asm/party_menu.o(.text); asm/rom_806D7F8.o(.text); src/start_menu.o(.text); |