Please consider supporting us onPatreon.
Nintendo Switch
Nintendo Switch |
---|
Developer:Nintendo
![]() ![]() |
This page is rather stubbly and could use some expansion. Are you a bad enough dude torescue this article? |
This game is still under active development. Be aware that any unused content you find may become used or removed in the future. Please only add things to the article that are unlikely to ever be used, or went unused for some time. If they do get used, please remove them from the page and specify in the edit summary! |
To do: Information copied from a reddit post, redocument this better. |
TheNintendo Switch is Nintendo's eighth major home video game console. Known in development by its codename "NX" and based on the NVIDIA Tegra SoC, it was unveiled in October 2016 and released worldwide five months later. It's especially notable for being the true console/handheld hybrid theWii U advertised itself as, featuring the ability to switch (hence the name) between console and handheld play styles, and has even received a healthy dose of Wii U ports.
Contents
Sub-Pages
Prototype Info |
Prerelease Info |
Golf
Hidden inside all systems is theflog (get it... Golf... floG) binary, which is an NES emulator stub withGolf present and fully playable as an Easter egg. While this is in all systems, update v4.0.0 replaced the data and removed any way to access it. The Easter egg appears to have been a tribute to Nintendo president Satoru Iwata, who died during the Switch's development; he was the sole programmer ofGolf, one of his first projects for Nintendo.
In all versions prior to v4.0.0, the following checks had to be in place at the Home Menu (Japanese, US, and European systems only):
- The Joy-Cons detached from the console.
- The motion from the Joy-Cons is tracked. Hold the Joy-Cons pointing forwards/downwards, then move them to a vertical position and hold it there for a bit. This mimics Iwata's "direct" gesture in the Nintendo Direct presentations.
- The internal system date must be July 11th, the date of Iwata's death. If the date is changed in System Settings but the console is connected to the internet and can see the actual date, this method will not work.
- Once the above are done, the console checks ifflog is installed.
If all of these checks are met,flog begins to playGolf.
HTML Comments
In the "LobbyApplet" (that is just a web browser) is a commented-out credit.
<!-- ©Nintendo -->
Unused Sounds
Both of these are present in the "starter" applet in rom:/sound/starter.bfsar.
PRODINFOF Manufacturing Logs
To do: Is this log perhaps related to the menu as seenhere? |
The PRODINFOF Partition contains some logs that are written during manufacturing under/ptd/log/.
The layout and contents of these logs have changed over time in newer systems, and the contents will also vary slightly from system to system. The below layouts and contents come from a console that shipped with firmware v1.0.0.
/ptd/log/ layout:
log│ TestFlagLine.log│ TestFlagQc.log│ Process_asm1.log│ Process_board1.log│├───BOARD_TEST│ Sequence.log│├───BOARD_WIRELESS│ Sequence.log│├───USB_AND_HP│ Sequence.log│├───LCD_AND_KEY│ Sequence.log│├───AGING│ Sequence.log│└───FINAL_CHECK Sequence.log
AGING/Sequence.log:
0,00:01:01,30:001,00:01:01,TestMode(SABP) No Issue[1024MB]2,00:01:01,34[C]/34[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]3,00:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]4,00:01:06,FAN[02735rpm]5,00:01:07,Battery[ 53%]6,01:01:01,TestMode(SABP) No Issue[1024MB]7,01:01:01,44[C]/44[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]8,01:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]9,01:01:01,FAN[10527rpm]10,01:01:02,Battery[ 53%]11,02:01:01,TestMode(RABP) No Issue[1024MB]12,02:01:01,47[C]/47[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]13,02:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]14,02:01:01,FAN[10654rpm]15,02:01:02,Battery[ 53%]16,03:01:01,TestMode(RABP) No Issue[1024MB]17,03:01:01,46[C]/47[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]18,03:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]19,03:01:01,FAN[10679rpm]20,03:01:02,Battery[ 53%]21,04:01:01,TestMode(SARV) No Issue[1024MB]22,04:01:01,47[C]/47[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]23,04:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]24,04:01:01,FAN[10695rpm]25,04:01:02,Battery[ 53%]26,05:01:01,TestMode(SARV) No Issue[1024MB]27,05:01:01,47[C]/48[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]28,05:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]29,05:01:01,FAN[10709rpm]30,05:01:02,Battery[ 53%]31,06:01:01,TestMode(RARV) No Issue[1024MB]32,06:01:01,48[C]/48[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]33,06:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]34,06:01:01,FAN[10718rpm]35,06:01:02,Battery[ 53%]36,07:01:01,TestMode(SABP) No Issue[1024MB]37,07:01:01,48[C]/48[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]38,07:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]39,07:01:01,FAN[10725rpm]40,07:01:02,Battery[ 53%]41,08:01:01,TestMode(SABP) No Issue[1024MB]42,08:01:01,48[C]/48[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]43,08:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]44,08:01:01,FAN[10726rpm]45,08:01:02,Battery[ 53%]46,09:01:01,TestMode(RABP) No Issue[1024MB]47,09:01:01,49[C]/49[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]48,09:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]49,09:01:01,FAN[10738rpm]50,09:01:02,Battery[ 53%]51,10:01:01,TestMode(RABP) No Issue[1024MB]52,10:01:01,49[C]/49[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]53,10:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]54,10:01:01,FAN[10741rpm]55,10:01:02,Battery[ 53%]56,11:01:01,TestMode(SARV) No Issue[1024MB]57,11:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]58,11:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]59,11:01:01,FAN[10741rpm]60,11:01:02,Battery[ 53%]61,12:01:01,TestMode(SARV) No Issue[1024MB]62,12:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]63,12:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]64,12:01:01,FAN[10748rpm]65,12:01:02,Battery[ 53%]66,13:01:01,TestMode(RARV) No Issue[1024MB]67,13:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]68,13:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]69,13:01:01,FAN[10739rpm]70,13:01:02,Battery[ 53%]71,14:01:01,TestMode(SABP) No Issue[1024MB]72,14:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]73,14:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]74,14:01:01,FAN[10749rpm]75,14:01:02,Battery[ 53%]76,15:01:01,TestMode(SABP) No Issue[1024MB]77,15:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]78,15:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]79,15:01:01,FAN[10749rpm]80,15:01:02,Battery[ 53%]81,16:01:01,TestMode(RABP) No Issue[1024MB]82,16:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]83,16:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]84,16:01:01,FAN[10751rpm]85,16:01:02,Battery[ 53%]86,17:01:01,TestMode(RABP) No Issue[1024MB]87,17:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]88,17:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]89,17:01:01,FAN[10750rpm]90,17:01:02,Battery[ 53%]91,18:01:01,TestMode(SARV) No Issue[1024MB]92,18:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]93,18:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]94,18:01:01,FAN[10761rpm]95,18:01:02,Battery[ 53%]96,19:01:01,TestMode(RARV) No Issue[1024MB]97,19:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]98,19:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]99,19:01:01,FAN[10751rpm]100,19:01:02,Battery[ 53%]101,20:01:01,TestMode(RARV) No Issue[1024MB]102,20:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]103,20:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]104,20:01:01,FAN[10762rpm]105,20:01:02,Battery[ 53%]106,21:01:01,TestMode(SABP) No Issue[1024MB]107,21:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]108,21:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]109,21:01:01,FAN[10758rpm]110,21:01:02,Battery[ 53%]111,22:01:01,TestMode(SABP) No Issue[1024MB]112,22:01:01,49[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]113,22:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]114,22:01:01,FAN[10766rpm]115,22:01:02,Battery[ 53%]116,23:01:01,TestMode(RABP) No Issue[1024MB]117,23:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]118,23:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]119,23:01:01,FAN[10804rpm]120,23:01:02,Battery[ 53%]121,24:01:01,TestMode(RABP) No Issue[1024MB]122,24:01:01,50[C]/50[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]123,24:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]124,24:01:01,FAN[10757rpm]125,24:01:02,Battery[ 53%]126,25:01:01,TestMode(SARV) No Issue[1024MB]127,25:01:01,51[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]128,25:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]129,25:01:01,FAN[10765rpm]130,25:01:02,Battery[ 53%]131,26:01:01,TestMode(RARV) No Issue[1024MB]132,26:01:01,50[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]133,26:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]134,26:01:01,FAN[10761rpm]135,26:01:02,Battery[ 53%]136,27:01:01,TestMode(RARV) No Issue[1024MB]137,27:01:01,49[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]138,27:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]139,27:01:01,FAN[10756rpm]140,27:01:02,Battery[ 53%]141,28:01:01,TestMode(SABP) No Issue[1024MB]142,28:01:01,48[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]143,28:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]144,28:01:01,FAN[10767rpm]145,28:01:02,Battery[ 53%]146,29:01:01,TestMode(SABP) No Issue[1024MB]147,29:01:01,49[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]148,29:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]149,29:01:01,FAN[10764rpm]150,29:01:02,Battery[ 53%]151,30:01:01,TestMode(RABP) No Issue[1024MB]152,30:01:01,49[C]/51[C] CPU[N/A] GPU[N/A] DDR[N/A] TOTAL[N/A]153,30:01:01,CPU[1785MHz] GPU[921MHz] EMC[1600MHz]154,30:01:01,FAN[10758rpm]155,30:01:02,Battery[ 53%]156,30:01:03,PASS : No Issue[1024 MB]157,30:01:03,PASS : 49[C]/51[C] between 20[C] and 70[C]158,30:01:03,PASS : CPU[1785MHz] GPU[921MHz] EMC[1600MHz]159,30:01:03,N/A : Power Measuring is not supported160,30:01:03,PASS : 11852rpm
BOARD_WIRELESS/Sequence.log:
0,00:00:00,Finished setting PinMux1,00:00:00,Finished checking WLAN setting2,00:00:00,Finished checking BT setting3,00:00:01,Finished Resetting BT4,00:03:05,Finished InitializeEtherInterface5,00:04:00,Finished InitializeWlan6,00:33:06,Finished RwlServer
LCD_AND_KEY/Sequence.log:
0,00:01:06,[Acc] 95, 71, 100 [Gyro] 5, 7, 41,00:01:08,2,00:01:08,3,00:01:08,4,00:01:08,5,00:01:09,6,00:02:03,7,00:02:04,8,00:02:04,9,00:02:08,10,00:04:09,11,00:05:00,12,00:07:04,13,00:08:03,14,00:08:03,15,00:09:01,16,00:21:05,17,00:22:09,18,00:24:01,19,00:26:02,20,00:28:05,21,00:30:08,
Process_asm1.log:
SYSTEM_INIT,LINE,00.43,OK,,2017/02/09,08:35,,,,"",USB_AND_HP,LINE,00.10,OK,,0000/00/00,00:00,,,,"",LCD_AND_KEY,LINE,01.07,OK,,0000/00/00,00:00,,FEDC,6543,"",AGING,LINE,01.02,OK,,0000/00/00,00:00,,,,"",WIRELESS,LINE,00.41,OK,,2017/02/10,15:15,,,,"",FINALIZE,LINE,00.43,OK,,2017/02/10,16:01,,,,"",FINAL_CHECK,LINE,00.07,OK,,0000/00/00,00:00,,FEDC,6543,"",
Process_board1.log:
BOARD_TEST,LINE,01.15,OK,,2016/07/20,18:49,0000000,E4B2,D30C,"",BOARD_WIRELESS,LINE,01.03,OK,,2017/02/09,08:50,,,,"OK!",
TestFlagLine.log:
SYSTEM_INIT=1BOARD_TEST=1BOARD_WIRELESS=1BATTERY_VENDOR=0LCD_AND_KEY=1USB_AND_HP=1AGING=1SIX_AXIS=0WIRELESS=1FINALIZE=1FINAL_CHECK=1HB_TB_INTEGRATION=0SDEV_RESERVE2=0
TestFlagQc.log:
SYSTEM_INIT=0BOARD_TEST=0BOARD_WIRELESS=0BATTERY_VENDOR=0LCD_AND_KEY=0USB_AND_HP=0AGING=0SIX_AXIS=0WIRELESS=0FINALIZE=0FINAL_CHECK=0HB_TB_INTEGRATION=0SDEV_RESERVE2=0
Revisional Differences
Nintendo eShop
Old | New |
---|---|
![]() | ![]() |
At some point in the second half of 2019 (December?), the eShop interface (which is hosted server-side) was changed to replace the "Add to Wish List" link with a heart icon with the same functionality.
News App
Old | New |
---|---|
![]() | ![]() |
Prior to system update 4.0, the featured news articles were bigger than the others. There were also no channel icons displayed.
Nintendo Switch Online
Originally it was possible to play online on paid games without an NSO membership until system update 6.0.0, after which all paid games (except in China due to its service using Google's servers, which are blocked in China) require said membership.
Lottie Icon
Old | New |
---|---|
![]() | ![]() |
One of the Switch's default user icons depictsAnimal Crossing character Lottie, specifically usingher artwork fromAnimal Crossing: amiibo Festival. Originally, a tiny part of her tail from the original artwork was visible in the bottom right; this ended up being edited out at some point, probably because it looked a bit odd.
Hidden Features
Send/Receive Save Data
To do: How its supposedly used by Nintendo's repair service:https://www.reddit.com/r/PokemonScarletViolet/comments/11g2pt3/save_files_being_lost/ |
As of version 9.0.0, pressing and holding the Left Thumbstick and the Plus button at the same time while highlighting "Quick Archive" under Data Management opens a menu named "Send/Receive Save Data", which will issue requests to Nintendo's repair service. Without specific authorization from the server, it is unable to be accessed. It is known as "Sending and Receiving Save Data" in other regions.
Switch Tracking
Each Switch console has a tracking feature enabled by default. It is only accessible to Nintendo Support employees and thus can't be disabled by the end user. It's typically used to find and identify lost/stolen consoles when connecting to the internet.
Application Authorization Overview
The console uses a very strong protection method named "Application Authorization", meant to check if any game was purchased legitimately, and flags the console to be banned if either check fails, making it impossible to play any pirated games online unless it has been purchased legitimately. It has 5 checks. Nintendo calls the method a technological protection measure.
Layer One - Internet Connection
The console connects to ctest.cdn.nintendo.net and checks for a special header, named "X-Organization: Nintendo". If it is, the console verifies it can connect to the internet.
Layer Two - Device Authorization
Nintendo has a special server for handing out device authorization tokens, named "dauth-lp1.ndas.srv.nintendo.net". These tokens don't blanket-authorize all system operations -- they are handed out to specific parts of the system, specified by a client ID in the token request.
- The console connects to the dauth "/challenge" endpoint, sending up a "key_generation" argument informing the server what master key revision the console is using.
- Dauth sends back as a json a random "challenge" string, and a constant "data" string.
- The console treats the "data" string, decoded as base-64, as a cryptographic key source, and uses the SPL services to transform it with TrustZone only keydata and load it into an AES keyslot.
- The console generates its authorization request data. this is done by formatting the string
challenge=%s&client_id=%016x&key_generation=%d&system_version=%s
with the challenge string, the client ID requesting a token, the master key version, and the current system version digest. - The console calculates an AES-128 CMAC using the trustzone-only key it derived over its authorization request, appends "&mac=%s" to the request data (formatting with the url-safe base 64 encoded CMAC), and fires the request off to the "/device_auth_token" endpoint.
- If all goes well, dauth returns a token for the console. (If the console is banned, It will instead receive an error message informing the player the console is not allowed to use online services).
Layer Three - Account Authorization
The console performs pretty bog-standard oauth authorization talking to "api.accounts.nintendo.com". This allows 'Nintendo' to block specific accounts, and because all requests require a client certificate, any blocked account can be immediately associated to a console.
Layer Four - Application Authorization
Nintendo has another special server, named "aauth-lp1.ndas.srv.nintendo.net". Going online in a game requires getting a token from the "/application_auth_token" endpoint.:
- The console gets a device authorization token from dauth for the aauth client ID.
- The console retrieves its certification to play the title it's trying to connect online with, and sends them to aauth.
- If all goes well, aauth returns an application authorization token.
Game Cartridges
- If playing on a game cartridge, The certification is the gamecard's unique certificate. This is signed by Nintendo usingRSA-2048-PCKS#1 at the time the gamecard is written, and contains encrypted information about the gamecard (this includes what game is on the gamecard, among other, unknown details).
- In the gamecard case, the data uploaded to aauth is
application_id=%016llx&application_version=%08x&device_auth_token=%.*s&media_type=GAMECARD&cert=%.*s
, formatted with the title ID for the game being played, the version of the game being played, the token retrieved from dauth, and the gamecard's certificate (retrieved from FS via theGetGameCardDeviceCertificate
command), formatted as url-safe base64. - This code lives at .text+0x7DE1C for 5.0.0 account.
Digital Games
- The certification for a digital title is the console's ticket. The important details are that tickets contain the Title ID of the game they certify, the Device ID of the console they authorize, the Nintendo Account ID used to purchase them, and are signed by Nintendo using RSA-2048 (cannot be forged).
- In this case, the console talks to the "es" service, and sends a command to retrieve an encrypted copy of the relevant ticket along with the encryption key. This encryption is AES-128 CBC, using a key randomly generated via cryptographically-secure random number generation. The key itself is encrypted usingRSA-OAEP 2048. To skip over some technical details, this is a one-way encryption which only Nintendo can reverse, so even if obtained the output of the es command the player would not be able to determine the encryption key being used (and thus couldn't decrypt the ticket).
- The data uploaded to aauth in this case is
application_id=%016llx&application_version=%08x&device_auth_token=%.*s&media_type=DIGITAL&cert=%.*s&cert_key=%.*s
, formatted with the title ID for the game being played, the version of the game being played, the token retrieved from dauth, the encrypted ticket encoded with url-safe base64, and the encrypted key encoded with url-safe base64. - This code lives at .text+0x7DE98 for 5.0.0 account.
Layer Five - Console Ban
If the console fails to find a certificate, a specialNO_CERT
request is sent, which will flag the console to be banned.
- Pages missing developer references
- Games developed by Nintendo
- Pages missing publisher references
- Games published by Nintendo
- Games published by Tencent
- Pages missing date references
- Games released in 2017
- Games released in March
- Games released on March 3
- Games released in December
- Games released on December 1
- Games released in 2019
- Games released on December 10
- Games with hidden developer credits
- Games with unused game types
- Games with unused graphics
- Games with unused sounds
- Games with revisional differences
- Games with anti-piracy methods
- Stubs
- Games in development
- To do
- BIOS/Firmware ROMs
- Nintendo Switch games
Cleanup >Pages missing date references
Cleanup >Pages missing developer references
Cleanup >Pages missing publisher references
Cleanup >Stubs
Cleanup >To do
Games >BIOS/Firmware ROMs
Games >Games by content >Games with anti-piracy methods
Games >Games by content >Games with hidden developer credits
Games >Games by content >Games with revisional differences
Games >Games by content >Games with unused game types
Games >Games by content >Games with unused graphics
Games >Games by content >Games with unused sounds
Games >Games by developer >Games developed by Nintendo
Games >Games by platform >Nintendo Switch games
Games >Games by publisher >Games published by Nintendo
Games >Games by publisher >Games published by Tencent
Games >Games by release date >Games released in 2017
Games >Games by release date >Games released in 2019
Games >Games by release date >Games released in December
Games >Games by release date >Games released in December >Games released on December 1
Games >Games by release date >Games released in December >Games released on December 10
Games >Games by release date >Games released in March
Games >Games by release date >Games released in March >Games released on March 3
Games >Games in development