44static void __t10KConfigInitialize(
void)
46 g_t10KConfig.timezoneOffset = 540;
47 g_t10KConfig.screenType = TV_SCREEN_43;
48 g_t10KConfig.dateFormat = DATE_YYYYMMDD;
49 g_t10KConfig.language = LANGUAGE_JAPANESE;
52static inline unsigned char tobcd(
unsigned char dec)
54 return dec + (dec / 10) * 6;
59 time->second = tobcd(time->second);
60 time->minute = tobcd(time->minute);
61 time->hour = tobcd(time->hour);
62 time->day = tobcd(time->day);
63 time->month = tobcd(time->month);
64 time->year = tobcd(time->year);
67static inline unsigned char frombcd(
unsigned char bcd)
69 return bcd - (bcd >> 4) * 6;
75 time->second = frombcd(time->second);
76 time->minute = frombcd(time->minute);
77 time->hour = frombcd(time->hour);
78 time->day = frombcd(time->day);
79 time->month = frombcd(time->month);
80 time->year = frombcd(time->year);
83static const unsigned char gDaysInMonths[12] = {
84 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
89 unsigned char days_in_months[12];
90 memcpy(days_in_months, gDaysInMonths, 12);
91 if ((time->year & 3) == 0)
92 days_in_months[1] = 29;
96 if (time->day > days_in_months[time->month - 1]) {
101 if (time->month == 13) {
106 if (time->year == 100) {
116 unsigned char days_in_months[12];
117 memcpy(days_in_months, gDaysInMonths, 12);
118 if ((time->year & 3) == 0)
119 days_in_months[1] = 29;
123 if (time->day == 0) {
126 if (time->month == 0) {
136 time->day = days_in_months[time->month - 1];
143 if (time->hour == 24) {
151 if (time->hour == 0) {
158void __adjustTime(
sceCdCLOCK *time,
int offset)
160 convertfrombcd(time);
161 offset += time->minute;
164 while (offset >= 60) {
168 time->minute = offset;
174 time->minute = offset;
192 GetOsdConfigParam(&config);
203 if (language < LANGUAGE_JAPANESE || language > LANGUAGE_PORTUGUESE)
209 GetOsdConfigParam(&config);
214 SetOsdConfigParam(&config);
224 GetOsdConfigParam(&config);
233 if (screenType < TV_SCREEN_43 || screenType > TV_SCREEN_169)
239 GetOsdConfigParam(&config);
241 SetOsdConfigParam(&config);
252 GetOsdConfigParam(&config);
255 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
265 if (dateFormat < DATE_YYYYMMDD || dateFormat > DATE_DDMMYYYY)
271 GetOsdConfigParam(&config);
274 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
276 SetOsdConfigParam2(&config2,
sizeof(config2), 0);
287 GetOsdConfigParam(&config);
290 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
300 if (timeFormat < TIME_24H || timeFormat > TIME_12H)
306 GetOsdConfigParam(&config);
309 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
311 SetOsdConfigParam2(&config2,
sizeof(config2), 0);
321 timezoneOffset = g_t10KConfig.timezoneOffset;
325 GetOsdConfigParam(&config);
328 timezoneOffset = 540;
334 if ((timezoneOffset & 0x400) != 0)
337 timezoneOffset ^= 0x7ff;
341 timezoneOffset *= -1;
345 return timezoneOffset;
356 GetOsdConfigParam(&config);
361 u32 wantedTimezoneOffset;
364 if (timezoneOffset < 0)
367 wantedTimezoneOffset = -timezoneOffset;
369 wantedTimezoneOffset -= 1;
371 wantedTimezoneOffset ^= 0x7ff;
375 wantedTimezoneOffset = timezoneOffset;
381 SetOsdConfigParam(&config);
391 GetOsdConfigParam(&config);
402 GetOsdConfigParam(&config);
404 SetOsdConfigParam(&config);
415 GetOsdConfigParam(&config);
418 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
431 GetOsdConfigParam(&config);
434 GetOsdConfigParam2(&config2,
sizeof(config2), 0);
436 SetOsdConfigParam2(&config2,
sizeof(config2), 0);
441 __adjustTime(time, -540);
448 __adjustTime(time, timezone_offset - 540 + (daylight_saving * 60));
int IsEarlyJap(ConfigParam config)
void configSetSpdifEnabled(int enabled)
int configGetTvScreenType(void)
void configSetTimeFormat(int timeFormat)
void configSetTimezone(int offset)
int configGetTimezone(void)
int configGetLanguage(void)
void configSetDateFormat(int dateFormat)
void configSetLanguage(int language)
int configGetDateFormat(void)
void configConvertToGmtTime(sceCdCLOCK *time)
int configIsSpdifEnabled(void)
void configSetDaylightSavingEnabled(int enabled)
int configGetTimeFormat(void)
void configSetTvScreenType(int screenType)
int configIsDaylightSavingEnabled(void)
void configConvertToLocalTime(sceCdCLOCK *time)