pokeemmo/include/siirtc.h
cawtds ee911ffbae
FakeRtc datetime and ResetRtcScreen day increments (#5695)
Co-authored-by: psf <77138753+pkmnsnfrn@users.noreply.github.com>
2025-04-12 13:17:58 -07:00

72 lines
1.5 KiB
C

#ifndef GUARD_RTC_H
#define GUARD_RTC_H
#include "gba/gba.h"
#define SIIRTCINFO_INTFE 0x01 // frequency interrupt enable
#define SIIRTCINFO_INTME 0x02 // per-minute interrupt enable
#define SIIRTCINFO_INTAE 0x04 // alarm interrupt enable
#define SIIRTCINFO_24HOUR 0x40 // 0: 12-hour mode, 1: 24-hour mode
#define SIIRTCINFO_POWER 0x80 // power on or power failure occurred
#define HOURS_PER_DAY 24
#define MINUTES_PER_HOUR 60
#define SECONDS_PER_MINUTE 60
enum Weekday
{
WEEKDAY_SUN,
WEEKDAY_MON,
WEEKDAY_TUE,
WEEKDAY_WED,
WEEKDAY_THU,
WEEKDAY_FRI,
WEEKDAY_SAT,
WEEKDAY_COUNT,
};
enum Month
{
MONTH_JAN = 1,
MONTH_FEB,
MONTH_MAR,
MONTH_APR,
MONTH_MAY,
MONTH_JUN,
MONTH_JUL,
MONTH_AUG,
MONTH_SEP,
MONTH_OCT,
MONTH_NOV,
MONTH_DEC,
MONTH_COUNT = MONTH_DEC
};
struct SiiRtcInfo
{
u8 year;
u8 month;
u8 day;
u8 dayOfWeek;
u8 hour;
u8 minute;
u8 second;
u8 status;
u8 alarmHour;
u8 alarmMinute;
};
void SiiRtcUnprotect(void);
void SiiRtcProtect(void);
u8 SiiRtcProbe(void);
bool8 SiiRtcReset(void);
bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetDateTime(struct SiiRtcInfo *rtc);
bool8 SiiRtcGetTime(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetTime(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetAlarm(struct SiiRtcInfo *rtc);
#endif // GUARD_RTC_H