Network System Clock Abuse: Difference between revisions

From SMO.wiki
No edit summary
m Categories
 
(24 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Network System Clock Abuse''', often abbreviated as '''NSCA''' and sometimes referred to as '''Double DSTA''', is a trick that allows the clock fast-forwarding effect achieved by [[Daylight Savings Time Abuse]] to be used a second time (and in some cases, a third) throughout a speedrun without opening the Switch's home menu. The trick involves connecting the console to the Internet mid-run, which causes the Switch to realize its clock is behind and fast-forward it accordingly.
'''Network System Clock Abuse''', often abbreviated as '''NSCA''', is a trick that allows the clock fast-forwarding effect achieved by [[Daylight Savings Time Abuse]] to be used a second time (and in some cases, a third) throughout a speedrun without opening the Switch's home menu. In [[Any%]], this can be used to grow a seed quickly in the [[Metro Kingdom]] even after using Daylight Savings Time Abuse to grow one in the [[Sand Kingdom]] earlier in the run, saving about four seconds over the usual route.<ref name="grady-tweet">https://twitter.com/grady964/status/1279144130052976640</ref>


== Explanation ==
This trick is also sometimes referred to as '''Double DSTA''', though this is a misnomer since Daylight Savings Time is only exploited for one of the two clock advances.
The Nintendo Switch keeps track of two separate system clocks. The one that the user directly interacts with is called the Local System Clock, or LSC. The user can edit the LSC directly in the system settings, and the LSC is also what Super Mario Odyssey uses to determine the time. When speedrunners set up [[Daylight Savings Time Abuse]], they are changing the value of the LSC.


However, the Switch also maintains a second system clock called the Network System Clock, or NSC. This clock serves to keep track of what the system essentially believes to be the actual real-world time, and it cannot normally be edited by the user. Upon connecting to the Internet, the Switch communicates with one of Nintendo's servers, which calibrates the Switch's NSC by sending it the current time. In the Switch's settings, there is an option called "Synchronize Clock via Internet" that will match the value of the LSC to that of the NSC, so that the LSC reflects the time in the real world. An Internet connection is not actually required to use this setting, since the NSC will keep ticking in the background even if Internet is disabled.
The trick involves connecting the console to the Internet mid-run, which causes the Switch to realize its clock is behind and fast-forward it accordingly. This can be used to fast-forward the clock twice by using Daylight Savings Time Abuse for the first advancement, and connecting to the Internet to use Network System Clock Abuse for the second advancement. Theoretically, it is possible to advance the clock a third time if the speedrun is done on the actual Daylight Savings Time day, by allowing DST to advance the clock a third time after it is synchronized to the real-world time. This is sometimes known as '''Triple DSTA''', but this is again a misnomer since only two of the clock advances utilize Daylight Savings Time.


However, if the Switch has never actually been connected to the Internet before (this can be accomplished by factory resetting the console), the system simply matches the NSC to the LSC as a fail-safe. This means that if the console has never been connected to Internet, the user can set the NSC to any desired value.
==Explanation==
The Nintendo Switch keeps track of two separate system clocks.<ref>https://twitter.com/SciresM/status/1231373584112635905</ref> The one that the user directly interacts with is called the '''Local System Clock''', or '''LSC'''. The user can edit the LSC directly in the system settings, and the LSC is also what Super Mario Odyssey uses to determine the time. When speedrunners set up [[Daylight Savings Time Abuse]], they are changing the value of the LSC.


This allows the user to set the NSC to some time in the past, then connect the console to the Internet mid-run to calibrate the NSC and cause it to catch up to the real-world time (which can be used to grow a seed). The console can be connected to the Internet mid-run without losing time by holding the home button to open the Switch's quick menu and disabling Airplane Mode; the game will keep running in the background while this menu is open. This is the idea behind NSCA.
However, the Switch also maintains a second system clock called the '''Network System Clock''', or '''NSC'''. This clock serves to keep track of what the system essentially believes to be the actual real-world time, and it cannot normally be edited by the user. Upon connecting to the Internet, the Switch communicates with one of Nintendo's servers, which calibrates the Switch's NSC by sending it the current time via the [[wikipedia:Network_Time_Protocol|Network Time Protocol]]. In the Switch's settings, there is an option called "Synchronize Clock via Internet" that will match the value of the LSC to that of the NSC, so that the LSC reflects the time in the real world. An Internet connection is not actually required to use this setting, since the NSC will keep ticking in the background even if Internet is disabled.


However, in order to connect the Switch to the Internet simply by disabling Airplane Mode, an Internet connection must have been established earlier. Normally, establishing an Internet connection would calibrate the NSC, which would defeat the purpose of NSCA since it requires the clock to be calibrated for the first time in the middle of the speedrun. To prevent the NSC from being calibrated when first setting up the Internet connection, one must temporarily block the server that the Switch communicates with to calibrate the NSC in their router's settings. This block must then be reversed later after enabling Airplane Mode, so that disabling Airplane Mode during the speedrun calibrates the NSC.
Network System Clock Abuse relies on having the NSC set to sometime in the past rather than the actual present time as it normally would be, while having Internet disabled, and then reconnecting the Switch to the Internet mid-run to recalibrate the NSC and cause it to catch up to the present time to achieve the seed growth. The console can be reconnected to the Internet mid-run without losing time by holding the home button to open the Switch's quick menu and disabling Airplane Mode; the game will keep running in the background while this menu is open.


== Execution==
== Methods ==
The trick can be performed in a speedrun using the following steps:
There are two primary ways to have the NSC set to a time in the past, which are covered in detail below.


*Factory reset the console. This is done to allow the NSC to match the value of the LSC set by the user.
=== Initialization method ===
*Block the hostname aauth-lp1.ndas.srv.nintendo.net in your router's settings. This can be accomplished by following this [https://mashtips.com/block-websites-google-wifi/ guide] (which should be adaptable to any router, not just Google Wifi).
If the Switch has been [https://en-americas-support.nintendo.com/app/answers/detail/a_id/22347/~/how-to-initialize-nintendo-switch-without-deleting-save-data initialized] and has not been connected to the Internet yet, the system simply matches the NSC to the LSC as a fail-safe. This means that if the console has never been connected to the Internet, the user can set the NSC to any desired value (in this case sometime in the past). The goal of this method is to calibrate the NSC for the first time in the middle of the speedrun.
*Set up an Internet connection on the Switch by connecting it to that router, then enable Airplane Mode.
*Unblock the hostname in the router's settings by following the same steps used to block it.
*Set up [[Daylight Savings Time Abuse]] by setting the system clock to just before Daylight Savings Time strikes.
*Start the speedrun and play it as normal, using DSTA to grow the first seed.
*After planting a second seed later in the run, open the Switch's quick menu and disable Airplane Mode. This should cause the Switch to reconnect to the Internet, realize the NSC is behind, and fast-forward it accordingly.  


[[Category:Tricks]]
However, in order to connect the Switch to the Internet simply by disabling Airplane Mode, an Internet connection must have been established earlier, which would normally calibrate the NSC. To prevent it from being calibrated when setting up the Internet connection, one must temporarily block the Switch from communicating with Nintendo's [[wikipedia:Network_Time_Protocol|Network Time Protocol]] server. There are two ways to achieve this.
 
==== 90DNS ====
The easiest way to block Nintendo's NTP server is using [https://nh-server.github.io/switch-guide/extras/blocking_nintendo/ 90DNS], a DNS server that is configured to block communication to all of Nintendo's servers, originally for the purpose of [[wikipedia:Homebrew_(video_games)|homebrew]]. After establishing the connection with 90DNS, the DNS settings can be reverted to normal, and the Switch will not attempt to calibrate the NSC until the Switch is put to sleep and reawakened (at which point it can be put into Airplane Mode).
 
* Initialize the console.
* Follow the instructions on [https://nh-server.github.io/switch-guide/extras/blocking_nintendo/ this page] to set up 90DNS and connect to the Internet.
* Change the DNS settings back to Automatic.
* If a digital copy of Super Mario Odyssey is desired (necessary for an optimal speedrun due to shorter load times), download it from the eShop.*
* Enable Airplane Mode, then sleep and reawaken the Switch.
* Set up [[Daylight Savings Time Abuse]] by setting the LSC to the desired value, then enable "Synchronize Clock via Internet".
* Start the speedrun. Use DSTA to grow the first seed, then disable Airplane Mode from the quick menu to perform NSCA later in the run.
 
''*Note that it is untested whether this will cause the NSC to synchronize with the server. If it does, then the method below must be used for an optimal run instead.''
 
==== Router settings ====
Another way to prevent the NSC from being calibrated when first setting up the Internet connection is to temporarily block Nintendo's NTP server in the router's settings. This block must then be reversed later after enabling Airplane Mode, so that disabling Airplane Mode during the speedrun calibrates the NSC.
 
*Initialize the console.
*Block the hostname ''aauth-lp1.ndas.srv.nintendo.net'' in your router's settings.<ref>https://pastebin.com/bZ5MqEy3</ref> This can be accomplished by following [https://mashtips.com/block-websites-google-wifi/ this guide] (which should be adaptable to any router, not just Google Wifi).
*Set up an Internet connection on the Switch by connecting it to that router.
*If a digital copy of Super Mario Odyssey is desired (necessary for an optimal speedrun due to shorter load times), download it from the eShop.
*Enable Airplane Mode on the Switch, then unblock the hostname in the router's settings by following the same steps used to block it.
*Set up [[Daylight Savings Time Abuse]] by setting the LSC to the desired value, then enable "Synchronize Clock via Internet".
*Start the speedrun. Use DSTA to grow the first seed, then disable Airplane Mode from the quick menu to perform NSCA later in the run.<ref name="grady-tweet"></ref>
 
=== Clock lag method ===
The other way to have the NSC set to a time in the past is to desynchronize it from the real-world time.
 
* The only practical way to desynchronize the NSC is for the Switch's internal clock to lose power. This involves draining the Switch's battery and leaving it drained long enough for the [[wikipedia:Backup_battery#Computers|backup battery]] to be exhausted as well.
* Although extremely impractical, it is useful as a thought experiment to consider that the NSC could theoretically be desynchronized using the effects of relativistic [[wikipedia:Time_dilation|time dilation]], such as by taking the Switch on board a spacecraft traveling at nearly the speed of light.
 
==Speedrun usage ==
 
===Any% ===
In the [[Any%]] run, NSCA can be used to harvest a seed in the [[Metro Kingdom]], after using [[Daylight Savings Time Abuse]] to harvest one in the [[Sand Kingdom]] earlier. The current route to do so involves planting a seed in the pot behind the guitarist in the plaza, then utilizing a [[roll cancel clip]] through a building to quickly enter the [[Bullet Billding]] room. After collecting both moons in the room, the room is exited to return to the plaza and collect the moon from the pot. Airplane Mode must be disabled at some point between planting the seed and exiting Bullet Billding.
 
[https://www.youtube.com/watch?v=kkqo_tBIEI8&t=25m47s Plaza Planter Route Video]
 
There is another theorized route that could potentially save up to another 1.5 seconds over the original NSCA route, although it is not yet known exactly how much time it saves, or if it even saves any time at all. The route variation involves planting a seed in the pot on the building near the shop, then mounting the scooter below to perform [[Scooter Clip]], climbing back up to collect the seed moon, and finally continuing on to collect the ''Who Piled Garbage on This?'' moon. The reason it is unknown how much time this route saves is because the camera must be pointed at the seed for it to grow, and there is only barely enough time for the seed to be on screen enough to grow fully in the time it takes to perform the Scooter Clip movement optimally. It is not known exactly how long the camera can be pointed at the pot.
 
[https://twitter.com/grady964/status/1287214542548656128 Building Planter Route Video]
 
==References==
<references />
 
[[Category:Speedrun tricks]]

Latest revision as of 04:37, 14 February 2023

Network System Clock Abuse, often abbreviated as NSCA, is a trick that allows the clock fast-forwarding effect achieved by Daylight Savings Time Abuse to be used a second time (and in some cases, a third) throughout a speedrun without opening the Switch's home menu. In Any%, this can be used to grow a seed quickly in the Metro Kingdom even after using Daylight Savings Time Abuse to grow one in the Sand Kingdom earlier in the run, saving about four seconds over the usual route.[1]

This trick is also sometimes referred to as Double DSTA, though this is a misnomer since Daylight Savings Time is only exploited for one of the two clock advances.

The trick involves connecting the console to the Internet mid-run, which causes the Switch to realize its clock is behind and fast-forward it accordingly. This can be used to fast-forward the clock twice by using Daylight Savings Time Abuse for the first advancement, and connecting to the Internet to use Network System Clock Abuse for the second advancement. Theoretically, it is possible to advance the clock a third time if the speedrun is done on the actual Daylight Savings Time day, by allowing DST to advance the clock a third time after it is synchronized to the real-world time. This is sometimes known as Triple DSTA, but this is again a misnomer since only two of the clock advances utilize Daylight Savings Time.

Explanation

The Nintendo Switch keeps track of two separate system clocks.[2] The one that the user directly interacts with is called the Local System Clock, or LSC. The user can edit the LSC directly in the system settings, and the LSC is also what Super Mario Odyssey uses to determine the time. When speedrunners set up Daylight Savings Time Abuse, they are changing the value of the LSC.

However, the Switch also maintains a second system clock called the Network System Clock, or NSC. This clock serves to keep track of what the system essentially believes to be the actual real-world time, and it cannot normally be edited by the user. Upon connecting to the Internet, the Switch communicates with one of Nintendo's servers, which calibrates the Switch's NSC by sending it the current time via the Network Time Protocol. In the Switch's settings, there is an option called "Synchronize Clock via Internet" that will match the value of the LSC to that of the NSC, so that the LSC reflects the time in the real world. An Internet connection is not actually required to use this setting, since the NSC will keep ticking in the background even if Internet is disabled.

Network System Clock Abuse relies on having the NSC set to sometime in the past rather than the actual present time as it normally would be, while having Internet disabled, and then reconnecting the Switch to the Internet mid-run to recalibrate the NSC and cause it to catch up to the present time to achieve the seed growth. The console can be reconnected to the Internet mid-run without losing time by holding the home button to open the Switch's quick menu and disabling Airplane Mode; the game will keep running in the background while this menu is open.

Methods

There are two primary ways to have the NSC set to a time in the past, which are covered in detail below.

Initialization method

If the Switch has been initialized and has not been connected to the Internet yet, the system simply matches the NSC to the LSC as a fail-safe. This means that if the console has never been connected to the Internet, the user can set the NSC to any desired value (in this case sometime in the past). The goal of this method is to calibrate the NSC for the first time in the middle of the speedrun.

However, in order to connect the Switch to the Internet simply by disabling Airplane Mode, an Internet connection must have been established earlier, which would normally calibrate the NSC. To prevent it from being calibrated when setting up the Internet connection, one must temporarily block the Switch from communicating with Nintendo's Network Time Protocol server. There are two ways to achieve this.

90DNS

The easiest way to block Nintendo's NTP server is using 90DNS, a DNS server that is configured to block communication to all of Nintendo's servers, originally for the purpose of homebrew. After establishing the connection with 90DNS, the DNS settings can be reverted to normal, and the Switch will not attempt to calibrate the NSC until the Switch is put to sleep and reawakened (at which point it can be put into Airplane Mode).

  • Initialize the console.
  • Follow the instructions on this page to set up 90DNS and connect to the Internet.
  • Change the DNS settings back to Automatic.
  • If a digital copy of Super Mario Odyssey is desired (necessary for an optimal speedrun due to shorter load times), download it from the eShop.*
  • Enable Airplane Mode, then sleep and reawaken the Switch.
  • Set up Daylight Savings Time Abuse by setting the LSC to the desired value, then enable "Synchronize Clock via Internet".
  • Start the speedrun. Use DSTA to grow the first seed, then disable Airplane Mode from the quick menu to perform NSCA later in the run.

*Note that it is untested whether this will cause the NSC to synchronize with the server. If it does, then the method below must be used for an optimal run instead.

Router settings

Another way to prevent the NSC from being calibrated when first setting up the Internet connection is to temporarily block Nintendo's NTP server in the router's settings. This block must then be reversed later after enabling Airplane Mode, so that disabling Airplane Mode during the speedrun calibrates the NSC.

  • Initialize the console.
  • Block the hostname aauth-lp1.ndas.srv.nintendo.net in your router's settings.[3] This can be accomplished by following this guide (which should be adaptable to any router, not just Google Wifi).
  • Set up an Internet connection on the Switch by connecting it to that router.
  • If a digital copy of Super Mario Odyssey is desired (necessary for an optimal speedrun due to shorter load times), download it from the eShop.
  • Enable Airplane Mode on the Switch, then unblock the hostname in the router's settings by following the same steps used to block it.
  • Set up Daylight Savings Time Abuse by setting the LSC to the desired value, then enable "Synchronize Clock via Internet".
  • Start the speedrun. Use DSTA to grow the first seed, then disable Airplane Mode from the quick menu to perform NSCA later in the run.[1]

Clock lag method

The other way to have the NSC set to a time in the past is to desynchronize it from the real-world time.

  • The only practical way to desynchronize the NSC is for the Switch's internal clock to lose power. This involves draining the Switch's battery and leaving it drained long enough for the backup battery to be exhausted as well.
  • Although extremely impractical, it is useful as a thought experiment to consider that the NSC could theoretically be desynchronized using the effects of relativistic time dilation, such as by taking the Switch on board a spacecraft traveling at nearly the speed of light.

Speedrun usage

Any%

In the Any% run, NSCA can be used to harvest a seed in the Metro Kingdom, after using Daylight Savings Time Abuse to harvest one in the Sand Kingdom earlier. The current route to do so involves planting a seed in the pot behind the guitarist in the plaza, then utilizing a roll cancel clip through a building to quickly enter the Bullet Billding room. After collecting both moons in the room, the room is exited to return to the plaza and collect the moon from the pot. Airplane Mode must be disabled at some point between planting the seed and exiting Bullet Billding.

Plaza Planter Route Video

There is another theorized route that could potentially save up to another 1.5 seconds over the original NSCA route, although it is not yet known exactly how much time it saves, or if it even saves any time at all. The route variation involves planting a seed in the pot on the building near the shop, then mounting the scooter below to perform Scooter Clip, climbing back up to collect the seed moon, and finally continuing on to collect the Who Piled Garbage on This? moon. The reason it is unknown how much time this route saves is because the camera must be pointed at the seed for it to grow, and there is only barely enough time for the seed to be on screen enough to grow fully in the time it takes to perform the Scooter Clip movement optimally. It is not known exactly how long the camera can be pointed at the pot.

Building Planter Route Video

References