Difference between revisions of "Qlaunch"
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | This is the title with process-name "qlaunch" launched by [[ | + | This is the title with process-name "qlaunch" launched by [[NS_services|ns]] with a [[NCM_services#ProgramId|ProgramId]] loaded from system-config. |
− | This | + | This contains multiple "applets" under one title, with at minimum the following: |
* Home Menu | * Home Menu | ||
* [[System Settings]] | * [[System Settings]] | ||
* [[News_Applet|News]] | * [[News_Applet|News]] | ||
− | This | + | = 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|HID shared memory]] and both must be active and detached from the console. | ||
+ | * "StartSixAxisSensor" [[HID_services#hid|hid]] command is called for each Joy-Con so 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 in a small state machine consisting of a total of 7 steps and the motion itself is a reference to [https://www.youtube.com/watch?v=BdQg43n2OaM&t=17s Iwata's Direct gesture]. Hold the Joy-Cons pointing forwards/downwards, then move Joy-Cons to a vertical position, and hold it there for a bit. The Joy-Con grip can be used for this. | ||
+ | * The system's month and day must be July 11th, which is the date of Iwata's [https://en.wikipedia.org/wiki/Satoru_Iwata passing]. The loaded date originates from network-time-sync'd time, regardless of whether the user has it enabled or not. When the system was never connected to the Internet and is on [[1.0.0]] it comes from the user-specified date instead. For newer systems, trying to load the network time if it was never set will result in an error: they won't ever be able to launch flog without a time-sync with Nintendo servers. This is loaded from the [[PCV_services|time]] service-cmds, with the actual time-sync being handled by [[NIM_services|NIM]]. | ||
+ | * A wrapper for "GetLanguageCode" [[Settings_services#set|set]] command is called and the returned code must be 0 (JPja), 1 (USen) or 2 (EUen). Other combinations of region and language may have it's code translated internally to a valid one (0, 1 or 2), which seems to be the case for 12 (CNzh), 13 (KRko) and 14 (TWzh). | ||
+ | * Lastly, "IsSystemProgramInstalled" [[NS_Services#ns:am|ns:am]] command is called, which should return 1 if the [[Flog|flog]] title is installed. | ||
+ | |||
+ | Once everything passes it continues to the code which launches [[Flog|flog]]. When [[Flog|flog]] is launched a small audio clip named "SeTestTone" is played which matches [https://www.youtube.com/embed/SeVTJu_Yn2Y?start=17&end=18&autoplay=1 this]. | ||
+ | |||
+ | As of [[4.0.0]] this feature has been removed from qlaunch. | ||
+ | |||
+ | == SaveData Repair == | ||
+ | As of [[9.0.0]], qlaunch includes a hidden menu for sending and receiving savedata for repairing. To access the menu the following sequence must be performed: | ||
+ | * Open the "Settings" menu. | ||
+ | * Navigate to "Data Management" and highlight "Quick Archive". | ||
+ | * Press and hold the Left Analog Trigger button (L3) and the Plus button. | ||
+ | |||
+ | This will call various [[OLSC_services#olsc:s|olsc:s]] which in turn will issue requests to the [[Network#storage|repair service]]. Without specific authorization from the server, this will always display a message like: "This feature is currently unavailable." |
Latest revision as of 22:49, 31 March 2023
This is the title with process-name "qlaunch" launched by ns with a ProgramId loaded from system-config.
This contains multiple "applets" under one title, with at minimum 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.
- "StartSixAxisSensor" hid command is called for each Joy-Con so 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 in a small state machine consisting of a total of 7 steps and the motion itself is a reference to Iwata's Direct gesture. Hold the Joy-Cons pointing forwards/downwards, then move Joy-Cons to a vertical position, and hold it there for a bit. The Joy-Con grip can be used for this.
- The system's month and day must be July 11th, which is the date of Iwata's passing. The loaded date originates from network-time-sync'd time, regardless of whether the user has it enabled or not. When the system was never connected to the Internet and is on 1.0.0 it comes from the user-specified date instead. For newer systems, trying to load the network time if it was never set will result in an error: they won't ever be able to launch flog without a time-sync with Nintendo servers. This is loaded from the time service-cmds, with the actual time-sync being handled by NIM.
- A wrapper for "GetLanguageCode" set command is called and the returned code must be 0 (JPja), 1 (USen) or 2 (EUen). Other combinations of region and language may have it's code translated internally to a valid one (0, 1 or 2), which seems to be the case for 12 (CNzh), 13 (KRko) and 14 (TWzh).
- Lastly, "IsSystemProgramInstalled" ns:am command is called, which should return 1 if the flog title is installed.
Once everything passes it continues to the code which launches flog. When flog is launched a small audio clip named "SeTestTone" is played which matches this.
As of 4.0.0 this feature has been removed from qlaunch.
SaveData Repair
As of 9.0.0, qlaunch includes a hidden menu for sending and receiving savedata for repairing. To access the menu the following sequence must be performed:
- Open the "Settings" menu.
- Navigate to "Data Management" and highlight "Quick Archive".
- Press and hold the Left Analog Trigger button (L3) and the Plus button.
This will call various olsc:s which in turn will issue requests to the repair service. Without specific authorization from the server, this will always display a message like: "This feature is currently unavailable."