Applet Manager services: Difference between revisions

 
(18 intermediate revisions by 3 users not shown)
Line 11: Line 11:
|-
|-
| 100 || OpenSystemAppletProxy || Returns an [[#ISystemAppletProxy]].
| 100 || OpenSystemAppletProxy || Returns an [[#ISystemAppletProxy]].
|-
| 110 || [20.0.0+] ||
|-
|-
| 200 || OpenLibraryAppletProxyOld ([1.0.0-2.3.0] OpenLibraryAppletProxy) || Returns an [[#ILibraryAppletProxy]].
| 200 || OpenLibraryAppletProxyOld ([1.0.0-2.3.0] OpenLibraryAppletProxy) || Returns an [[#ILibraryAppletProxy]].
Line 24: Line 26:
| 410 || [6.0.0+] [[#GetSystemAppletControllerForDebug]] ||  
| 410 || [6.0.0+] [[#GetSystemAppletControllerForDebug]] ||  
|-
|-
| 450 || [19.0.0+] GetSystemProcessCommonFunctions ||  
| 450 || [19.0.0+] [[#GetSystemProcessCommonFunctions]] ||
|-
| 460 || [20.0.0+] ||
|-
|-
| 1000 || [6.0.0+] [[#GetDebugFunctions]] ||  
| 1000 || [6.0.0+] [[#GetDebugFunctions]] ||  
Line 60: Line 64:


The cached value loaded from [[System_Settings|system-setting]] <code>am.debug!dev_function</code> must be set to 0x1 with size 0x1, and various state checks must pass, otherwise 0 is returned with no output interface.
The cached value loaded from [[System_Settings|system-setting]] <code>am.debug!dev_function</code> must be set to 0x1 with size 0x1, and various state checks must pass, otherwise 0 is returned with no output interface.
== GetSystemProcessCommonFunctions ==
No input. Returns an [[#ISystemProcessCommonFunctions]].


== GetDebugFunctions ==
== GetDebugFunctions ==
Line 447: Line 454:
|-
|-
| 201 || [10.0.0+] [[#RestartApplicationTimer]] ||
| 201 || [10.0.0+] [[#RestartApplicationTimer]] ||
|-
| 300 || [20.0.0+] ||
|-
| 301 || [20.0.0+] ||
|}
|}


Line 627: Line 638:
|-
|-
| 310 || [19.0.0+] IsSystemAppletHomeMenu
| 310 || [19.0.0+] IsSystemAppletHomeMenu
|-
| 311 || [20.0.0+]
|-
|-
| 320 || [19.0.0+] SetGpuTimeSliceBoost
| 320 || [19.0.0+] SetGpuTimeSliceBoost
|-
|-
| 321 || [19.0.0+] SetGpuTimeSliceBoostDueToApplication
| 321 || [19.0.0+] SetGpuTimeSliceBoostDueToApplication
|-
| 322 || [20.0.0+]
|-
|-
| 330 || [19.0.0+]  
| 330 || [19.0.0+]  
|-
| 340 || [20.0.0+]
|-
| 341 || [20.0.0+]
|-
| 342 || [20.0.0+]
|-
| 350 || [20.0.0+]
|-
| 360 || [20.0.0+]
|}
|}


Line 1,174: Line 1,199:
|-
|-
| 111 || [6.0.0+] [[#QueryApplicationPlayStatisticsByUid]]
| 111 || [6.0.0+] [[#QueryApplicationPlayStatisticsByUid]]
|-
| 112 || [20.0.0+]
|-
| 113 || [20.0.0+]
|-
|-
| 120 || [5.0.0+] [[#ExecuteProgram]]
| 120 || [5.0.0+] [[#ExecuteProgram]]
Line 1,209: Line 1,238:
| 200 || [11.0.0+] [[#GetLastApplicationExitReason]]
| 200 || [11.0.0+] [[#GetLastApplicationExitReason]]
|-
|-
| 300 || [19.0.0+] CreateMovieWriter
| 210 || [20.0.0+]
|-
| 220 || [20.0.0+]
|-
| 300 || [19.0.0+] [[#CreateMovieWriter]]
|-
| 310 || [20.0.0+]
|-
| 320 || [20.0.0+]
|-
|-
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]]
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]]
Line 1,478: Line 1,515:
==== GetLastApplicationExitReason ====
==== GetLastApplicationExitReason ====
No input, returns an output s32.
No input, returns an output s32.
==== CreateMovieWriter ====
Takes 8-bytes of input and a handle. Returns an [[#IMovieWriter]].
This internally uses the GRC cmd to open an [[GRC_services|IMovieWriter]]. This is therefore not usable on NX since that cmd is stubbed.


==== StartContinuousRecordingFlushForDebug ====
==== StartContinuousRecordingFlushForDebug ====
Line 1,504: Line 1,546:


AM can also optionally launch jit-sysmodule automatically if the [[NACP]] enables it.
AM can also optionally launch jit-sysmodule automatically if the [[NACP]] enables it.
=== IMovieWriter ===
This is "nn::am::service::IMovieWriter".
This was added with [19.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|}
==== Cmd0 ====
No input. Returns a GRC [[GRC_services|IMovieWriter]].


=== IMovieMaker ===
=== IMovieMaker ===
Line 1,535: Line 1,592:
|-
|-
| 2 || [[#AreAnyLibraryAppletsLeft]] ||
| 2 || [[#AreAnyLibraryAppletsLeft]] ||
|-
| 3 || [20.0.0+] ||
|-
|-
| 10 || [[#CreateStorage]] ||  
| 10 || [[#CreateStorage]] ||  
Line 1,603: Line 1,662:
|-
|-
| 81 || [19.0.0+] GetCurrentChildLibraryApplet ||
| 81 || [19.0.0+] GetCurrentChildLibraryApplet ||
|-
| 90 || [20.0.0+] ||
|-
|-
| 100 || [[#PushInData]] ||  
| 100 || [[#PushInData]] ||  
Line 1,784: Line 1,845:
| 503 || [12.0.0+] IsDisablingSleepSuppressed
| 503 || [12.0.0+] IsDisablingSleepSuppressed
|-
|-
| 600 || [17.0.0-18.1.0] OpenNamedChannelAsChild
| 600 || [20.0.0+] ([17.0.0-18.1.0] OpenNamedChannelAsChild)
|-
|-
| 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]]
| 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]]
Line 2,142: Line 2,203:
|-
|-
| 130 || [13.0.0+] [[#SetRecordVolumeMuted]]
| 130 || [13.0.0+] [[#SetRecordVolumeMuted]]
|-
| 200 || [20.0.0+]
|-
| 210 || [20.0.0+]
|-
| 211 || [20.0.0+]
|-
| 220 || [20.0.0+]
|-
| 221 || [20.0.0+]
|-
| 230 || [20.0.0+]
|-
|-
| 1000 || [7.0.0+] [[#GetDebugStorageChannel]]
| 1000 || [7.0.0+] [[#GetDebugStorageChannel]]
Line 2,469: Line 2,542:
|-
|-
| 4 || [[#SetTransparentVolumeRate]]
| 4 || [[#SetTransparentVolumeRate]]
|-
| 5 || [20.0.0+]
|}
|}


Line 2,770: Line 2,845:
=== ReserveToStartAndWait ===
=== ReserveToStartAndWait ===
Takes an input [[#ILibraryAppletAccessor]], no output.
Takes an input [[#ILibraryAppletAccessor]], no output.
== ISystemProcessCommonFunctions ==
This is "nn::am::service::ISystemProcessCommonFunctions".
This was added with [19.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|}
=== Cmd0 ===
No input. Returns an [[#IApplicationObserver]].
=== IApplicationObserver ===
This is "nn::am::service::IApplicationObserver".
This was added with [19.0.0+].
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 1 ||
|-
| 2 ||
|-
| 10 ||
|-
| 20 ||
|-
| 30 ||
|}


== IDebugFunctions ==
== IDebugFunctions ==
Line 2,788: Line 2,898:
| 30 || [6.0.0+] [[#RequestLaunchApplicationWithUserAndArgumentForDebug]]
| 30 || [6.0.0+] [[#RequestLaunchApplicationWithUserAndArgumentForDebug]]
|-
|-
| 31 || [12.0.0+] RequestLaunchApplicationByApplicationLaunchInfoForDebug
| 31 || [12.0.0+] [[#RequestLaunchApplicationByApplicationLaunchInfoForDebug]]
|-
|-
| 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]]
| 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]]
Line 2,831: Line 2,941:
|-
|-
| 412 || [18.0.0+] WriteGeneralStorageForDebug
| 412 || [18.0.0+] WriteGeneralStorageForDebug
|-
| 430 || [20.0.0+]
|-
| 431 || [20.0.0+]
|-
|-
| 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent
| 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent
|-
| 910 || [20.0.0+]
|}
|}


Line 2,855: Line 2,971:


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]]).
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]]).
=== RequestLaunchApplicationByApplicationLaunchInfoForDebug ===
Takes a total of 0x58-bytes of input, a type-0x5 input buffer containing an array of 0x10-byte entries, and a type-0x5 input buffer. No output.
[19.0.0+] Takes a total of 0x88-bytes of input, a type-0x5 input buffer containing an array of 0x10-byte entries, and a type-0x5 input buffer. No output.


=== GetAppletResourceUsageInfo ===
=== GetAppletResourceUsageInfo ===
Line 2,966: Line 3,087:


This is used by all regular-applications, including [[flog]] and "Retail Interactive Display Menu". Only one session can be open for this service at a time.
This is used by all regular-applications, including [[flog]] and "Retail Interactive Display Menu". Only one session can be open for this service at a time.
= (Switch 2) appletOE =
[S2] This is "nn::am::service::IApplicationProxyServiceForNxCompat".
{| class="wikitable" border="1"
|-
! Cmd || Name || Notes
|-
| 0 || [[#OpenApplicationProxy]] ||
|-
| 2000 || [[#OpenCompatApplicationFunctions]] ||  Returns an [[#(Switch 2) INxCompatApplicationFunctions]]
|}


== OpenApplicationProxy ==
== OpenApplicationProxy ==
Line 2,974: Line 3,107:
On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first.
On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first.


= idle:sys =
= (Switch 2) INxCompatApplicationFunctions =
This is "nn::idle::detail::IPolicyManagerSystem"
This is "nn::am::service::INxCompatApplicationFunctions".
 
This was moved to [[OMM_services|omm]] with [14.0.0+].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name
! Cmd || Name || Notes
|-
| 2000 || GetTipcCompatInterface? || Returns a TIPC handle to [[#TipcCompatInterface]].
|-
| 2001 || ||
|-
| 2002 || ||
|-
| 2003 || || Called directly after "nn::vi::WriteToCopyrightFramebuffer".
|-
| 2004 || ||
|-
| 2010 || ||
|-
|-
| 0 || GetAutoPowerDownEvent
| 2020 || Initialize? || Called during init. Takes no args.
|-
|-
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] )
| 2030 || GetVsyncEvent? || Takes no args. Returns a event handle.
|-
|-
| 2 || [1.0.0-3.0.2]
| 2040 || GetVsyncTimestamp? || When above event triggers, this returns a timestamp.
|-
|-
| 3 || [[#SetHandlingContext]]
| 2050 || ||
|-
|-
| 4 || LoadAndApplySettings
| 2060 ||  ||  
|-
|-
| 5 || ReportUserIsActive
| 2070 || CreateMovieMaker || Same args as [[#CreateMovieMaker]]. Returns an [[#IMovieMaker]].
|}
|}


== SetHandlingContext ==
== (Switch 2) TipcCompatInterface ==
[3.0.0+] Now takes an additional 0x10-bytes of input.
 
[13.0.0+] Total input size is now 0x30 instead of 0x38.
 
= omm =
This is "nn::omm::detail::IOperationModeManager"
 
Operation Mode Manager (OMM) is a service responsible for arbitrating the operation changes between docked and handheld modes.
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
 
This was moved to [[OMM_services|omm]] with [14.0.0+].
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name
! Cmd (adjusted - 16) || Name || Notes
|-
|-
| 0 || GetOperationMode
| 4 || InitializeA || Sends current process handle, and struct { u64 aruid; u64 always_0x8000000000000005; u64 always_0; u64 always_0; u64 always_0; u64 svc_get_info_31_or_32_output; }.
|-
|-
| 1 || GetOperationModeChangeEvent
| 11 || InitializeB || Sends current process handle. No args. Sent directly after cmd4.
|-
|-
| 2 || EnableAudioVisual
| 101 || InitializeC || Sent directly after cmd11.
|-
|-
| 3 || DisableAudioVisual
| 111 || ||
|-
|-
| 4 || EnterSleepAndWait
| 112 || ||
|-
|-
| 5 || GetCradleStatus
| 114 || ||
|-
|-
| 6 || FadeInDisplay
| 115 || ||
|-
|-
| 7 || FadeOutDisplay
| 187 || ||
|-
|-
| 8 || [2.0.0+] GetCradleFwVersion
| 201 || ||
|-
|-
| 9 || [2.0.0+] NotifyCecSettingsChanged
| 301 || ||
|-
|-
| 10 || [3.0.0+] SetOperationModePolicy
| 327 || ||
|-
|-
| 11 || [3.0.0+] GetDefaultDisplayResolution
| 303 || ||
|-
|-
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent
| 311 || ||
|-
|-
| 13 || [3.0.0+] UpdateDefaultDisplayResolution
| 312 || ||
|-
|-
| 14 || [3.0.0+] ShouldSleepOnBoot
| 314 || ||
|-
|-
| 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted
| 315 || ||
|-
|-
| 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished
| 321 || ||
|-
|-
| 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted
| 391 || ||
|-
|-
| 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished
| 401 || ||
|-
|-
| 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent
| 402 || ||
|-
|-
| 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled
| 423 || ||
|-
|-
| 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation
| 434 || ||
|-
|-
| 22 || [4.0.0+] GetHdcpStateChangeEvent
| 497 || ||
|-
|-
| 23 || [4.0.0+] GetHdcpState
| 901 || ||
|-
|-
| 24 || [5.0.0+] ShowCardUpdateProcessing
| 902 || ||
|-
|-
| 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged
| 903 || ||
|-
|-
| 26 || [7.0.0+] [[#GetOperationModeSystemInfo]]
| 905 || ||
|-
|-
| 27 || [9.0.0+] GetAppletFullAwakingSystemEvent
| 911 || ||
|-
|-
| 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]]
| 912 || ||
|}
 
== GetOperationModeSystemInfo ==
No input, returns an output u32.
 
This is used by [[#GetOperationModeSystemInfo|ICommonStateGetter GetOperationModeSystemInfo]].
 
== CreateCradleFirmwareUpdater ==
No input. Returns an [[#ICradleFirmwareUpdater]].
 
== ICradleFirmwareUpdater ==
This is "nn::am::service::ICradleFirmwareUpdater".
 
This was added with [12.0.0+].
 
{| class="wikitable" border="1"
|-
|-
! Cmd || Name
| 922 || ||
|-
|-
| 0 || Start
| 961 || ||
|-
|-
| 1 || Finish
| 991 || ||
|-
|-
| 2 || GetUpdateDeviceStatus
| 1001 || ||
|-
|-
| 3 || GetUpdateProgress
| 1002 || ||
|-
|-
| 4 || GetUpdateDeviceStatusChangeEvent
| 1003 || ||
|-
|-
| 5 || GetUpdateProgress2
| 1101 || ||
|-
| 1102 || ||
|-
| 1401 || InitializeNvdrv2WithTransferMemory || Takes a TransferMemory handle, and u64 size. Returns an [[#INvDrv2User]].
|-
| 1402 || InitializeNvdrv2 || Returns an [[#INvDrv2User]].
|-
| 1501 || ||
|-
| 1502 || ||
|-
| 1601 || ||
|-
| 1602 || ||
|-
| 1603 || ||
|-
| 1611 || ||
|-
| 1612 || ||
|-
| 1691 || ||
|}
|}


= spsm =
== (Switch 2) INvDrv2User ==
This is "nn::spsm::detail::IPowerStateInterface".
This is "nn::nvdrv::INvDrv2User".
 
This was moved to [[OMM_services|omm]] with [14.0.0+].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,111: Line 3,246:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetCurrentState
| 0 || Open
|-
|-
| 1 || EnterSleep
| 1 || Ioctl
|-
|-
| 2 || GetLastWakeReason
| 2 || Close
|-
|-
| 3 || Shutdown
| 4 || QueryEvent
|-
|-
| 4 || GetNotificationMessageEventHandle
| 9 || DumpStatus
|-
| 5 || ReceiveNotificationMessage
|-
| 6 || AnalyzeLogForLastSleepWakeSequence
|-
|-
| 7 || ResetEventLog
| 10 || InitializeDevtools
|-
|-
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence
| 11 || Ioctl2
|-
|-
| 9 || ChangeHomeButtonLongPressingTime
| 12 || Ioctl3
|-
|-
| 10 || PutErrorState
| 13 || SetGraphicsFirmwareMemoryMarginEnabled
|-
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
|}
|}


[3.0.0+] Cmd11 now takes a total of 8-bytes of input.
= idle:sys =
This is "nn::idle::detail::IPolicyManagerSystem"


= tcap =
This was moved to [[OMM_services|omm]] with [14.0.0+].
This is "nn::tcap::server::IManager".
 
This was removed with [11.0.0+].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 3,147: Line 3,274:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetContinuousHighSkinTemperatureEvent
| 0 || GetAutoPowerDownEvent
|-
|-
| 1 || SetOperationMode
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] )
|-
|-
| 2 || LoadAndApplySettings
| 2 || [1.0.0-3.0.2]
|}
|-
 
| 3 || [[#SetHandlingContext]]
= caps:su =
|-
This is "nn::capsrv::sf::IScreenShotApplicationService".
| 4 || LoadAndApplySettings
 
|-
This was added with [6.0.0+].
| 5 || ReportUserIsActive
 
|}
This can be used by applications to save screenshots.
 
 
== SetHandlingContext ==
{| class="wikitable" border="1"
[3.0.0+] Now takes an additional 0x10-bytes of input.
|-
 
! Cmd || Name
[13.0.0+] Total input size is now 0x30 instead of 0x38.
|-
 
| 32 || [7.0.0+] [[#SetShimLibraryVersion]]
= omm =
|-
This is "nn::omm::detail::IOperationModeManager"
| 201 || [[#SaveScreenShot]]
 
|-
Operation Mode Manager (OMM) is a service responsible for arbitrating the operation changes between docked and handheld modes.
| 203 || [[#SaveScreenShotEx0]]
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
|-
 
| 205 || [8.0.0+] [[#SaveScreenShotEx1]]
This was moved to [[OMM_services|omm]] with [14.0.0+].
|-
 
| 210 || [[#SaveScreenShotEx2]]
{| class="wikitable" border="1"
|}
|-
 
! Cmd || Name
== SetShimLibraryVersion ==
|-
Takes a total of 0x10-bytes of input and a PID, no output.
| 0 || GetOperationMode
 
|-
This is a wrapper for [[Capture_services|caps:c]] cmd33. Commands '''SaveScreenShot''', '''SaveScreenShotEx0''', '''SaveScreenShotEx1''' and '''SaveScreenShotEx2''' are wrappers for [[Display_services|caps:sc]] cmd210.
| 1 || GetOperationModeChangeEvent
 
|-
== SaveScreenShot ==
| 2 || EnableAudioVisual
Takes two input u32s, an u64 AppletResourceUserId, a PID, and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
|-
 
| 3 || DisableAudioVisual
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.
|-
 
| 4 || EnterSleepAndWait
This cmd internally uses an all-zero ScreenShotAttributeEx0, with u32 +0 = input u32 and u32 +0x8 = 0x3.
|-
 
| 5 || GetCradleStatus
|-
| 6 || FadeInDisplay
|-
| 7 || FadeOutDisplay
|-
| 8 || [2.0.0+] GetCradleFwVersion
|-
| 9 || [2.0.0+] NotifyCecSettingsChanged
|-
| 10 || [3.0.0+] SetOperationModePolicy
|-
| 11 || [3.0.0+] GetDefaultDisplayResolution
|-
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent
|-
| 13 || [3.0.0+] UpdateDefaultDisplayResolution
|-
| 14 || [3.0.0+] ShouldSleepOnBoot
|-
| 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted
|-
| 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished
|-
| 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted
|-
| 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished
|-
| 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent
|-
| 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled
|-
| 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation
|-
| 22 || [4.0.0+] GetHdcpStateChangeEvent
|-
| 23 || [4.0.0+] GetHdcpState
|-
| 24 || [5.0.0+] ShowCardUpdateProcessing
|-
| 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged
|-
| 26 || [7.0.0+] [[#GetOperationModeSystemInfo]]
|-
| 27 || [9.0.0+] GetAppletFullAwakingSystemEvent
|-
| 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]]
|}
 
== GetOperationModeSystemInfo ==
No input, returns an output u32.
 
This is used by [[#GetOperationModeSystemInfo|ICommonStateGetter GetOperationModeSystemInfo]].
 
== CreateCradleFirmwareUpdater ==
No input. Returns an [[#ICradleFirmwareUpdater]].
 
== ICradleFirmwareUpdater ==
This is "nn::am::service::ICradleFirmwareUpdater".
 
This was added with [12.0.0+].
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || Start
|-
| 1 || Finish
|-
| 2 || GetUpdateDeviceStatus
|-
| 3 || GetUpdateProgress
|-
| 4 || GetUpdateDeviceStatusChangeEvent
|-
| 5 || GetUpdateProgress2
|}
 
= spsm =
This is "nn::spsm::detail::IPowerStateInterface".
 
This was moved to [[OMM_services|omm]] with [14.0.0+].
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetCurrentState
|-
| 1 || EnterSleep
|-
| 2 || GetLastWakeReason
|-
| 3 || Shutdown
|-
| 4 || GetNotificationMessageEventHandle
|-
| 5 || ReceiveNotificationMessage
|-
| 6 || AnalyzeLogForLastSleepWakeSequence
|-
| 7 || ResetEventLog
|-
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence
|-
| 9 || ChangeHomeButtonLongPressingTime
|-
| 10 || PutErrorState
|-
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
|}
 
[3.0.0+] Cmd11 now takes a total of 8-bytes of input.
 
= tcap =
This is "nn::tcap::server::IManager".
 
This was removed with [11.0.0+].
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetContinuousHighSkinTemperatureEvent
|-
| 1 || SetOperationMode
|-
| 2 || LoadAndApplySettings
|}
 
= caps:su =
This is "nn::capsrv::sf::IScreenShotApplicationService".
 
This was added with [6.0.0+].
 
This can be used by applications to save screenshots.
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 32 || [7.0.0+] [[#SetShimLibraryVersion]]
|-
| 201 || [[#SaveScreenShot]]
|-
| 203 || [[#SaveScreenShotEx0]]
|-
| 205 || [8.0.0+] [[#SaveScreenShotEx1]]
|-
| 210 || [[#SaveScreenShotEx2]]
|}
 
== SetShimLibraryVersion ==
Takes a total of 0x10-bytes of input and a PID, no output.
 
This is a wrapper for [[Capture_services|caps:c]] cmd33. Commands '''SaveScreenShot''', '''SaveScreenShotEx0''', '''SaveScreenShotEx1''' and '''SaveScreenShotEx2''' are wrappers for [[Display_services|caps:sc]] cmd210.
 
== SaveScreenShot ==
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.
 
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 containing image data. Returns an [[Capture_services|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]].
Line 3,348: Line 3,639:
| 0x17
| 0x17
| 010000000000100F
| 010000000000100F
| [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
| [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] (LibraryAppletOfflineWebApp_0 in Ounce)
|-
|-
| 0x18
| 0x18
Line 3,396: Line 3,687:
| 0x32
| 0x32
| 010000000000100F
| 010000000000100F
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
| [17.0.0+] LibraryAppletOfflineWebApp_3 ([[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] in NX)
|-
|-
| 0x33
| 0x33
| 010000000000100F
| 010000000000100F
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
| [17.0.0+] LibraryAppletOfflineWebSystem ([[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] in NX)
|-
|-
| 0x35
| 0x35
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
| [17.0.0+] LibraryAppletLhub ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX)
|-
|-
| 0x36
| 0x36
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
| [17.0.0+] LibraryAppletLogin ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX)
|-
|-
| 0x37
| 0x37
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
| [17.0.0+] LibraryAppletShare ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX)
|-
|-
| 0x38
| 0x38
Line 3,425: Line 3,716:
| 0100000000001007
| 0100000000001007
| [18.0.0+]
| [18.0.0+]
|-
| 0x64
| 0100000000001048
| [20.0.0+] [[Splay_Applet|splay]]
|-
|-
| 0x3E8
| 0x3E8
Line 3,549: Line 3,844:
| 010000000000D60E
| 010000000000D60E
| [17.0.0+] AppletILA2
| [17.0.0+] AppletILA2
|-
| 0x700000FA
| 010000000000D677
| [20.1.0+]
|}
|}