Difference between revisions of "Anti Time-Travel"

From 3dbrew
Jump to navigation Jump to search
(Clock software stack documentation)
 
(format of offset)
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
The hardware RTC can count between (at least) 2001-1-1 and 2050-12-31.
 
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 the console saves to NAND (''where?'') the time and date difference between the programmed time and the hardware one.
+
When the time is normally set, the console saves to the [[Config Savegame]] the number of seconds of 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 [[NAND Redirection|multiboot scenarios]] often results in incorrect values in other OS instances.
 
:This also explains the apparently random setting of the date after removing the battery, and why adjusting the clock in [[NAND Redirection|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. [[3DS Development Unit Software|CONFIG]] can directly adjust the ahrdware clock, thus avoiding associated problems.
+
Most likely, software disturbed by clock adjustments saves the raw RTC value and, on load, checks whether it has advanced. [[3DS Development Unit Software|CONFIG]] can directly adjust the hardware clock, thus avoiding associated problems.

Latest revision as of 11:48, 23 July 2016

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 console saves to the Config Savegame the number of seconds of 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.