Qlaunch: Difference between revisions
No edit summary |
m Forgot to close the parentheses :p |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
This is the title with process | This is the title with process name "qlaunch" (Quick Launch), launched by [[NS_services|NS services]], with its [[NCM_services#ProgramId|Program ID]] being loaded from system config. | ||
This contains multiple "applets" under one title, which, at minimum, contains the following: | |||
* Home Menu | * Home Menu | ||
* [[System Settings]] | * [[System Settings]] | ||
| Line 7: | Line 8: | ||
= Hidden Features = | = Hidden Features = | ||
== Flog == | == Flog == | ||
qlaunch periodically checks if the user is in "/RootScene/SceneResidentMenu", which represents the Home Menu (aka main-menu). If so, the following checks are then performed in order: | qlaunch periodically checks if the user is in "/RootScene/SceneResidentMenu", which represents the Home Menu (aka main-menu). | ||
If so, the following checks are then performed, in order: | |||
* The Joy-Cons' state is read from [[HID_Shared_Memory|HID shared memory]] and both must be active and detached from the console. | * The Joy-Cons' state is read from [[HID_Shared_Memory|HID shared memory]] and both must be active and detached from the console. | ||
* "StartSixAxisSensor" [[HID_services#hid| | ** (The "StartSixAxisSensor" [[HID_services#hid|HID]] command is called for each Joy-Con so that motion data can be captured). | ||
* After capturing the motion data, the same motion checks for both Joy-Cons must pass at the same time | |||
* | * After capturing the motion data, the same motion checks for both Joy-Cons must pass at the same time: | ||
* | ** (This motion data is analyzed via a 7-step process; the motion itself is a reference to [https://www.youtube.com/watch?v=BdQg43n2OaM&t=17s Iwata's 'Nintendo Direct' gesture], and may take a few attempts to get right) | ||
* Lastly, "IsSystemProgramInstalled" [[NS_Services#ns:am| | *** 1) Hold the Joy-Cons in your hand as if you were gripping a steering wheel. | ||
*** 2) Point the Joy-Cons away from you, and hold it there for a bit. | |||
**** (It's recommended to, upon failure to activate the check, reset the Joy-Cons back to a neutral state by pointing them down towards the floor, then trying again from Step 1). | |||
* After verifying that the correct inputs have been done, the system's month and day must be July 11th, which is the date of [https://en.wikipedia.org/wiki/Satoru_Iwata Iwata's passing]; the exact year and time doesn't have to be specific. | |||
** The loaded date ALSO must originate from time-sync'd time, regardless of whether the user has it enabled or not, UNLESS certain conditions are met; the certain conditions are as follows: | |||
*** If the system is on [[1.0.0]] and has never been connected to the internet, the user-specified date is used instead. | |||
*** If the system is on a newer firmware, the system will still attempt to read the network time from Nintendo's servers even if the system has never been connected to the internet; if the system can't read the network time from Nintendo's servers, it will result in an error. | |||
**** (The date-and-time itself is loaded from [[PCV_services|PCV]] commands, with the actual time-sync being handled by [[NIM_services|NIM]]). | |||
***** Because of this, the only way to manually activate this feature without homebrew is via having a system that is still on 1.0.0, which has also never been connected to the internet; otherwise, the time must come from time-sync'd time, which requires an internet connection. | |||
* After this, a wrapper for the "GetLanguageCode" [[Settings_services#set|SET]] command is called: | |||
** The returned code must be 0 (JPja) (Japanese), 1 (US-en) (American English) or 2 (EUen) (European English). | |||
*** Other combinations of region and language may have its code converted to a valid one, which seems to be the case for 12 (CNzh) (Simplified Chinese), 13 (KRko) (Korean), and 14 (TWzh) (Traditional Chinese). | |||
* Lastly, the "IsSystemProgramInstalled" [[NS_Services#ns:am|AM]] command is called: | |||
** If the [[Flog|flog]] title is installed, this returns 1 and launches flog. | |||
** If the [[Flog|flog]] title isn't installed, this returns 0 and will not proceed. | |||
Once everything passes, it continues to the code which launches [[Flog|flog]], which does the following steps, in order: | |||
* The Home Menu fades to black. | |||
* A small audio clip lasting less than a second named "SeTestTone" is played. | |||
** (The audio clip is sourced from [https://www.youtube.com/watch?v=NWbYvzjAst8&t=17s this], which comes from the Japanese Nintendo Direct Presentation from December 5th, 2012). | |||
* [[Flog]] is launched, which is a built-in emulator of Golf for the NES. | |||
A video of flog being activated (using the 1.0.0 firmware method) can be seen [https://www.youtube.com/watch?v=CGN6QXv7sfs&t=1m46s here]. | |||
As of [[4.0.0]], this feature has been removed from qlaunch, with flog itself being stubbed and no longer being able to be launched, even via homebrew. | |||
== Save Data Repair == | |||
As of [[9.0.0]], qlaunch includes a hidden menu for sending and receiving [Savegames|save data] for manual repair. | |||
This menu is likely to be used by Nintendo when a console is sent to them to be fixed, or when refurbishing a console sent to them by a customer. | |||
To access the menu, the following conditions must be met: | |||
* Open the "Settings" app from the Home Menu. | |||
* Navigate to the "Data Management" section. | |||
* Highlight "Quick Archive" with the cursor. | |||
* Press and hold the Left Analog Trigger (L3) Button and the Plus (+) Button until the menu shows up. | |||
This will call various [[OLSC_services#olsc:s|OLSC services]], which in turn will issue requests to [[Network#storage|repair services]]. | |||
(Without specific authorization from the server, this will always display a message stating "This feature is currently unavailable", and the menu will not appear). | |||
Latest revision as of 00:45, 11 May 2026
This is the title with process name "qlaunch" (Quick Launch), launched by NS services, with its Program ID being loaded from system config.
This contains multiple "applets" under one title, which, at minimum, contains the following:
- Home Menu
- System Settings
- News
Hidden Features
Flog
qlaunch periodically checks if the user is in "/RootScene/SceneResidentMenu", which represents the Home Menu (aka main-menu).
If so, the following checks are then performed, in order:
- The Joy-Cons' state is read from HID shared memory and both must be active and detached from the console.
- (The "StartSixAxisSensor" HID command is called for each Joy-Con so that motion data can be captured).
- After capturing the motion data, the same motion checks for both Joy-Cons must pass at the same time:
- (This motion data is analyzed via a 7-step process; the motion itself is a reference to Iwata's 'Nintendo Direct' gesture, and may take a few attempts to get right)
- 1) Hold the Joy-Cons in your hand as if you were gripping a steering wheel.
- 2) Point the Joy-Cons away from you, and hold it there for a bit.
- (It's recommended to, upon failure to activate the check, reset the Joy-Cons back to a neutral state by pointing them down towards the floor, then trying again from Step 1).
- (This motion data is analyzed via a 7-step process; the motion itself is a reference to Iwata's 'Nintendo Direct' gesture, and may take a few attempts to get right)
- After verifying that the correct inputs have been done, the system's month and day must be July 11th, which is the date of Iwata's passing; the exact year and time doesn't have to be specific.
- The loaded date ALSO must originate from time-sync'd time, regardless of whether the user has it enabled or not, UNLESS certain conditions are met; the certain conditions are as follows:
- If the system is on 1.0.0 and has never been connected to the internet, the user-specified date is used instead.
- If the system is on a newer firmware, the system will still attempt to read the network time from Nintendo's servers even if the system has never been connected to the internet; if the system can't read the network time from Nintendo's servers, it will result in an error.
- (The date-and-time itself is loaded from PCV commands, with the actual time-sync being handled by NIM).
- Because of this, the only way to manually activate this feature without homebrew is via having a system that is still on 1.0.0, which has also never been connected to the internet; otherwise, the time must come from time-sync'd time, which requires an internet connection.
- (The date-and-time itself is loaded from PCV commands, with the actual time-sync being handled by NIM).
- The loaded date ALSO must originate from time-sync'd time, regardless of whether the user has it enabled or not, UNLESS certain conditions are met; the certain conditions are as follows:
- After this, a wrapper for the "GetLanguageCode" SET command is called:
- The returned code must be 0 (JPja) (Japanese), 1 (US-en) (American English) or 2 (EUen) (European English).
- Other combinations of region and language may have its code converted to a valid one, which seems to be the case for 12 (CNzh) (Simplified Chinese), 13 (KRko) (Korean), and 14 (TWzh) (Traditional Chinese).
- The returned code must be 0 (JPja) (Japanese), 1 (US-en) (American English) or 2 (EUen) (European English).
- Lastly, the "IsSystemProgramInstalled" AM command is called:
Once everything passes, it continues to the code which launches flog, which does the following steps, in order:
- The Home Menu fades to black.
- A small audio clip lasting less than a second named "SeTestTone" is played.
- (The audio clip is sourced from this, which comes from the Japanese Nintendo Direct Presentation from December 5th, 2012).
- Flog is launched, which is a built-in emulator of Golf for the NES.
A video of flog being activated (using the 1.0.0 firmware method) can be seen here.
As of 4.0.0, this feature has been removed from qlaunch, with flog itself being stubbed and no longer being able to be launched, even via homebrew.
Save Data Repair
As of 9.0.0, qlaunch includes a hidden menu for sending and receiving [Savegames|save data] for manual repair. This menu is likely to be used by Nintendo when a console is sent to them to be fixed, or when refurbishing a console sent to them by a customer.
To access the menu, the following conditions must be met:
- Open the "Settings" app from the Home Menu.
- Navigate to the "Data Management" section.
- Highlight "Quick Archive" with the cursor.
- Press and hold the Left Analog Trigger (L3) Button and the Plus (+) Button until the menu shows up.
This will call various OLSC services, which in turn will issue requests to repair services.
(Without specific authorization from the server, this will always display a message stating "This feature is currently unavailable", and the menu will not appear).