Changes

Jump to navigation Jump to search
8,114 bytes added ,  18:31, 17 September 2019
Line 113: Line 113:  
| 31 || [2.0.0+] [[#GetWriterLockAccessorEx]] ||  
 
| 31 || [2.0.0+] [[#GetWriterLockAccessorEx]] ||  
 
|-
 
|-
| 100 || [6.0.0+] PopRequestLaunchApplicationForDebug ||
+
| 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]] ||
 +
|-
 +
| 110 || [9.0.0+] [[#IsForceTerminateApplicationDisabledForDebug]] ||
 
|-
 
|-
 
| 200 || [8.0.0+] [[#LaunchDevMenu]] ||
 
| 200 || [8.0.0+] [[#LaunchDevMenu]] ||
Line 142: Line 144:     
The input value must be 0-3. 0 = HomeButton.
 
The input value must be 0-3. 0 = HomeButton.
 +
 +
==== PopRequestLaunchApplicationForDebug ====
 +
Takes a type-0x6 output buffer containing an array of u128 userIDs, returns an output u64 titleID (<code>nn::ncm::ApplicationId</code>) and an output s32 '''total_userIDs'''.
 +
 +
The total entries in the userID buffer must be >= {total userIDs in state}.
 +
 +
==== IsForceTerminateApplicationDisabledForDebug ====
 +
No input, returns a total of 1-byte of output.
    
==== LaunchDevMenu ====
 
==== LaunchDevMenu ====
Line 149: Line 159:     
Uses [[NS_Services#IApplicationManagerInterface]] cmd99.
 
Uses [[NS_Services#IApplicationManagerInterface]] cmd99.
 +
 +
This is used by [[qlaunch]]. On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
    
==== ILockAccessor ====
 
==== ILockAccessor ====
Line 272: Line 284:  
| 100 || [[#PopFloatingApplicationForDevelopment]] ||  
 
| 100 || [[#PopFloatingApplicationForDevelopment]] ||  
 
|}
 
|}
 +
 +
[[#CreateApplication]]/[[#CreateSystemApplication]] eventually call the same internal func. With [[#CreateApplication]], two ptrs passed to the internal func are NULL, while with [[#CreateSystemApplication]] these are loaded from state. The initial content of [[#ApplicationLaunchRequestInfo]] is all-zero with [[#CreateSystemApplication]], while with [[#CreateApplication]] the first two u32s are value 0x3 with the rest all-zero. The [[#AppletId]] is set to 0x01 with [[#CreateApplication]], while with [[#CreateSystemApplication]] it's 0x04.
    
==== CreateApplication ====
 
==== CreateApplication ====
Line 286: Line 300:  
==== PopFloatingApplicationForDevelopment ====
 
==== PopFloatingApplicationForDevelopment ====
 
No input, returns an [[#IApplicationAccessor]].
 
No input, returns an [[#IApplicationAccessor]].
 +
 +
Should not be used if no FloatingApplication is available (svcBreak).
    
==== IApplicationAccessor ====
 
==== IApplicationAccessor ====
Line 335: Line 351:  
|-
 
|-
 
| 170 || [8.0.0+] [[#HasSaveDataAccessPermission]] ||
 
| 170 || [8.0.0+] [[#HasSaveDataAccessPermission]] ||
 +
|-
 +
| 180 || [9.0.0+] PushToFriendInvitationStorageChannel ||
 +
|-
 +
| 190 || [9.0.0+] PushToNotificationStorageChannel ||
 
|}
 
|}
   Line 355: Line 375:  
===== GetApplicationControlProperty =====
 
===== GetApplicationControlProperty =====
 
No input, takes a type-0x6 output buffer.
 
No input, takes a type-0x6 output buffer.
 +
 +
The output buffer must be at least 0x4000-bytes. Returns an error when the [[#AppletId]] is 0x04, aka when the IApplicationAccessor is for a SystemApplication.
    
This gets the application [[NACP_Format|control.nacp]].
 
This gets the application [[NACP_Format|control.nacp]].
Line 361: Line 383:  
Takes a type-0x6 output buffer.
 
Takes a type-0x6 output buffer.
   −
The output buffer size must be at least 0x10-bytes.
+
The output buffer size must be at least 0x10-bytes. Returns an error when the [[#AppletId]] is 0x04, aka when the IApplicationAccessor is for a SystemApplication.
   −
This gets the cached ApplicationLaunchProperty.
+
This gets the [[#ApplicationLaunchProperty]].
    
===== GetApplicationLaunchRequestInfo =====
 
===== GetApplicationLaunchRequestInfo =====
 
No input, returns an output 0x10-byte struct.
 
No input, returns an output 0x10-byte struct.
   −
This gets the ApplicationLaunchRequestInfo from state. The output struct is "nn::applet::ApplicationLaunchRequestInfo".
+
This gets the [[#ApplicationLaunchRequestInfo]] from state. The output struct is "nn::applet::ApplicationLaunchRequestInfo".
    
===== SetUsers =====
 
===== SetUsers =====
Line 375: Line 397:  
The total entries for the userIDs must be <=8.
 
The total entries for the userIDs must be <=8.
   −
When the input flag is true, the '''users_available''' state flag is cleared to 0, however as long as total_entries is valid this state flag will be set to 1 afterwards regardless.
+
When the input flag is true, this just clears the '''users_available''' state flag to 0 and returns.
    
===== CheckRightsEnvironmentAvailable =====
 
===== CheckRightsEnvironmentAvailable =====
Line 386: Line 408:  
Takes a type-0x6 output buffer containing an array of u128 userIDs, returns an output s32 '''total_entries'''.
 
Takes a type-0x6 output buffer containing an array of u128 userIDs, returns an output s32 '''total_entries'''.
   −
Gets a userID listing, this is unrelated to [[#SetUsers]].
+
Gets a userID listing, this is unrelated to [[#SetUsers]]. [[qlaunch]] only uses 1 userID with this.
    
The stored entry-count in state must be <= <size of output buffer in entries>.
 
The stored entry-count in state must be <= <size of output buffer in entries>.
Line 445: Line 467:  
|-
 
|-
 
! Cmd || Name || Notes
 
! Cmd || Name || Notes
 +
|-
 +
| 0 || [9.0.0+] SetTerminateResult ||
 
|-
 
|-
 
| 10 || [[#ReadThemeStorage]] ||  
 
| 10 || [[#ReadThemeStorage]] ||  
 
|-
 
|-
 
| 11 || [[#WriteThemeStorage]] ||  
 
| 11 || [[#WriteThemeStorage]] ||  
 +
|-
 +
| 20 || [9.0.0+] [[#PushToAppletBoundChannel]] ||
 +
|-
 +
| 21 || [9.0.0+] [[#TryPopFromAppletBoundChannel]] ||
 
|-
 
|-
 
| 40 || [8.0.0+] [[#GetDisplayLogicalResolution]] ||  
 
| 40 || [8.0.0+] [[#GetDisplayLogicalResolution]] ||  
Line 466: Line 494:  
=== WriteThemeStorage ===
 
=== WriteThemeStorage ===
 
Takes an input u64 '''offset''' and a type-0x21 input buffer, no output.
 
Takes an input u64 '''offset''' and a type-0x21 input buffer, no output.
 +
 +
=== PushToAppletBoundChannel ===
 +
Takes an input [[#IStorage]], no output.
 +
 +
=== TryPopFromAppletBoundChannel ===
 +
No input, returns an output [[#IStorage]].
    
=== GetDisplayLogicalResolution ===
 
=== GetDisplayLogicalResolution ===
Line 575: Line 609:  
|-
 
|-
 
| 110 || [6.0.0+] [[#GetMainAppletAvailableUsers]] ||
 
| 110 || [6.0.0+] [[#GetMainAppletAvailableUsers]] ||
 +
|-
 +
| 120 || [9.0.0+] GetLaunchStorageInfoForDebug ||
 +
|-
 +
| 130 || [9.0.0+] GetGpuErrorDetectedSystemEvent ||
 
|}
 
|}
   Line 750: Line 788:  
|-
 
|-
 
| 20 || [8.0.0+] [[#SetHandlingHomeButtonShortPressedEnabled]]
 
| 20 || [8.0.0+] [[#SetHandlingHomeButtonShortPressedEnabled]]
 +
|-
 +
| 30 || [9.0.0+] SetHealthWarningShowingState
 
|-
 
|-
 
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
 
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
Line 783: Line 823:  
==== StartShutdownSequenceForOverlay ====
 
==== StartShutdownSequenceForOverlay ====
 
No input/output.
 
No input/output.
 +
 +
On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
    
==== StartRebootSequenceForOverlay ====
 
==== StartRebootSequenceForOverlay ====
 
No input/output.
 
No input/output.
 +
 +
On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
    
==== SetHandlingHomeButtonShortPressedEnabled ====
 
==== SetHandlingHomeButtonShortPressedEnabled ====
Line 797: Line 841:  
==== BeginToObserveHidInputForDevelop ====
 
==== BeginToObserveHidInputForDevelop ====
 
No input/output.
 
No input/output.
 +
 +
Sets various state fields and signals an userspace-event.
 +
 +
Enables HID input for the OverlayApplet, without disabling input for the foreground applet.
    
== IApplicationProxy ==
 
== IApplicationProxy ==
Line 841: Line 889:  
| 15 || [7.0.0+] [[#CreateApplicationWithAttributeAndRequestToStartForQuest]] ||  
 
| 15 || [7.0.0+] [[#CreateApplicationWithAttributeAndRequestToStartForQuest]] ||  
 
|-
 
|-
| 20 || EnsureSaveData ||
+
| 20 || [[#EnsureSaveData]] ||
 
|-
 
|-
 
| 21 || [[#GetDesiredLanguage]] ||
 
| 21 || [[#GetDesiredLanguage]] ||
Line 909: Line 957:  
| 130 || [8.0.0+] [[#GetGpuErrorDetectedSystemEvent]] ||  
 
| 130 || [8.0.0+] [[#GetGpuErrorDetectedSystemEvent]] ||  
 
|-
 
|-
| 500 || [5.0.0+] StartContinuousRecordingFlushForDebug ||  
+
| 140 || [9.0.0+] GetFriendInvitationStorageChannelEvent ||
 +
|-
 +
| 141 || [9.0.0+] TryPopFromFriendInvitationStorageChannel ||
 +
|-
 +
| 150 || [9.0.0+] GetNotificationStorageChannelEvent ||
 +
|-
 +
| 151 || [9.0.0+] TryPopFromNotificationStorageChannel ||
 +
|-
 +
| 160 || [9.0.0+] GetHealthWarningDisappearedSystemEvent ||
 +
|-
 +
| 170 || [9.0.0+] SetHdcpAuthenticationActivated ||
 +
|-
 +
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]] ||  
 
|-
 
|-
 
| 1000 || [5.0.0+] [[#CreateMovieMaker]] ||  
 
| 1000 || [5.0.0+] [[#CreateMovieMaker]] ||  
Line 954: Line 1,014:  
Same as [[#CreateApplicationAndRequestToStartForQuest]] except the entire attributes structure is directly specified via the input buffer. This command replaces [[#CreateApplicationAndRequestToStartForQuest]], official user-processes no longer use [[#CreateApplicationAndPushAndRequestToStartForQuest]].
 
Same as [[#CreateApplicationAndRequestToStartForQuest]] except the entire attributes structure is directly specified via the input buffer. This command replaces [[#CreateApplicationAndRequestToStartForQuest]], official user-processes no longer use [[#CreateApplicationAndPushAndRequestToStartForQuest]].
   −
==== GetDesiredLanguage ====
+
==== EnsureSaveData ====
No input, returns an output [[Settings_services#LanguageCode|LanguageCode]].
+
Takes an input u128 userID, returns an output u64 size.
 +
 
 +
Calls sdk func <code>nn::fs::EnsureApplicationSaveData</code>. [[qlaunch]] also calls this same sdk func directly.
 +
 
 +
Creates the various savedata as specified by the application [[NACP_Format|control.nacp]] when the savedata doesn't exist.
 +
 
 +
Official user-processes launch the dataErase LibraryApplet depending on the Result, the above output size is used with this.
 +
 
 +
==== GetDesiredLanguage ====
 +
No input, returns an output [[Settings_services#LanguageCode|LanguageCode]].
    
==== SetTerminateResult ====
 
==== SetTerminateResult ====
Line 970: Line 1,039:  
No input, returns an output u8 [[Filesystem_services#StorageId|StorageId]] and u8 [[Filesystem_services#StorageId|StorageId]].
 
No input, returns an output u8 [[Filesystem_services#StorageId|StorageId]] and u8 [[Filesystem_services#StorageId|StorageId]].
   −
Just returns two u8s loaded from state.
+
This returns two u8s loaded from state, these are the same StorageIds from [[#ApplicationLaunchProperty]].
    
==== BeginBlockingHomeButtonShortAndLongPressed ====
 
==== BeginBlockingHomeButtonShortAndLongPressed ====
Line 1,012: Line 1,081:  
==== RequestFlushGamePlayingMovieForDebug ====
 
==== RequestFlushGamePlayingMovieForDebug ====
 
No input/output.
 
No input/output.
 +
 +
Requests to save the video recording, as if the Capture-button was held.
    
==== RequestToShutdown ====
 
==== RequestToShutdown ====
Line 1,089: Line 1,160:  
==== GetPreviousProgramIndex ====
 
==== GetPreviousProgramIndex ====
 
No input, returns an output s32.
 
No input, returns an output s32.
 +
 +
Gets the ProgramIndex of the Application which launched this title. The output ProgramIndex is -1 when there was no previous title.
    
==== EnableApplicationAllThreadDumpOnCrash ====
 
==== EnableApplicationAllThreadDumpOnCrash ====
Line 1,097: Line 1,170:     
This is used by sdknso during applet-application initialization. A seperate thread is setup where event-waiting is handled. When the Event is signaled, official sw will assert.
 
This is used by sdknso during applet-application initialization. A seperate thread is setup where event-waiting is handled. When the Event is signaled, official sw will assert.
 +
 +
==== StartContinuousRecordingFlushForDebug ====
 +
Takes an input s64 nanoseconds-value, returns an output Event handle with autoclear=false.
 +
 +
The cached value loaded from [[System_Settings|system-setting]] <code>am.debug!dev_function</code> must be set to 0x1 with size 0x1, otherwise an error is returned.
    
==== CreateMovieMaker ====
 
==== CreateMovieMaker ====
Takes an input u64 and handle, returns an [[#IMovieMaker]].
+
Takes an input u64 size and a TransferMemory handle, returns an [[#IMovieMaker]].
 +
 
 +
Official sw retries using the cmd in a loop on error 0x8D4 with svcSleepThread(100000000) being used first.
 +
 
 +
Official sw uses permissions=None for the TransferMemory, with an user-specified buffer. The size of the buffer used by official sw is 0x6000000.
    
==== PrepareForJit ====
 
==== PrepareForJit ====
Line 1,145: Line 1,227:     
Stubbed with an ILibraryAppletCreator from [[#CreateSelfLibraryAppletCreatorForDevelop]], just returns an error.
 
Stubbed with an ILibraryAppletCreator from [[#CreateSelfLibraryAppletCreatorForDevelop]], just returns an error.
 +
 +
Terminates all LibraryApplets which were created by the current applet (or by the Application when used from the [[#IApplicationAccessor]] cmd).
    
=== AreAnyLibraryAppletsLeft ===
 
=== AreAnyLibraryAppletsLeft ===
Line 1,150: Line 1,234:     
Stubbed with an ILibraryAppletCreator from [[#CreateSelfLibraryAppletCreatorForDevelop]], just returns an error.
 
Stubbed with an ILibraryAppletCreator from [[#CreateSelfLibraryAppletCreatorForDevelop]], just returns an error.
 +
 +
Gets whether any LibraryApplets ([[#ILibraryAppletAccessor]]) which were created by the current applet are still open (or by the Application when used from the [[#IApplicationAccessor]] cmd).
    
=== CreateStorage ===
 
=== CreateStorage ===
Line 1,329: Line 1,415:  
|-
 
|-
 
| 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] ||
 
| 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] ||
 +
|-
 +
| 300 || [9.0.0+] GetSettingsPlatformRegion ||
 
|}
 
|}
   Line 1,465: Line 1,553:  
Takes a type-0x5 input buffer containing a string, returns an output u64 titleID.
 
Takes a type-0x5 input buffer containing a string, returns an output u64 titleID.
   −
Gets the application titleID for the specified ContentActionName string. Returns an error when the current [[#AppletId]] isn't 0x04 (starter).
+
Gets the application titleID for the specified ContentActionName string. Returns an error when the current [[#AppletId]] isn't 0x04 (when the current applet isn't a SystemApplication).
    
=== SetCpuBoostMode ===
 
=== SetCpuBoostMode ===
Line 1,484: Line 1,572:  
No input, returns an output u32.
 
No input, returns an output u32.
   −
This returns the output from omm [[#Cmd26]].
+
This returns the output from [[#GetOperationModeSystemInfo_2|omm GetOperationModeSystemInfo]].
    
== ISelfController ==
 
== ISelfController ==
Line 1,560: Line 1,648:  
|-
 
|-
 
| 71 || [5.0.0+] [[#GetCurrentIlluminanceEx]]
 
| 71 || [5.0.0+] [[#GetCurrentIlluminanceEx]]
 +
|-
 +
| 72 || [9.0.0+] SetInputDetectionPolicy
 
|-
 
|-
 
| 80 || [4.0.0+] [[#SetWirelessPriorityMode]]
 
| 80 || [4.0.0+] [[#SetWirelessPriorityMode]]
Line 2,166: Line 2,256:  
|-
 
|-
 
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] ||
 
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] ||
 +
|-
 +
| 110 || [9.0.0+] PushToAppletBoundChannelForDebug ||
 +
|-
 +
| 111 || [9.0.0+] TryPopFromAppletBoundChannelForDebug ||
 +
|-
 +
| 120 || [9.0.0+] AlarmSettingNotificationEnableAppEventReserve ||
 +
|-
 +
| 121 || [9.0.0+] AlarmSettingNotificationDisableAppEventReserve ||
 +
|-
 +
| 122 || [9.0.0+] AlarmSettingNotificationPushAppEventNotify ||
 +
|-
 +
| 130 || [9.0.0+] FriendInvitationSetApplicationParameter ||
 +
|-
 +
| 131 || [9.0.0+] FriendInvitationClearApplicationParameter ||
 +
|-
 +
| 132 || [9.0.0+] FriendInvitationPushApplicationParameter ||
 
|}
 
|}
   Line 2,175: Line 2,281:  
=== OpenMainApplication ===
 
=== OpenMainApplication ===
 
No input, returns an output [[#IApplicationAccessor]].
 
No input, returns an output [[#IApplicationAccessor]].
 +
 +
Should not be used when no Application is running (svcBreak).
    
=== PerformSystemButtonPressing ===
 
=== PerformSystemButtonPressing ===
Line 2,184: Line 2,292:  
=== RequestLaunchApplicationWithUserAndArgumentForDebug ===
 
=== RequestLaunchApplicationWithUserAndArgumentForDebug ===
 
Takes an input u8 bool flag, an u64 Application titleID, a type-0x5 input buffer containing an array of u128 userIDs, and a type-0x5 input buffer, no output.
 
Takes an input u8 bool flag, an u64 Application titleID, a type-0x5 input buffer containing an array of u128 userIDs, and a type-0x5 input buffer, no output.
 +
 +
Requests to launch the specified Application, with the specified users. When the bool flag is true, the content of the second input buffer is used to create a storage which is pushed to the UserChannel for this Application (see [[#LaunchParameterKind]]).
    
=== GetAppletResourceUsageInfo ===
 
=== GetAppletResourceUsageInfo ===
No input, returns an output 0x20-byte struct "nn::am::service::AppletResourceUsageInfo".
+
No input, returns an output [[#AppletResourceUsageInfo]].
    
=== SetCpuBoostModeForApplet ===
 
=== SetCpuBoostModeForApplet ===
Line 2,261: Line 2,371:  
|rowspan="2"| 1 || [1.0.0-3.0.2]
 
|rowspan="2"| 1 || [1.0.0-3.0.2]
 
|-
 
|-
| [7.0.0+]
+
| [7.0.0+] IsAutoPowerDownRequested
 
|-
 
|-
 
| 2 || [1.0.0-3.0.2]
 
| 2 || [1.0.0-3.0.2]
 
|-
 
|-
| 3 || SetHandlingContext
+
| 3 || [[#SetHandlingContext]]
 
|-
 
|-
 
| 4 || LoadAndApplySettings
 
| 4 || LoadAndApplySettings
Line 2,272: Line 2,382:  
|}
 
|}
   −
[3.0.0+] SetHandlingContext now takes an additional 0x10-bytes of input.
+
== SetHandlingContext ==
 +
[3.0.0+] Now takes an additional 0x10-bytes of input.
    
= omm =
 
= omm =
Line 2,278: Line 2,389:     
Operation Mode Manager (OMM) is a service responsible for arbitrating the operation changes between docked and handheld modes.
 
Operation Mode Manager (OMM) is a service responsible for arbitrating the operation changes between docked and handheld modes.
Besides [[PTM_services]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
+
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 +
|-
 +
| 0 || GetOperationMode
 
|-
 
|-
| 0 || GetOperationMode ||  
+
| 1 || GetOperationModeChangeEvent
 
|-
 
|-
| 1 || GetOperationModeChangeEvent ||  
+
| 2 || EnableAudioVisual
 
|-
 
|-
| 2 || EnableAudioVisual ||  
+
| 3 || DisableAudioVisual
 
|-
 
|-
| 3 || DisableAudioVisual ||  
+
| 4 || EnterSleepAndWait
 
|-
 
|-
| 4 || EnterSleepAndWait ||  
+
| 5 || GetCradleStatus
 
|-
 
|-
| 5 || GetCradleStatus ||  
+
| 6 || FadeInDisplay
 
|-
 
|-
| 6 || FadeInDisplay ||  
+
| 7 || FadeOutDisplay
 
|-
 
|-
| 7 || FadeOutDisplay ||  
+
| 8 || [2.0.0+] GetCradleFwVersion
 
|-
 
|-
| 8 || [2.0.0+] GetCradleFwVersion ||
+
| 9 || [2.0.0+] NotifyCecSettingsChanged
 
|-
 
|-
| 9 || [2.0.0+] NotifyCecSettingsChanged ||
+
| 10 || [3.0.0+] SetOperationModePolicy
 
|-
 
|-
| 10 || [3.0.0+] SetOperationModePolicy ||
+
| 11 || [3.0.0+] GetDefaultDisplayResolution
 
|-
 
|-
| 11 || [3.0.0+] GetDefaultDisplayResolution ||
+
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent
 
|-
 
|-
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent ||
+
| 13 || [3.0.0+] UpdateDefaultDisplayResolution
 
|-
 
|-
| 13 || [3.0.0+] UpdateDefaultDisplayResolution ||
+
| 14 || [3.0.0+] ShouldSleepOnBoot
 
|-
 
|-
| 14 || [3.0.0+] ShouldSleepOnBoot ||
+
| 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted
 
|-
 
|-
| 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted ||
+
| 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished
 
|-
 
|-
| 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished ||
+
| 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted
 
|-
 
|-
| 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted ||
+
| 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished
 
|-
 
|-
| 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished ||
+
| 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent
 
|-
 
|-
| 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent ||
+
| 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled
 
|-
 
|-
| 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled ||
+
| 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation
 
|-
 
|-
| 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation ||
+
| 22 || [4.0.0+] GetHdcpStateChangeEvent
 
|-
 
|-
| 22 || [4.0.0+] GetHdcpStateChangeEvent ||
+
| 23 || [4.0.0+] GetHdcpState
 
|-
 
|-
| 23 || [4.0.0+] GetHdcpState ||
+
| 24 || [5.0.0+] ShowCardUpdateProcessing
 
|-
 
|-
| 24 || [5.0.0+] ShowCardUpdateProcessing ||
+
| 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged
 
|-
 
|-
| 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged ||
+
| 26 || [7.0.0+] [[#GetOperationModeSystemInfo]]
 
|-
 
|-
| 26 || [7.0.0+] ||
+
| 27 || [9.0.0+] GetAppletFullAwakingSystemEvent
 
|}
 
|}
   −
== Cmd26 ==
+
== GetOperationModeSystemInfo ==
 
No input, returns an output u32.
 
No input, returns an output u32.
   −
This is used by [[#GetOperationModeSystemInfo]].
+
This is used by [[#GetOperationModeSystemInfo|ICommonStateGetter GetOperationModeSystemInfo]].
    
= spsm =
 
= spsm =
Line 2,351: Line 2,464:  
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || GetState
+
| 0 || GetCurrentState
 
|-
 
|-
| 1 || SleepSystemAndWaitAwake
+
| 1 || EnterSleep
 
|-
 
|-
| 2 ||  
+
| 2 || GetLastWakeReason
 
|-
 
|-
| 3 ||  
+
| 3 || Shutdown
 
|-
 
|-
 
| 4 || GetNotificationMessageEventHandle
 
| 4 || GetNotificationMessageEventHandle
 
|-
 
|-
| 5 ||  
+
| 5 || ReceiveNotificationMessage
 
|-
 
|-
| 6 ||  
+
| 6 || AnalyzeLogForLastSleepWakeSequence
 
|-
 
|-
| 7 ||  
+
| 7 || ResetEventLog
 
|-
 
|-
 
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence
 
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence
Line 2,371: Line 2,484:  
| 9 || ChangeHomeButtonLongPressingTime
 
| 9 || ChangeHomeButtonLongPressingTime
 
|-
 
|-
| 10 ||  
+
| 10 || PutErrorState
 
|-
 
|-
| 11 || [1.0.0-3.0.2]
+
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
 
|}
 
|}
   Line 2,417: Line 2,530:     
== SaveScreenShot ==
 
== SaveScreenShot ==
Takes two input u32s, an u64 AppletResourceUserId, a PID, and a type-0x45 input buffer. Returns a 0x20-byte struct '''ApplicationAlbumEntry'''.
+
Takes two input u32s, an u64 AppletResourceUserId, a PID, and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
 +
 
 +
Official user-processes doesn't use this, instead [[#SaveScreenShotEx0]] is used: ScreenShotAttributeEx0 is all-zero, except +4 is set to an input u32 and u32 +0xC = 0x1.
   −
Official user-processes doesn't use this, instead [[#SaveScreenShotEx0]] is used: ScreenShotAttributeEx0 is all-zero except +0 is set to an input u32.
+
This cmd internally uses an all-zero ScreenShotAttributeEx0, with u32 +0 = input u32 and u32 +0x8 = 0x3.
    
== SaveScreenShotEx0 ==
 
== SaveScreenShotEx0 ==
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a PID, and a type-0x45 input buffer. Returns a 0x20-byte struct '''ApplicationAlbumEntry'''.
+
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a PID, and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
 +
 
 +
== SaveScreenShotEx1 ==
 +
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a PID, a type-0x15 input buffer containing an [[Capture_services|ApplicationData]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
 +
 
 +
== SaveScreenShotEx2 ==
 +
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a type-0x15 input buffer containing an [[Capture_services|UserIdList]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
    
= Library Applets =
 
= Library Applets =
Line 2,480: Line 2,601:  
| 0x04
 
| 0x04
 
| 0100000000001012
 
| 0100000000001012
| "starter"
+
| "starter" SystemApplication.
 
|-
 
|-
 
| 0x0A
 
| 0x0A
Line 2,528: Line 2,649:  
| 0x15
 
| 0x15
 
| 010000000000100D
 
| 010000000000100D
| "photoViewer"
+
| [[Album_Applet|"photoViewer"]]
 
|-
 
|-
 
| 0x16
 
| 0x16
Line 2,548: Line 2,669:  
| 0x1A
 
| 0x1A
 
| 0100000000001013
 
| 0100000000001013
| "myPage"
+
| [[MyPage_Applet|"myPage"]]
 
|}
 
|}
   Line 2,637: Line 2,758:  
| 4 || Long-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
 
| 4 || Long-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
 
|-
 
|-
| 5 || Power off the system. Only available with [[#PerformSystemButtonPressing]].
+
| 5 || Shutdown the system. Only available with [[#PerformSystemButtonPressing]].
 
|-
 
|-
 
| 6 || PerformCaptureButtonShortPressing
 
| 6 || PerformCaptureButtonShortPressing
Line 2,652: Line 2,773:  
!  Description
 
!  Description
 
|-
 
|-
| 1 || Application-specific LaunchParameter
+
| 1 || UserChannel. Application-specific LaunchParameter.
 
|-
 
|-
 
| 2 || account PreselectedUser
 
| 2 || account PreselectedUser
Line 2,680: Line 2,801:  
!  Description
 
!  Description
 
|-
 
|-
| 0 || u8 ProgramIndex. "ExecuteProgram". After using [[#ExecutProgram]] with this successfully, official user-processes will enter an infinite loop with sleep-thread value 86400000000000.
+
| 0 || u8 ProgramIndex. "ExecuteProgram". [[NS_Services|NS]] handles ProgramIndex by launching titleID {application_titleID}+ProgramIndex. After using [[#ExecuteProgram]] with this successfully, official user-processes will enter an infinite loop with sleep-thread value 86400000000000.
 
|-
 
|-
 
| 1 || u64 titleID. "JumpToSubApplicationProgramForDevelopment". Only available when [[Settings_services#GetDebugModeFlag|DebugMode]] is 1.
 
| 1 || u64 titleID. "JumpToSubApplicationProgramForDevelopment". Only available when [[Settings_services#GetDebugModeFlag|DebugMode]] is 1.
Line 2,689: Line 2,810:     
This is "nn::am::service::ProgramSpecifyKind". This controls the type of the u64 passed to [[#ExecuteProgram]].
 
This is "nn::am::service::ProgramSpecifyKind". This controls the type of the u64 passed to [[#ExecuteProgram]].
 +
 +
ProgramIndex values where the title is not installed should not be used: [[qlaunch]] will display an error message and the current title will become "corrupted", however Home Menu will have an option to repair it.
    
= AppletResourceUserId =
 
= AppletResourceUserId =
Line 2,783: Line 2,906:     
Internally AM only uses the first 0xC-bytes from ApplicationAttribute, regardless of the cmd.
 
Internally AM only uses the first 0xC-bytes from ApplicationAttribute, regardless of the cmd.
 +
 +
= ApplicationLaunchProperty =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || Application titleID.
 +
|-
 +
| 0x8 || 0x4 || Application title-version.
 +
|-
 +
| 0xC || 0x1 || [[Filesystem_services#StorageId|StorageId]] for the Application base title.
 +
|-
 +
| 0xD || 0x1 || [[Filesystem_services#StorageId|StorageId]] for the Application update title.
 +
|-
 +
| 0xE || 0x1 || Unknown.
 +
|-
 +
| 0xF || 0x1 || Padding.
 +
|}
 +
 +
This struct is 0x10-bytes.
 +
 +
= ApplicationLaunchRequestInfo =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || Unknown. The default is 0x0 with [[#CreateSystemApplication]], 0x3 with [[#CreateApplication]].
 +
|-
 +
| 0x4 || 0x4 || Unknown. The default is 0x0 with [[#CreateSystemApplication]], 0x3 with [[#CreateApplication]].
 +
|-
 +
| 0x8 || 0x8 || Unknown. The default is 0x0.
 +
|}
 +
 +
This struct is "nn::applet::ApplicationLaunchRequestInfo". This struct is 0x10-bytes.
 +
 +
= AppletResourceUsageInfo =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || Unknown counter.
 +
|-
 +
| 0x4 || 0x4 || Unknown counter.
 +
|-
 +
| 0x8 || 0x4 || Output from [[NS_Services|NS GetRightsEnvironmentCountForDebug]].
 +
|-
 +
| 0xC || 0x14 || Always zero.
 +
|}
 +
 +
This struct is "nn::am::service::AppletResourceUsageInfo". This struct is 0x20-bytes.
    
= Notes =
 
= Notes =

Navigation menu