summaryrefslogtreecommitdiff
path: root/asm/reset_rtc_screen.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/reset_rtc_screen.s')
-rw-r--r--asm/reset_rtc_screen.s1300
1 files changed, 1300 insertions, 0 deletions
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
new file mode 100644
index 000000000..082ebf465
--- /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 @ =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_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 @ =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_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 @ =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 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.