Applet Manager services: Difference between revisions
(21 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 23: | Line 25: | ||
|- | |- | ||
| 410 || [6.0.0+] [[#GetSystemAppletControllerForDebug]] || | | 410 || [6.0.0+] [[#GetSystemAppletControllerForDebug]] || | ||
|- | |||
| 450 || [19.0.0+] [[#GetSystemProcessCommonFunctions]] || | |||
|- | |||
| 460 || [20.0.0+] || | |||
|- | |- | ||
| 1000 || [6.0.0+] [[#GetDebugFunctions]] || | | 1000 || [6.0.0+] [[#GetDebugFunctions]] || | ||
Line 58: | 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 124: | Line 133: | ||
|- | |- | ||
| 51 || [16.0.0+] [[#LaunchStarter]] | | 51 || [16.0.0+] [[#LaunchStarter]] | ||
|- | |||
| 60 || [19.0.0+] | |||
|- | |||
| 61 || [19.0.0+] | |||
|- | |- | ||
| 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]] | | 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]] | ||
Line 441: | Line 454: | ||
|- | |- | ||
| 201 || [10.0.0+] [[#RestartApplicationTimer]] || | | 201 || [10.0.0+] [[#RestartApplicationTimer]] || | ||
|- | |||
| 300 || [20.0.0+] || | |||
|- | |||
| 301 || [20.0.0+] || | |||
|} | |} | ||
Line 606: | Line 623: | ||
| 81 || [14.0.0+] SetHandlingCaptureButtonLongPressedMessageEnabledForApplet | | 81 || [14.0.0+] SetHandlingCaptureButtonLongPressedMessageEnabledForApplet | ||
|- | |- | ||
| 82 || [18.0.0+] | | 82 || [18.0.0+] SetBlockingCaptureButtonInEntireSystem | ||
|- | |- | ||
| 90 || [15.0.0+] OpenNamedChannelAsParent | | 90 || [15.0.0+] OpenNamedChannelAsParent | ||
Line 614: | Line 631: | ||
| 100 || [15.0.0+] SetApplicationCoreUsageMode | | 100 || [15.0.0+] SetApplicationCoreUsageMode | ||
|- | |- | ||
| 160 || [18.0.0+] | | 160 || [18.0.0+] GetNotificationReceiverService | ||
|- | |||
| 161 || [18.0.0+] GetNotificationSenderService | |||
|- | |||
| 300 || [17.0.0+] GetCurrentApplicationId | |||
|- | |||
| 310 || [19.0.0+] IsSystemAppletHomeMenu | |||
|- | |||
| 311 || [20.0.0+] | |||
|- | |||
| 320 || [19.0.0+] SetGpuTimeSliceBoost | |||
|- | |||
| 321 || [19.0.0+] SetGpuTimeSliceBoostDueToApplication | |||
|- | |||
| 322 || [20.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 773: | Line 812: | ||
| 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] || | | 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] || | ||
|- | |- | ||
| 160 || [17.0.0+] [[# | | 160 || [17.0.0+] [[#GetLibraryAppletInfoEx]] || | ||
|} | |} | ||
Line 907: | Line 946: | ||
No input, returns an output u8 bool. | No input, returns an output u8 bool. | ||
==== | ==== GetLibraryAppletInfoEx ==== | ||
No input, returns an output u64. Currently always returns 0. | No input, returns an output u64. Currently always returns 0. | ||
Line 973: | Line 1,012: | ||
| 31 || [10.0.0+] [[#IsHealthWarningRequired]] | | 31 || [10.0.0+] [[#IsHealthWarningRequired]] | ||
|- | |- | ||
| 40 || [18.0.0+] | | 40 || [18.0.0+] GetApplicationNintendoLogo | ||
|- | |- | ||
| 41 || [18.0.0+] | | 41 || [18.0.0+] GetApplicationStartupMovie | ||
|- | |||
| 50 || [19.0.0+] SetGpuTimeSliceBoostForApplication | |||
|- | |||
| 60 || [19.0.0+] | |||
|- | |- | ||
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] | | 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] | ||
Line 1,156: | 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,190: | Line 1,237: | ||
|- | |- | ||
| 200 || [11.0.0+] [[#GetLastApplicationExitReason]] | | 200 || [11.0.0+] [[#GetLastApplicationExitReason]] | ||
|- | |||
| 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,458: | 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,484: | 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,515: | Line 1,592: | ||
|- | |- | ||
| 2 || [[#AreAnyLibraryAppletsLeft]] || | | 2 || [[#AreAnyLibraryAppletsLeft]] || | ||
|- | |||
| 3 || [20.0.0+] || | |||
|- | |- | ||
| 10 || [[#CreateStorage]] || | | 10 || [[#CreateStorage]] || | ||
Line 1,579: | Line 1,658: | ||
|- | |- | ||
| 60 || [10.0.0+] [[#PresetLibraryAppletGpuTimeSliceZero]] || | | 60 || [10.0.0+] [[#PresetLibraryAppletGpuTimeSliceZero]] || | ||
|- | |||
| 80 || [19.0.0+] RequestForLibraryAppletToGetForeground || | |||
|- | |||
| 81 || [19.0.0+] GetCurrentChildLibraryApplet || | |||
|- | |||
| 90 || [20.0.0+] || | |||
|- | |- | ||
| 100 || [[#PushInData]] || | | 100 || [[#PushInData]] || | ||
Line 1,687: | Line 1,772: | ||
|- | |- | ||
| 14 || [11.0.0+] [[#GetWakeupCount]] | | 14 || [11.0.0+] [[#GetWakeupCount]] | ||
|- | |||
| 15 || [19.0.0+] | |||
|- | |- | ||
| 20 || [[#PushToGeneralChannel]] | | 20 || [[#PushToGeneralChannel]] | ||
Line 1,758: | Line 1,845: | ||
| 503 || [12.0.0+] IsDisablingSleepSuppressed | | 503 || [12.0.0+] IsDisablingSleepSuppressed | ||
|- | |- | ||
| 600 || [17.0.0 | | 600 || [20.0.0+] ([17.0.0-18.1.0] OpenNamedChannelAsChild) | ||
|- | |- | ||
| 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]] | | 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]] | ||
|- | |- | ||
| 910 || [17.0.0+] GetLaunchRequiredTick | | 910 || [17.0.0+] GetLaunchRequiredTick | ||
|- | |||
| 1000 || [19.0.0+] BeginVrMode3d | |||
|- | |||
| 1001 || [19.0.0+] EndVrMode3d | |||
|- | |||
| 1002 || [19.0.0+] IsVrModeEnabled3d | |||
|} | |} | ||
Line 2,046: | Line 2,139: | ||
|- | |- | ||
| 21 || [13.0.0+] GetScreenShotProgramId | | 21 || [13.0.0+] GetScreenShotProgramId | ||
|- | |||
| 22 || [19.0.0+] GetScreenShotAcdIndex | |||
|- | |||
| 23 || [19.0.0+] GetScreenShotApparentPlatform | |||
|- | |||
| 24 || [19.0.0+] GetScreenShotApplicationProperty | |||
|- | |- | ||
| 40 || [[#CreateManagedDisplayLayer]] | | 40 || [[#CreateManagedDisplayLayer]] | ||
Line 2,104: | 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,431: | Line 2,542: | ||
|- | |- | ||
| 4 || [[#SetTransparentVolumeRate]] | | 4 || [[#SetTransparentVolumeRate]] | ||
|- | |||
| 5 || [20.0.0+] | |||
|} | |} | ||
Line 2,732: | 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,750: | 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,760: | Line 2,908: | ||
| 52 || [17.0.0+] GetProgramIdFromAppletIdForDebug | | 52 || [17.0.0+] GetProgramIdFromAppletIdForDebug | ||
|- | |- | ||
| 53 || [18.0.0+] | | 53 || [18.0.0+] GetProgramIdFromAppletIdAndLibraryAppletModeForDebug | ||
|- | |- | ||
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] | | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] | ||
Line 2,788: | Line 2,936: | ||
| 300 || [16.0.0+] TerminateAllRunningApplicationsForDebug | | 300 || [16.0.0+] TerminateAllRunningApplicationsForDebug | ||
|- | |- | ||
| 410 || [18.0.0+] | | 410 || [18.0.0+] CreateGeneralStorageForDebug | ||
|- | |- | ||
| 411 || [18.0.0+] | | 411 || [18.0.0+] ReadGeneralStorageForDebug | ||
|- | |- | ||
| 412 || [18.0.0+] | | 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,817: | 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,928: | 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,936: | 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. | ||
= | = (Switch 2) INxCompatApplicationFunctions = | ||
This is "nn:: | This is "nn::am::service::INxCompatApplicationFunctions". | ||
{| 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 || || | |||
|- | |- | ||
| | | 2020 || Initialize? || Called during init. Takes no args. | ||
|- | |- | ||
| | | 2030 || GetVsyncEvent? || Takes no args. Returns a event handle. | ||
|- | |- | ||
| | | 2040 || GetVsyncTimestamp? || When above event triggers, this returns a timestamp. | ||
|- | |- | ||
| | | 2050 || || | ||
|- | |- | ||
| | | 2060 || || | ||
|- | |- | ||
| | | 2070 || CreateMovieMaker || Same args as [[#CreateMovieMaker]]. Returns an [[#IMovieMaker]]. | ||
|} | |} | ||
== SetHandlingContext == | == (Switch 2) TipcCompatInterface == | ||
[3.0.0+] Now takes an additional 0x10-bytes of input. | {| class="wikitable" border="1" | ||
|- | |||
[13.0.0+] Total input size is now 0x30 instead of 0x38. | ! Cmd (adjusted - 16) || Name || Notes | ||
|- | |||
= omm = | | 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; }. | ||
This is "nn::omm::detail::IOperationModeManager" | |- | ||
| 11 || InitializeB || Sends current process handle. No args. Sent directly after cmd4. | |||
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*]]. | | 101 || InitializeC || Sent directly after cmd11. | ||
|- | |||
This was moved to [[OMM_services|omm]] with [14.0.0+]. | | 111 || || | ||
|- | |||
{| class="wikitable" border="1" | | 112 || || | ||
|- | |- | ||
! Cmd || Name | | 114 || || | ||
|- | |- | ||
| 0 || GetOperationMode | | 115 || || | ||
|- | |- | ||
| 1 || GetOperationModeChangeEvent | | 187 || || | ||
|- | |- | ||
| 2 || EnableAudioVisual | | 201 || || | ||
|- | |- | ||
| 3 || DisableAudioVisual | | 301 || || | ||
|- | |- | ||
| 4 || EnterSleepAndWait | | 327 || || | ||
|- | |- | ||
| 5 || GetCradleStatus | | 303 || || | ||
|- | |- | ||
| 6 || FadeInDisplay | | 311 || || | ||
|- | |- | ||
| 7 || FadeOutDisplay | | 312 || || | ||
|- | |- | ||
| 8 || [2.0.0+] GetCradleFwVersion | | 314 || || | ||
|- | |- | ||
| 9 || [2.0.0+] NotifyCecSettingsChanged | | 315 || || | ||
|- | |- | ||
| 10 || [3.0.0+] SetOperationModePolicy | | 321 || || | ||
|- | |- | ||
| 11 || [3.0.0+] GetDefaultDisplayResolution | | 391 || || | ||
|- | |- | ||
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent | | 401 || || | ||
|- | |- | ||
| 13 || [3.0.0+] UpdateDefaultDisplayResolution | | 402 || || | ||
|- | |- | ||
| 423 || || | |||
|- | |||
| 434 || || | |||
|- | |||
| 497 || || | |||
|- | |||
| 901 || || | |||
|- | |||
| 902 || || | |||
|- | |||
| 903 || || | |||
|- | |||
| 905 || || | |||
|- | |||
| 911 || || | |||
|- | |||
| 912 || || | |||
|- | |||
| 922 || || | |||
|- | |||
| 961 || || | |||
|- | |||
| 991 || || | |||
|- | |||
| 1001 || || | |||
|- | |||
| 1002 || || | |||
|- | |||
| 1003 || || | |||
|- | |||
| 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 || || | |||
|} | |||
== (Switch 2) INvDrv2User == | |||
This is "nn::nvdrv::INvDrv2User". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || Open | |||
|- | |||
| 1 || Ioctl | |||
|- | |||
| 2 || Close | |||
|- | |||
| 4 || QueryEvent | |||
|- | |||
| 9 || DumpStatus | |||
|- | |||
| 10 || InitializeDevtools | |||
|- | |||
| 11 || Ioctl2 | |||
|- | |||
| 12 || Ioctl3 | |||
|- | |||
| 13 || SetGraphicsFirmwareMemoryMarginEnabled | |||
|} | |||
= idle:sys = | |||
This is "nn::idle::detail::IPolicyManagerSystem" | |||
This was moved to [[OMM_services|omm]] with [14.0.0+]. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || GetAutoPowerDownEvent | |||
|- | |||
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] ) | |||
|- | |||
| 2 || [1.0.0-3.0.2] | |||
|- | |||
| 3 || [[#SetHandlingContext]] | |||
|- | |||
| 4 || LoadAndApplySettings | |||
|- | |||
| 5 || ReportUserIsActive | |||
|} | |||
== SetHandlingContext == | |||
[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" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || GetOperationMode | |||
|- | |||
| 1 || GetOperationModeChangeEvent | |||
|- | |||
| 2 || EnableAudioVisual | |||
|- | |||
| 3 || DisableAudioVisual | |||
|- | |||
| 4 || EnterSleepAndWait | |||
|- | |||
| 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 | | 14 || [3.0.0+] ShouldSleepOnBoot | ||
|- | |- | ||
Line 3,125: | Line 3,454: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 32 || [7.0.0+] SetShimLibraryVersion | | 32 || [7.0.0+] [[#SetShimLibraryVersion]] | ||
|- | |- | ||
| 201 || SaveScreenShot | | 201 || [[#SaveScreenShot]] | ||
|- | |- | ||
| 203 || SaveScreenShotEx0 | | 203 || [[#SaveScreenShotEx0]] | ||
|- | |- | ||
| 205 || [8.0.0+] SaveScreenShotEx1 | | 205 || [8.0.0+] [[#SaveScreenShotEx1]] | ||
|- | |- | ||
| 210 || SaveScreenShotEx2 | | 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 == | == SaveScreenShot == | ||
Line 3,307: | 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,355: | 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+] | | [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+] | | [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+] | | [17.0.0+] LibraryAppletShare ([16.0.0-16.1.0] ) ([[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] in NX) | ||
|- | |- | ||
| 0x38 | | 0x38 | ||
Line 3,384: | Line 3,716: | ||
| 0100000000001007 | | 0100000000001007 | ||
| [18.0.0+] | | [18.0.0+] | ||
|- | |||
| 0x64 | |||
| 0100000000001048 | |||
| [20.0.0+] [[Splay_Applet|splay]] | |||
|- | |- | ||
| 0x3E8 | | 0x3E8 | ||
Line 3,508: | Line 3,844: | ||
| 010000000000D60E | | 010000000000D60E | ||
| [17.0.0+] AppletILA2 | | [17.0.0+] AppletILA2 | ||
|- | |||
| 0x700000FA | |||
| 010000000000D677 | |||
| [20.1.0+] | |||
|} | |} | ||