diff options
Diffstat (limited to 'asm/wallclock.s')
-rw-r--r-- | asm/wallclock.s | 1515 |
1 files changed, 1515 insertions, 0 deletions
diff --git a/asm/wallclock.s b/asm/wallclock.s new file mode 100644 index 000000000..caf2e3007 --- /dev/null +++ b/asm/wallclock.s @@ -0,0 +1,1515 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_81347B4 +sub_81347B4: @ 81347B4 + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + pop {r0} + bx r0 + thumb_func_end sub_81347B4 + + thumb_func_start LoadWallClockGraphics +LoadWallClockGraphics: @ 81347C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r0, 0 + bl SetVBlankCallback + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0xE + movs r1, 0 + bl SetGpuReg + movs r0, 0xC + movs r1, 0 + bl SetGpuReg + movs r0, 0xA + movs r1, 0 + bl SetGpuReg + movs r0, 0x8 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgX + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl ChangeBgY + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + mov r2, sp + movs r6, 0 + ldr r1, =0x040000d4 + movs r5, 0x80 + lsls r5, 5 + ldr r7, =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_0813486C: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r3, r5 + subs r4, r5 + cmp r4, r5 + bhi _0813486C + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0xE0 + lsls r0, 19 + movs r3, 0x80 + lsls r3, 3 + movs r4, 0 + str r4, [sp, 0x4] + ldr r2, =0x040000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, 0x4] + lsrs r0, r3, 2 + movs r1, 0x85 + lsls r1, 24 + orrs r0, r1 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xA0 + lsls r1, 19 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, =gUnknown_08DCC05C + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, =0x020375e0 + ldrh r0, [r0] + cmp r0, 0 + bne _081348FC + ldr r0, =gUnknown_08DCC01C + movs r1, 0 + movs r2, 0x20 + bl gpu_pal_apply + b _08134906 + .pool +_081348FC: + ldr r0, =gUnknown_08DCC03C + movs r1, 0 + movs r2, 0x20 + bl gpu_pal_apply +_08134906: + bl sub_8098C64 + movs r1, 0xE0 + movs r2, 0x20 + bl gpu_pal_apply + ldr r0, =gUnknown_085B21D4 + movs r1, 0xC0 + movs r2, 0x8 + bl gpu_pal_apply + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_085B21FC + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r0, =gUnknown_085B21DC + bl InitWindows + bl DeactivateAllTextPrinters + movs r1, 0x94 + lsls r1, 2 + movs r0, 0 + movs r2, 0xD0 + bl sub_809882C + bl clear_scheduled_bg_copies_to_vram + bl remove_some_task + bl ResetTasks + bl ResetAllObjectData + bl sub_80A1A74 + bl ResetObjectPaletteAllocator + ldr r0, =gUnknown_085B2208 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085B2218 + bl LoadTaggedObjectPalettes + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end LoadWallClockGraphics + + thumb_func_start sub_813498C +sub_813498C: @ 813498C + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + movs r0, 0x1 + bl EnableInterrupts + ldr r0, =sub_81347B4 + bl SetVBlankCallback + ldr r0, =sub_8134C9C + bl SetMainCallback2 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + movs r0, 0 + bl ShowBg + movs r0, 0x2 + bl ShowBg + movs r0, 0x3 + bl ShowBg + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_813498C + + thumb_func_start Cb2_StartWallClock +Cb2_StartWallClock: @ 81349F4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0xC + bl LoadWallClockGraphics + ldr r0, =gUnknown_08DCC648 + ldr r1, =0x06003800 + bl LZ77UnCompVram + ldr r0, =sub_8134CB8 + movs r1, 0 + bl CreateTask + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + mov r8, r1 + movs r1, 0xA + strh r1, [r0, 0xC] + mov r2, r8 + strh r2, [r0, 0xE] + strh r2, [r0, 0x10] + strh r2, [r0, 0x12] + strh r2, [r0, 0x14] + strh r2, [r0, 0x8] + movs r1, 0x96 + lsls r1, 1 + strh r1, [r0, 0xA] + ldr r0, =gUnknown_085B2250 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x02020630 + mov r9, r1 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + strh r6, [r1, 0x2E] + ldrb r2, [r1, 0x1] + movs r5, 0x4 + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + movs r2, 0x1 + mov r10, r2 + mov r2, r10 + orrs r0, r2 + strb r0, [r1, 0x1] + ldrb r2, [r1, 0x3] + movs r4, 0x3F + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x3] + ldr r0, =gUnknown_085B2268 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + strh r6, [r1, 0x2E] + ldrb r0, [r1, 0x1] + ands r5, r0 + mov r0, r10 + orrs r5, r0 + strb r5, [r1, 0x1] + ldrb r0, [r1, 0x3] + ands r4, r0 + movs r0, 0x2 + orrs r4, r0 + strb r4, [r1, 0x3] + ldr r0, =gUnknown_085B22A0 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + strh r6, [r1, 0x2E] + movs r0, 0x2D + strh r0, [r1, 0x30] + ldr r0, =gUnknown_085B22B8 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r9 + strh r6, [r1, 0x2E] + movs r0, 0x5A + strh r0, [r1, 0x30] + bl sub_813498C + ldr r2, =gUnknown_085EFAE0 + movs r0, 0x1 + str r0, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end Cb2_StartWallClock + + thumb_func_start Cb2_ViewWallClock +Cb2_ViewWallClock: @ 8134B44 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + bl LoadWallClockGraphics + ldr r0, =gUnknown_08DCC908 + ldr r1, =0x06003800 + bl LZ77UnCompVram + ldr r0, =sub_8134F10 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r7, 0 + bl sub_8135130 + ldr r1, =0x03005e00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0x12 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08134B9C + movs r2, 0x2D + mov r10, r2 + movs r0, 0x5A + str r0, [sp, 0xC] + b _08134BA4 + .pool +_08134B9C: + movs r1, 0x5A + mov r10, r1 + movs r2, 0x87 + str r2, [sp, 0xC] +_08134BA4: + ldr r0, =gUnknown_085B2250 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r6, =0x02020630 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0 + mov r9, r0 + strh r7, [r1, 0x2E] + ldrb r2, [r1, 0x1] + movs r5, 0x4 + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + movs r2, 0x1 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, 0x1] + ldrb r2, [r1, 0x3] + movs r4, 0x3F + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x3] + ldr r0, =gUnknown_085B2268 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + strh r7, [r1, 0x2E] + ldrb r0, [r1, 0x1] + ands r5, r0 + mov r0, r8 + orrs r5, r0 + strb r5, [r1, 0x1] + ldrb r0, [r1, 0x3] + ands r4, r0 + movs r0, 0x2 + orrs r4, r0 + strb r4, [r1, 0x3] + ldr r0, =gUnknown_085B22A0 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + strh r7, [r1, 0x2E] + mov r2, r10 + strh r2, [r1, 0x30] + ldr r0, =gUnknown_085B22B8 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + strh r7, [r1, 0x2E] + mov r0, sp + ldrh r0, [r0, 0xC] + strh r0, [r1, 0x30] + bl sub_813498C + ldr r2, =gUnknown_085EFAE8 + movs r0, 0x1 + str r0, [sp] + mov r1, r9 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0x1 + bl PutWindowTilemap + movs r0, 0x2 + bl schedule_bg_copy_tilemap_to_vram + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end Cb2_ViewWallClock + + thumb_func_start sub_8134C9C +sub_8134C9C: @ 8134C9C + push {lr} + bl RunTasks + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl do_scheduled_bg_tilemap_copies_to_vram + bl fade_and_return_progress_probably + pop {r0} + bx r0 + thumb_func_end sub_8134C9C + + thumb_func_start sub_8134CB8 +sub_8134CB8: @ 8134CB8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08134CD8 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_8134CE8 + str r0, [r1] +_08134CD8: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134CB8 + + thumb_func_start sub_8134CE8 +sub_8134CE8: @ 8134CE8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + movs r1, 0x6 + bl __modsi3 + lsls r0, 16 + cmp r0, 0 + beq _08134D1C + ldrh r0, [r5, 0x8] + ldrb r1, [r5, 0x10] + ldrb r2, [r5, 0x14] + bl sub_8134FFC + strh r0, [r5, 0x8] + b _08134DBE + .pool +_08134D1C: + movs r2, 0xE + ldrsh r1, [r5, r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + strh r0, [r5, 0x8] + movs r3, 0xC + ldrsh r0, [r5, r3] + movs r1, 0xC + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 1 + movs r1, 0xE + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + adds r4, r1 + strh r4, [r5, 0xA] + ldr r2, =0x030022c0 + ldrh r0, [r2, 0x2E] + movs r3, 0x1 + adds r1, r3, 0 + ands r1, r0 + cmp r1, 0 + beq _08134D70 + ldr r0, =sub_8134DC4 + str r0, [r5] + b _08134DBE + .pool +_08134D70: + strh r1, [r5, 0x10] + ldrh r1, [r2, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08134D7E + strh r3, [r5, 0x10] +_08134D7E: + ldrh r1, [r2, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08134D8C + movs r0, 0x2 + strh r0, [r5, 0x10] +_08134D8C: + ldrh r1, [r5, 0x10] + movs r2, 0x10 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08134DBC + ldrh r2, [r5, 0x14] + movs r3, 0x14 + ldrsh r0, [r5, r3] + cmp r0, 0xFE + bgt _08134DA4 + adds r0, r2, 0x1 + strh r0, [r5, 0x14] +_08134DA4: + ldrh r0, [r5, 0x8] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r5, 0x14] + bl sub_8134FFC + strh r0, [r5, 0x8] + ldrb r1, [r5, 0x10] + adds r0, r6, 0 + bl sub_813504C + b _08134DBE +_08134DBC: + strh r0, [r5, 0x14] +_08134DBE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8134CE8 + + thumb_func_start sub_8134DC4 +sub_8134DC4: @ 8134DC4 + push {r4,r5,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r5, 0x94 + lsls r5, 2 + movs r0, 0 + movs r1, 0 + adds r2, r5, 0 + movs r3, 0xD + bl SetWindowBorderStyle + ldr r2, =gUnknown_085EFAC6 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + movs r3, 0 + bl Print + movs r0, 0 + bl PutWindowTilemap + movs r0, 0 + bl schedule_bg_copy_tilemap_to_vram + ldr r0, =gUnknown_085B21F4 + adds r1, r5, 0 + movs r2, 0xD + movs r3, 0x1 + bl CreateYesNoMenu + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =c3_80BF560 + str r1, [r0] + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134DC4 + + thumb_func_start c3_80BF560 +c3_80BF560: @ 8134E30 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_8198C58 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _08134E56 + cmp r1, 0 + bgt _08134E50 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08134E74 + b _08134E96 +_08134E50: + cmp r1, 0x1 + beq _08134E74 + b _08134E96 +_08134E56: + movs r0, 0x5 + bl audio_play + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_8134EA4 + b _08134E94 + .pool +_08134E74: + movs r0, 0x5 + bl audio_play + movs r0, 0 + movs r1, 0 + bl sub_8198070 + movs r0, 0 + bl ClearWindowTilemap + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_8134CE8 +_08134E94: + str r0, [r1] +_08134E96: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end c3_80BF560 + + thumb_func_start sub_8134EA4 +sub_8134EA4: @ 8134EA4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x03005e00 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + movs r2, 0xE + ldrsh r1, [r4, r2] + bl GameFreakRTC_CalcRTCToLocalDelta_DayZero + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r0, =c2_080111BC + str r0, [r4] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134EA4 + + thumb_func_start c2_080111BC +c2_080111BC: @ 8134EE8 + push {lr} + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08134F02 + bl FreeAllWindowBuffers + ldr r0, =0x030022c0 + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_08134F02: + pop {r0} + bx r0 + .pool + thumb_func_end c2_080111BC + + thumb_func_start sub_8134F10 +sub_8134F10: @ 8134F10 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08134F30 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_8134F40 + str r0, [r1] +_08134F30: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134F10 + + thumb_func_start sub_8134F40 +sub_8134F40: @ 8134F40 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8135130 + ldr r0, =0x030022c0 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08134F66 + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_8134F78 + str r0, [r1] +_08134F66: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134F40 + + thumb_func_start sub_8134F78 +sub_8134F78: @ 8134F78 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_8134FB0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134F78 + + thumb_func_start sub_8134FB0 +sub_8134FB0: @ 8134FB0 + push {lr} + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08134FC6 + ldr r0, =0x030022c0 + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_08134FC6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_8134FB0 + + thumb_func_start sub_8134FD4 +sub_8134FD4: @ 8134FD4 + push {lr} + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, 0x3C + bls _08134FE4 + movs r0, 0x6 + b _08134FF6 +_08134FE4: + cmp r0, 0x1E + bls _08134FEC + movs r0, 0x3 + b _08134FF6 +_08134FEC: + cmp r1, 0xA + bhi _08134FF4 + movs r0, 0x1 + b _08134FF6 +_08134FF4: + movs r0, 0x2 +_08134FF6: + pop {r1} + bx r1 + thumb_func_end sub_8134FD4 + + thumb_func_start sub_8134FFC +sub_8134FFC: @ 8134FFC + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r2, 24 + adds r0, r2, 0 + bl sub_8134FD4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, 0x1 + beq _0813501E + cmp r5, 0x2 + beq _08135030 + b _08135044 +_0813501E: + cmp r4, 0 + beq _08135026 + subs r0, r4, r1 + b _0813503C +_08135026: + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + b _0813503C +_08135030: + movs r0, 0xB4 + lsls r0, 1 + subs r0, r1 + cmp r4, r0 + bge _08135042 + adds r0, r4, r1 +_0813503C: + lsls r0, 16 + lsrs r4, r0, 16 + b _08135044 +_08135042: + movs r4, 0 +_08135044: + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8134FFC + + thumb_func_start sub_813504C +sub_813504C: @ 813504C + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + cmp r4, 0x1 + beq _08135060 + cmp r4, 0x2 + beq _081350A0 + b _081350DE +_08135060: + ldr r0, =0x03005e00 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xE] + movs r5, 0xE + ldrsh r0, [r1, r5] + cmp r0, 0 + ble _08135080 + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + b _081350DE + .pool +_08135080: + movs r0, 0x3B + strh r0, [r1, 0xE] + ldrh r2, [r1, 0xC] + movs r6, 0xC + ldrsh r0, [r1, r6] + cmp r0, 0 + ble _08135092 + subs r0, r2, 0x1 + b _08135094 +_08135092: + movs r0, 0x17 +_08135094: + strh r0, [r1, 0xC] + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_81350E8 + b _081350DE +_081350A0: + ldr r0, =0x03005e00 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xE] + movs r5, 0xE + ldrsh r0, [r1, r5] + cmp r0, 0x3A + bgt _081350C0 + adds r0, r2, 0x1 + strh r0, [r1, 0xE] + b _081350DE + .pool +_081350C0: + movs r5, 0 + strh r5, [r1, 0xE] + ldrh r2, [r1, 0xC] + movs r6, 0xC + ldrsh r0, [r1, r6] + cmp r0, 0x16 + bgt _081350D4 + adds r0, r2, 0x1 + strh r0, [r1, 0xC] + b _081350D6 +_081350D4: + strh r5, [r1, 0xC] +_081350D6: + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_81350E8 +_081350DE: + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_813504C + + thumb_func_start sub_81350E8 +sub_81350E8: @ 81350E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0xC] + cmp r3, 0x1 + beq _0813510C + cmp r3, 0x2 + beq _0813511E + b _0813512A + .pool +_0813510C: + cmp r0, 0xB + beq _08135116 + cmp r0, 0x17 + beq _0813511A + b _0813512A +_08135116: + movs r0, 0 + b _08135128 +_0813511A: + strh r3, [r1, 0x12] + b _0813512A +_0813511E: + cmp r0, 0 + beq _08135128 + cmp r0, 0xC + bne _0813512A + movs r0, 0x1 +_08135128: + strh r0, [r1, 0x12] +_0813512A: + pop {r0} + bx r0 + thumb_func_end sub_81350E8 + + thumb_func_start sub_8135130 +sub_8135130: @ 8135130 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl GameFreakRTC_CalcLocalDateTime + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r6, r0, r1 + ldr r5, =0x03005cf8 + movs r0, 0x2 + ldrsb r0, [r5, r0] + strh r0, [r6, 0xC] + movs r0, 0x3 + ldrsb r0, [r5, r0] + strh r0, [r6, 0xE] + movs r0, 0xE + ldrsh r1, [r6, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + strh r0, [r6, 0x8] + movs r1, 0xC + ldrsh r0, [r6, r1] + movs r1, 0xC + bl __modsi3 + lsls r0, 16 + asrs r0, 16 + lsls r4, r0, 4 + subs r4, r0 + lsls r4, 1 + movs r1, 0xE + ldrsh r0, [r6, r1] + movs r1, 0xA + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + adds r4, r1 + strh r4, [r6, 0xA] + movs r0, 0x2 + ldrsb r0, [r5, r0] + cmp r0, 0xB + bgt _081351A0 + movs r0, 0 + b _081351A2 + .pool +_081351A0: + movs r0, 0x1 +_081351A2: + strh r0, [r6, 0x12] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8135130 + + thumb_func_start sub_81351AC +sub_81351AC: @ 81351AC + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r4, [r0, 0x8] + adds r7, r4, 0 + adds r0, r4, 0 + bl sine2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _081351D4 + adds r0, 0xF +_081351D4: + lsls r0, 12 + lsrs r5, r0, 16 + adds r0, r4, 0 + bl cosine2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _081351E8 + adds r0, 0xF +_081351E8: + lsls r1, r0, 12 + lsrs r1, 16 + lsls r3, r5, 16 + lsrs r2, r3, 16 + negs r3, r3 + lsrs r3, 16 + str r1, [sp] + movs r0, 0 + bl SetSpriteTransformationMatrix + ldr r1, =gUnknown_085B22D0 + lsls r2, r7, 1 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r3, r0, 16 + adds r1, 0x1 + adds r2, r1 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 16 + lsrs r2, r0, 16 + cmp r3, 0x80 + bls _08135224 + movs r1, 0xFF + lsls r1, 8 + adds r0, r1, 0 + orrs r3, r0 +_08135224: + cmp r2, 0x80 + bls _08135230 + movs r1, 0xFF + lsls r1, 8 + adds r0, r1, 0 + orrs r2, r0 +_08135230: + strh r3, [r6, 0x24] + strh r2, [r6, 0x26] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81351AC + + thumb_func_start sub_8135244 +sub_8135244: @ 8135244 + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r6, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r4, [r0, 0xA] + adds r7, r4, 0 + adds r0, r4, 0 + bl sine2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0813526C + adds r0, 0xF +_0813526C: + lsls r0, 12 + lsrs r5, r0, 16 + adds r0, r4, 0 + bl cosine2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08135280 + adds r0, 0xF +_08135280: + lsls r1, r0, 12 + lsrs r1, 16 + lsls r3, r5, 16 + lsrs r2, r3, 16 + negs r3, r3 + lsrs r3, 16 + str r1, [sp] + movs r0, 0x1 + bl SetSpriteTransformationMatrix + ldr r1, =gUnknown_085B22D0 + lsls r2, r7, 1 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r3, r0, 16 + adds r1, 0x1 + adds r2, r1 + movs r0, 0 + ldrsb r0, [r2, r0] + lsls r0, 16 + lsrs r2, r0, 16 + cmp r3, 0x80 + bls _081352BC + movs r1, 0xFF + lsls r1, 8 + adds r0, r1, 0 + orrs r3, r0 +_081352BC: + cmp r2, 0x80 + bls _081352C8 + movs r1, 0xFF + lsls r1, 8 + adds r0, r1, 0 + orrs r2, r0 +_081352C8: + strh r3, [r6, 0x24] + strh r2, [r6, 0x26] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8135244 + + thumb_func_start sub_81352DC +sub_81352DC: @ 81352DC + push {r4,lr} + adds r4, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x12 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0813531C + ldrh r1, [r4, 0x30] + adds r0, r1, 0 + subs r0, 0x3C + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _08135308 + adds r0, r1, 0x5 + strh r0, [r4, 0x30] +_08135308: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x3B + bgt _0813533C + adds r0, r1, 0x1 + b _0813533A + .pool +_0813531C: + ldrh r1, [r4, 0x30] + adds r0, r1, 0 + subs r0, 0x2E + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _0813532E + subs r0, r1, 0x5 + strh r0, [r4, 0x30] +_0813532E: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x4B + ble _0813533C + subs r0, r1, 0x1 +_0813533A: + strh r0, [r4, 0x30] +_0813533C: + ldrh r0, [r4, 0x30] + bl cosine2 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r0, r1, 1 + cmp r0, 0 + bge _08135354 + ldr r1, =0x00000fff + adds r0, r1 +_08135354: + asrs r0, 12 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + bl sine2 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r0, r1, 1 + cmp r0, 0 + bge _08135370 + ldr r2, =0x00000fff + adds r0, r2 +_08135370: + asrs r0, 12 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81352DC + + thumb_func_start sub_8135380 +sub_8135380: @ 8135380 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =0x03005e00 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x12 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _081353C0 + ldrh r1, [r4, 0x30] + adds r0, r1, 0 + subs r0, 0x69 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _081353AC + adds r0, r1, 0x5 + strh r0, [r4, 0x30] +_081353AC: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x68 + bgt _081353E0 + adds r0, r1, 0x1 + b _081353DE + .pool +_081353C0: + ldrh r1, [r4, 0x30] + adds r0, r1, 0 + subs r0, 0x5B + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1D + bhi _081353D2 + subs r0, r1, 0x5 + strh r0, [r4, 0x30] +_081353D2: + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + ble _081353E0 + subs r0, r1, 0x1 +_081353DE: + strh r0, [r4, 0x30] +_081353E0: + ldrh r0, [r4, 0x30] + bl cosine2 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r0, r1, 1 + cmp r0, 0 + bge _081353F8 + ldr r1, =0x00000fff + adds r0, r1 +_081353F8: + asrs r0, 12 + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + bl sine2 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r0, r1, 1 + cmp r0, 0 + bge _08135414 + ldr r2, =0x00000fff + adds r0, r2 +_08135414: + asrs r0, 12 + strh r0, [r4, 0x26] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8135380 + + .align 2, 0 @ Don't pad with nop. |