summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/crt0.s2
-rw-r--r--asm/rom.s836
2 files changed, 21 insertions, 817 deletions
diff --git a/asm/crt0.s b/asm/crt0.s
index 9729a9488..94d4a4b7a 100644
--- a/asm/crt0.s
+++ b/asm/crt0.s
@@ -12,7 +12,7 @@ GPIOPortData: ; 80000C4
GPIOPortDirection: ; 80000C6
.2byte 0
-GPIOPortReadWrite: ; 80000C8
+GPIOPortReadEnable: ; 80000C8
.2byte 0
.rept 6
diff --git a/asm/rom.s b/asm/rom.s
index 913d13834..0d916724f 100644
--- a/asm/rom.s
+++ b/asm/rom.s
@@ -27,7 +27,7 @@ AgbMain: ; 800024C
bl InitKeypadData
bl InitIntrHandlers
bl m4aSoundInit
- bl GameFreakRTC_Init
+ bl RtcInit
bl CheckForFlashMemory
bl init_saveblock_ptrs_and_set_copyright_callback2
bl sound_sources_off
@@ -204,7 +204,7 @@ _080003E0: .4byte 0x0000043c
thumb_func_start SeedRngWithRtc
SeedRngWithRtc: ; 80003E4
push {lr}
- bl GameFreakRTC_GetNumMinutes
+ bl RtcGetMinuteCount
adds r2, r0, 0
lsrs r0, r2, 16
ldr r1, _080003FC
@@ -620,7 +620,7 @@ DoSoftReset: ; 80006B4
ands r2, r1
strh r2, [r0, 0xA]
ldrh r0, [r0, 0xA]
- bl RTC_SetReadOnly
+ bl RTC_Protect
movs r0, 0xFF
bl SoftReset
pop {r4}
@@ -18378,803 +18378,7 @@ _080090EC: .4byte 0x00000fbc
_080090F0: .4byte 0x0000efff
thumb_func_end sub_8009084
- thumb_func_start GFRTC_DisableInterrupts
-GFRTC_DisableInterrupts: ; 80090F4
- ldr r2, _08009104
- ldr r1, _08009108
- ldrh r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2
-_08009104: .4byte 0x0300046e
-_08009108: .4byte 0x04000208
- thumb_func_end GFRTC_DisableInterrupts
-
- thumb_func_start GFRTC_RestoreInterrupts
-GFRTC_RestoreInterrupts: ; 800910C
- ldr r0, _08009118
- ldr r1, _0800911C
- ldrh r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2
-_08009118: .4byte 0x04000208
-_0800911C: .4byte 0x0300046e
- thumb_func_end GFRTC_RestoreInterrupts
-
- thumb_func_start GFRTC_ConvertBcdToBinary
-GFRTC_ConvertBcdToBinary: ; 8009120
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9F
- bhi _08009132
- movs r3, 0xF
- ands r3, r2
- cmp r3, 0x9
- bls _08009136
-_08009132:
- movs r0, 0xFF
- b _08009144
-_08009136:
- lsrs r1, r0, 28
- movs r0, 0xF
- ands r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r3
-_08009144:
- pop {r1}
- bx r1
- thumb_func_end GFRTC_ConvertBcdToBinary
-
- thumb_func_start GFRTC_IsLeapYear
-GFRTC_IsLeapYear: ; 8009148
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r4, r1, 0
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08009166
- adds r0, r1, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- cmp r0, 0
- bne _08009174
-_08009166:
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, 0
- bl __modsi3
- cmp r0, 0
- bne _08009178
-_08009174:
- movs r0, 0x1
- b _0800917A
-_08009178:
- movs r0, 0
-_0800917A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GFRTC_IsLeapYear
-
- thumb_func_start GFRTC_ConvertYmdToDayCount
-GFRTC_ConvertYmdToDayCount: ; 8009180
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r5, 0
- subs r4, r7, 0x1
- cmp r4, 0
- ble _080091C0
-_0800919C:
- ldr r1, _08009204
- adds r0, r5, r1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl GFRTC_IsLeapYear
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080091BA
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080091BA:
- subs r4, 0x1
- cmp r4, 0
- bgt _0800919C
-_080091C0:
- subs r0, r6, 0x1
- cmp r0, 0
- ble _080091D8
- ldr r1, _08009208
- adds r4, r0, 0
-_080091CA:
- ldm r1!, {r0}
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- subs r4, 0x1
- cmp r4, 0
- bne _080091CA
-_080091D8:
- cmp r6, 0x2
- bls _080091F0
- adds r0, r7, 0
- bl GFRTC_IsLeapYear
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080091F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080091F0:
- mov r1, r8
- adds r0, r5, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2
-_08009204: .4byte 0x0000016d
-_08009208: .4byte gUnknown_081E761C
- thumb_func_end GFRTC_ConvertYmdToDayCount
-
- thumb_func_start GFRTC_GetDayCount
-GFRTC_GetDayCount: ; 800920C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrb r0, [r6]
- bl GFRTC_ConvertBcdToBinary
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6, 0x1]
- bl GFRTC_ConvertBcdToBinary
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6, 0x2]
- bl GFRTC_ConvertBcdToBinary
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl GFRTC_ConvertYmdToDayCount
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GFRTC_GetDayCount
-
- thumb_func_start GameFreakRTC_Init
-GameFreakRTC_Init: ; 8009248
- push {r4,r5,lr}
- ldr r5, _08009274
- movs r0, 0
- strh r0, [r5]
- bl GFRTC_DisableInterrupts
- bl RTC_SetReadWrite
- bl RTC_Init
- ldr r4, _08009278
- strb r0, [r4]
- bl GFRTC_RestoreInterrupts
- ldrb r4, [r4]
- movs r0, 0xF
- ands r0, r4
- cmp r0, 0
- bne _0800927C
- movs r0, 0x1
- strh r0, [r5]
- b _0800929A
- .align 2
-_08009274: .4byte 0x03000458
-_08009278: .4byte 0x0300046c
-_0800927C:
- movs r0, 0xF0
- ands r0, r4
- cmp r0, 0
- beq _08009286
- movs r0, 0x2
-_08009286:
- strh r0, [r5]
- ldr r4, _080092A0
- adds r0, r4, 0
- bl GFRTC_GetControlRegAndRtcDateTime
- adds r0, r4, 0
- bl GFRTC_TestForErrors
- ldr r1, _080092A4
- strh r0, [r1]
-_0800929A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2
-_080092A0: .4byte 0x03000460
-_080092A4: .4byte 0x03000458
- thumb_func_end GameFreakRTC_Init
-
- thumb_func_start sub_80092A8
-sub_80092A8: ; 80092A8
- ldr r0, _080092B0
- ldrh r0, [r0]
- bx lr
- .align 2
-_080092B0: .4byte 0x03000458
- thumb_func_end sub_80092A8
-
- thumb_func_start GameFreakRTC_GetRTCDateTime
-GameFreakRTC_GetRTCDateTime: ; 80092B4
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _080092D0
- ldrh r1, [r0]
- movs r0, 0xFF
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _080092D8
- adds r1, r2, 0
- ldr r0, _080092D4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- b _080092DE
- .align 2
-_080092D0: .4byte 0x03000458
-_080092D4: .4byte gUnknown_081E7610
-_080092D8:
- adds r0, r2, 0
- bl GFRTC_GetControlRegAndRtcDateTime
-_080092DE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_GetRTCDateTime
-
- thumb_func_start GameFreakRTC_GetRTCDateTimeInternal
-GameFreakRTC_GetRTCDateTimeInternal: ; 80092E4
- push {r4,lr}
- adds r4, r0, 0
- bl GFRTC_DisableInterrupts
- adds r0, r4, 0
- bl RTC_GetDateTime
- bl GFRTC_RestoreInterrupts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_GetRTCDateTimeInternal
-
- thumb_func_start GameFreakRTC_GetControlReg
-GameFreakRTC_GetControlReg: ; 80092FC
- push {r4,lr}
- adds r4, r0, 0
- bl GFRTC_DisableInterrupts
- adds r0, r4, 0
- bl RTC_GetControlReg
- bl GFRTC_RestoreInterrupts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_GetControlReg
-
- thumb_func_start GFRTC_GetControlRegAndRtcDateTime
-GFRTC_GetControlRegAndRtcDateTime: ; 8009314
- push {r4,lr}
- adds r4, r0, 0
- bl GameFreakRTC_GetControlReg
- adds r0, r4, 0
- bl GameFreakRTC_GetRTCDateTimeInternal
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GFRTC_GetControlRegAndRtcDateTime
-
- thumb_func_start GFRTC_TestForErrors
-GFRTC_TestForErrors: ; 8009328
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldrb r1, [r7, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- asrs r4, r0, 31
- movs r0, 0x20
- ands r4, r0
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0800934E
- movs r0, 0x10
- orrs r4, r0
-_0800934E:
- ldrb r0, [r7]
- bl GFRTC_ConvertBcdToBinary
- mov r8, r0
- cmp r0, 0xFF
- bne _08009362
- movs r0, 0x40
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_08009362:
- ldrb r0, [r7, 0x1]
- bl GFRTC_ConvertBcdToBinary
- adds r6, r0, 0
- cmp r6, 0xFF
- beq _08009376
- cmp r6, 0
- beq _08009376
- cmp r6, 0xC
- ble _0800937E
-_08009376:
- movs r0, 0x80
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_0800937E:
- ldrb r0, [r7, 0x2]
- bl GFRTC_ConvertBcdToBinary
- adds r5, r0, 0
- cmp r5, 0xFF
- bne _08009396
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_08009396:
- cmp r6, 0x2
- bne _080093B4
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- bl GFRTC_IsLeapYear
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080093B0
- ldr r1, [r1, 0x4]
- adds r0, r1
- b _080093BE
- .align 2
-_080093B0: .4byte gUnknown_081E761C
-_080093B4:
- ldr r0, _08009424
- subs r1, r6, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
-_080093BE:
- cmp r5, r0
- ble _080093CE
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_080093CE:
- ldrb r0, [r7, 0x4]
- bl GFRTC_ConvertBcdToBinary
- adds r5, r0, 0
- cmp r5, 0x18
- ble _080093E6
- movs r1, 0x80
- lsls r1, 2
- adds r0, r1, 0
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_080093E6:
- ldrb r0, [r7, 0x5]
- bl GFRTC_ConvertBcdToBinary
- adds r5, r0, 0
- cmp r5, 0x3C
- ble _080093FE
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_080093FE:
- ldrb r0, [r7, 0x6]
- bl GFRTC_ConvertBcdToBinary
- adds r5, r0, 0
- cmp r5, 0x3C
- ble _08009416
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- orrs r4, r0
- lsls r0, r4, 16
- lsrs r4, r0, 16
-_08009416:
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2
-_08009424: .4byte gUnknown_081E761C
- thumb_func_end GFRTC_TestForErrors
-
- thumb_func_start sub_8009428
-sub_8009428: ; 8009428
- push {lr}
- bl GFRTC_DisableInterrupts
- bl RTC_Reset
- bl GFRTC_RestoreInterrupts
- pop {r0}
- bx r0
- thumb_func_end sub_8009428
-
- thumb_func_start GameFreakRTC_FormatDecimalTimeString
-GameFreakRTC_FormatDecimalTimeString: ; 800943C
- push {r4-r6,lr}
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r4, 0xF0
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_FormatDecimalTimeString
-
- thumb_func_start GameFreakRTC_FormatHexTimeString
-GameFreakRTC_FormatHexTimeString: ; 8009474
- push {r4-r6,lr}
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- movs r4, 0xF0
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_FormatHexTimeString
-
- thumb_func_start GameFreakRTC_FormatHexTimeStringFromRTCInfo
-GameFreakRTC_FormatHexTimeStringFromRTCInfo: ; 80094AC
- push {lr}
- ldr r3, _080094C0
- ldrb r1, [r3, 0x4]
- ldrb r2, [r3, 0x5]
- ldrb r3, [r3, 0x6]
- bl GameFreakRTC_FormatHexTimeString
- pop {r0}
- bx r0
- .align 2
-_080094C0: .4byte 0x03000460
- thumb_func_end GameFreakRTC_FormatHexTimeStringFromRTCInfo
-
- thumb_func_start GameFreakRTC_FormatDecimalYearMonthDayString
-GameFreakRTC_FormatDecimalYearMonthDayString: ; 80094C4
- push {r4-r6,lr}
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0x2
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r4, 0xAE
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_FormatDecimalYearMonthDayString
-
- thumb_func_start GameFreakRTC_FormatHexYearMonthDayString
-GameFreakRTC_FormatHexYearMonthDayString: ; 80094FC
- push {r4-r6,lr}
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0x2
- movs r3, 0x4
- bl ConvertIntToHexStringN
- movs r4, 0xAE
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- strb r4, [r0]
- adds r0, 0x1
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToHexStringN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_FormatHexYearMonthDayString
-
- thumb_func_start GameFreakRTC_GetRTCDelta
-GameFreakRTC_GetRTCDelta: ; 8009534
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- adds r6, r2, 0
- bl GFRTC_GetDayCount
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5, 0x6]
- bl GFRTC_ConvertBcdToBinary
- ldrb r1, [r6, 0x4]
- subs r0, r1
- strb r0, [r7, 0x4]
- ldrb r0, [r5, 0x5]
- bl GFRTC_ConvertBcdToBinary
- ldrb r1, [r6, 0x3]
- subs r0, r1
- strb r0, [r7, 0x3]
- ldrb r0, [r5, 0x4]
- bl GFRTC_ConvertBcdToBinary
- ldrb r1, [r6, 0x2]
- subs r0, r1
- strb r0, [r7, 0x2]
- ldrh r0, [r6]
- subs r4, r0
- strh r4, [r7]
- ldrb r1, [r7, 0x4]
- movs r0, 0x4
- ldrsb r0, [r7, r0]
- cmp r0, 0
- bge _08009586
- adds r0, r1, 0
- adds r0, 0x3C
- strb r0, [r7, 0x4]
- ldrb r0, [r7, 0x3]
- subs r0, 0x1
- strb r0, [r7, 0x3]
-_08009586:
- ldrb r1, [r7, 0x3]
- movs r0, 0x3
- ldrsb r0, [r7, r0]
- cmp r0, 0
- bge _0800959C
- adds r0, r1, 0
- adds r0, 0x3C
- strb r0, [r7, 0x3]
- ldrb r0, [r7, 0x2]
- subs r0, 0x1
- strb r0, [r7, 0x2]
-_0800959C:
- ldrb r1, [r7, 0x2]
- movs r0, 0x2
- ldrsb r0, [r7, r0]
- cmp r0, 0
- bge _080095B2
- adds r0, r1, 0
- adds r0, 0x18
- strb r0, [r7, 0x2]
- ldrh r0, [r7]
- subs r0, 0x1
- strh r0, [r7]
-_080095B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_GetRTCDelta
-
- thumb_func_start GameFreakRTC_CalcLocalDateTime
-GameFreakRTC_CalcLocalDateTime: ; 80095B8
- push {r4,lr}
- ldr r4, _080095D4
- adds r0, r4, 0
- bl GameFreakRTC_GetRTCDateTime
- ldr r1, _080095D8
- ldr r2, _080095DC
- adds r0, r4, 0
- bl GameFreakRTC_GetRTCDelta
- pop {r4}
- pop {r0}
- bx r0
- .align 2
-_080095D4: .4byte 0x03000460
-_080095D8: .4byte 0x03004038
-_080095DC: .4byte 0x02024f3c
- thumb_func_end GameFreakRTC_CalcLocalDateTime
-
- thumb_func_start GameFreakRTC_CalcRTCToLocalDelta_DayZero
-GameFreakRTC_CalcRTCToLocalDelta_DayZero: ; 80095E0
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- movs r0, 0
- adds r1, r3, 0
- movs r3, 0
- bl GameFreakRTC_CalcRTCToLocalDelta
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_CalcRTCToLocalDelta_DayZero
-
- thumb_func_start GameFreakRTC_CalcRTCToLocalDelta
-GameFreakRTC_CalcRTCToLocalDelta: ; 80095F4
- push {r4,r5,lr}
- ldr r4, _08009618
- strh r0, [r4]
- strb r1, [r4, 0x2]
- strb r2, [r4, 0x3]
- strb r3, [r4, 0x4]
- ldr r5, _0800961C
- adds r0, r5, 0
- bl GameFreakRTC_GetRTCDateTime
- ldr r1, _08009620
- adds r0, r5, 0
- adds r2, r4, 0
- bl GameFreakRTC_GetRTCDelta
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2
-_08009618: .4byte 0x03004038
-_0800961C: .4byte 0x03000460
-_08009620: .4byte 0x02024f3c
- thumb_func_end GameFreakRTC_CalcRTCToLocalDelta
-
- thumb_func_start GameFreakRTC_GetDelta
-GameFreakRTC_GetDelta: ; 8009624
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrb r3, [r2, 0x4]
- ldrb r0, [r1, 0x4]
- subs r5, r3, r0
- strb r5, [r4, 0x4]
- ldrb r3, [r2, 0x3]
- ldrb r0, [r1, 0x3]
- subs r6, r3, r0
- strb r6, [r4, 0x3]
- ldrb r0, [r2, 0x2]
- ldrb r3, [r1, 0x2]
- subs r0, r3
- strb r0, [r4, 0x2]
- ldrh r0, [r2]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r4]
- lsls r0, r5, 24
- cmp r0, 0
- bge _08009658
- adds r0, r5, 0
- adds r0, 0x3C
- strb r0, [r4, 0x4]
- subs r0, r6, 0x1
- strb r0, [r4, 0x3]
-_08009658:
- ldrb r1, [r4, 0x3]
- movs r0, 0x3
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bge _0800966E
- adds r0, r1, 0
- adds r0, 0x3C
- strb r0, [r4, 0x3]
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- strb r0, [r4, 0x2]
-_0800966E:
- ldrb r1, [r4, 0x2]
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bge _08009684
- adds r0, r1, 0
- adds r0, 0x18
- strb r0, [r4, 0x2]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
-_08009684:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end GameFreakRTC_GetDelta
-
- thumb_func_start GameFreakRTC_GetNumMinutes
-GameFreakRTC_GetNumMinutes: ; 800968C
- push {r4,lr}
- ldr r4, _080096C0
- adds r0, r4, 0
- bl GameFreakRTC_GetRTCDateTime
- adds r0, r4, 0
- bl GFRTC_GetDayCount
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 2
- adds r0, r1
- ldrb r4, [r4, 0x5]
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2
-_080096C0: .4byte 0x03000460
- thumb_func_end GameFreakRTC_GetNumMinutes
+ .include "genasm/rtc_util.s"
thumb_func_start sub_80096C4
sub_80096C4: ; 80096C4
@@ -19647,7 +18851,7 @@ sub_8009A64: ; 8009A64
adds r1, 0x4
movs r0, 0x7
strh r0, [r1]
- bl sub_80092A8
+ bl RtcGetErrorFlags
movs r1, 0xFF
lsls r1, 4
ands r1, r0
@@ -126160,7 +125364,7 @@ _0803F5D0:
adds r0, r3
b _0803F61C
_0803F5DA:
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r0, _0803F5F8
ldrb r0, [r0, 0x2]
subs r0, 0xC
@@ -126179,7 +125383,7 @@ _0803F5F6:
.align 2
_0803F5F8: .4byte 0x03004038
_0803F5FC:
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r0, _0803F624
ldrb r0, [r0, 0x2]
cmp r0, 0xB
@@ -165175,7 +164379,7 @@ NewGameInitData: ; 8052E6C
cmp r0, 0x2
bne _08052E7E
_08052E7A:
- bl sub_8009428
+ bl RtcReset
_08052E7E:
ldr r1, _08052F40
movs r0, 0x1
@@ -208403,7 +207607,7 @@ s2C_unknown: ; 8066300
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl GameFreakRTC_CalcRTCToLocalDelta_DayZero
+ bl RtcInitLocalTimeOffset
movs r0, 0
pop {r4,r5}
pop {r1}
@@ -208422,7 +207626,7 @@ s2D_unknown: ; 8066338
thumb_func_start s2E_unknown
s2E_unknown: ; 8066344
push {lr}
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r2, _0806636C
ldr r1, _08066370
movs r0, 0x2
@@ -216900,7 +216104,7 @@ sub_806A328: ; 806A328
push {lr}
ldr r0, _0806A350
bl FlagSet
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r2, _0806A354
adds r2, 0xA0
ldr r3, _0806A358
@@ -216928,7 +216132,7 @@ InTrainerHill: ; 806A360
lsls r0, 24
cmp r0, 0
beq _0806A380
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r4, _0806A38C
adds r0, r4, 0
bl sub_806A390
@@ -216998,7 +216202,7 @@ sub_806A3F4: ; 806A3F4
mov r0, sp
adds r1, r6, 0
adds r2, r5, 0
- bl GameFreakRTC_GetDelta
+ bl CalcTimeDifference
mov r0, sp
movs r2, 0
ldrsh r1, [r0, r2]
@@ -218186,7 +217390,7 @@ _0806AD5C: .4byte 0x0202f388
_0806AD60: .4byte 0x03005eb8
_0806AD64: .4byte gUnknown_084118A0
_0806AD68:
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r0, _0806AD7C
movs r1, 0x50
bl AddTask
@@ -218261,7 +217465,7 @@ _0806AE04: .4byte 0x03004b20
_0806AE08:
ldrb r0, [r5, 0x2]
bl remove_task
- bl sub_8009428
+ bl RtcReset
ldr r4, _0806AE4C
movs r1, 0
ldrsh r0, [r4, r1]
@@ -218271,7 +217475,7 @@ _0806AE08:
ldrsb r2, [r4, r2]
movs r3, 0x4
ldrsb r3, [r4, r3]
- bl GameFreakRTC_CalcRTCToLocalDelta
+ bl RtcCalcLocalTimeOffset
ldr r2, _0806AE50
adds r2, 0xA0
ldr r0, [r4]
@@ -547951,7 +547155,7 @@ sub_810AD58: ; 810AD58
ldrsh r0, [r4, r1]
movs r2, 0xE
ldrsh r1, [r4, r2]
- bl GameFreakRTC_CalcRTCToLocalDelta_DayZero
+ bl RtcInitLocalTimeOffset
movs r0, 0x1
negs r0, r0
movs r1, 0
@@ -548310,7 +547514,7 @@ sub_810AFE0: ; 810AFE0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r1, _0810B048
lsls r0, r4, 2
adds r0, r4
@@ -552842,7 +552046,7 @@ sub_810D378: ; 810D378
lsls r0, 24
cmp r0, 0
beq _0810D3BE
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
ldr r1, _0810D3AC
ldr r0, _0810D3B0
ldrb r0, [r0, 0x2]
@@ -568816,7 +568020,7 @@ _0811536C:
lsrs r4, r0, 24
cmp r4, 0x5
bls _08115322
- bl GameFreakRTC_CalcLocalDateTime
+ bl RtcCalcLocalTime
add sp, 0x8
pop {r4-r6}
pop {r0}