Advertisement
grady404

Network System Clock Abuse (NSCA) Explanation

Jul 3rd, 2020
3,421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. In Super Mario Odyssey, there are these seeds that you can plant in pots to obtain Power Moons. Normally, each seed takes about 21 minutes to grow. Speedrunners don't have time to wait for that, though, so we use a trick called DSTA (which stands for Daylight Savings Time Abuse) to make them grow almost immediately. You may have heard of this trick, but if not, here's a brief explanation.
  2.  
  3. The seeds use the Nintendo Switch's system clock to determine how much time has elapsed since they were planted. The system clock has built-in functionality for Daylight Savings Time, which makes the clock automatically go forward or backward by an hour at the proper times. If the clock goes forward after a seed is planted, the game will think that an hour has elapsed and make the seed grow immediately! Before each run, speedrunners will set the system clock to seven minutes before DST occurs, knowing that they will plant a seed in the Sand Kingdom a bit over six minutes into the run. This makes it so that DST strikes right after the seed is planted to make it grow into a moon.
  4.  
  5. The caveat to this trick is that it can only be used once per run. If the clock could be advanced twice without opening the Switch's system settings (and thus slowing the run down), another seed could be harvested in the Metro Kingdom later in the run to save even more time. As it turns out, there is a way to make the clock fast-forward a second time, using a trick I call Network System Clock Abuse, or NSCA. It probably won't ever be used in actual runs, since it involves factory resetting the console before each attempt, but it at least saves time on a theoretical level.
  6.  
  7. As explained by @SciresM on Twitter, the Nintendo Switch actually 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 set the LSC to whatever they like in the system settings. The LSC is also what Super Mario Odyssey uses to determine the time. When speedrunners set up DSTA, they are changing the value of the LSC.
  8.  
  9. 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.
  10.  
  11. 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 value they want.
  12.  
  13. If the user can set the NSC to any desired value, they can set it to some time in the past, then connect the console to the Internet mid-run to calibrate the NSC and make it 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 slowing down the run 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, although it is a bit more complicated than it sounds. Essentially, DSTA can be used to grow the first seed and NSCA to grow the second, if the user sets the system clock to a time that is both in the past and roughly seven minutes before DST occurs, as discussed earlier.
  14.  
  15. The complicated part of this is that 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, you'll actually need to temporarily block the server that the Switch communicates with to calibrate the NSC in your router's settings. The hostname of the server is aauth-lp1.ndas.srv.nintendo.net, and I used this guide to block it (which should be applicable to any router): https://mashtips.com/block-websites-google-wifi/
  16.  
  17. Now that this server is blocked, an Internet connection can be established without calibrating the NSC. This means that after the Internet connection is set up, the user can still edit the value of the NSC. The next step is to set the Switch into Airplane Mode, then remove the block from the router settings so that the NSC can be calibrated by disabling Airplane Mode later.
  18.  
  19. Now all the player needs to do is set the system clock to seven minutes before DST, then re-enable "Synchronize Clock via Internet" so that Super Mario Odyssey uses the value of the NSC for seed growth. In the Sand Kingdom, DST will trigger, causing the first seed to grow. Later in the run, after planting a seed in the Metro Kingdom, the player can open the quick menu and disable Airplane Mode, which will calibrate the NSC and cause the second seed to grow.
  20.  
  21. If you're actually curious about the Metro Kingdom seed route, you can see it here: https://www.youtube.com/watch?v=kkqo_tBIEI8&t=25m34s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement