Anti Time-Travel

From 3dbrew
Revision as of 15:45, 15 June 2016 by Ryccardo (talk | contribs) (new information)
Jump to navigation Jump to search

Many commercial games, such as Tomodachi Life, all Pokèmon games, etc are capable of telling whether the clock was adjusted while they weren't running, even for realistic progress of time (new setting in the future from last save).

This is achieved through a peculiarity in the implementation of the real time clock.

The hardware RTC can count between (at least) 2001-1-1 and 2050-12-31.

When the time is normally set, the date in the RTC is set to the start of 2001 (and so is the time?), and (not always correct) the console saves to the Config Savegame the time and date difference between the actual time and the RTC value.

This also explains the apparently random setting of the date after removing the battery, and why adjusting the clock in multiboot scenarios often results in incorrect values in other OS instances.

Most likely, software disturbed by clock adjustments saves the raw RTC value and, on load, checks whether it has advanced. CONFIG can directly adjust the hardware clock, thus avoiding associated problems.