Line 65: |
Line 65: |
| | | |
| == ISystemAppletProxy == | | == ISystemAppletProxy == |
| + | This is "nn::am::service::ISystemAppletProxy". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 95: |
Line 97: |
| | | |
| === IHomeMenuFunctions === | | === IHomeMenuFunctions === |
| + | This is "nn::am::service::IHomeMenuFunctions". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 116: |
Line 120: |
| |- | | |- |
| | 41 || [12.0.0+] [[#IsRebootEnabled]] | | | 41 || [12.0.0+] [[#IsRebootEnabled]] |
| + | |- |
| + | | 50 || [16.0.0+] [[#LaunchSystemApplet]] |
| + | |- |
| + | | 51 || [16.0.0+] [[#LaunchStarter]] |
| |- | | |- |
| | 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]] | | | 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]] |
Line 156: |
Line 164: |
| ==== IsRebootEnabled ==== | | ==== IsRebootEnabled ==== |
| No input, returns an output bool. | | No input, returns an output bool. |
| + | |
| + | ==== LaunchSystemApplet ==== |
| + | No input/output. |
| + | |
| + | This wraps [[NS_Services|ns]] LaunchSystemApplet, ignoring the u64 returned by that cmd (and other functionality). |
| + | |
| + | ==== LaunchStarter ==== |
| + | No input/output. |
| + | |
| + | This is similar to [[#LaunchSystemApplet]], except this uses [[NS_Services|ns]] LaunchLibraryApplet with a ProgramId from global state. |
| + | |
| + | The global state field is initialized elsewhere with the value of [[System_Settings|system-setting]] <code>am.debug!starter_id</code>, defaulting to ProgramId 0100000000001012 ([[Title_list|starter]]) if not available. |
| | | |
| ==== PopRequestLaunchApplicationForDebug ==== | | ==== PopRequestLaunchApplicationForDebug ==== |
Line 172: |
Line 192: |
| The cached value loaded from [[Settings_services#GetDebugModeFlag]] must be 1, otherwise an error is returned. | | The cached value loaded from [[Settings_services#GetDebugModeFlag]] must be 1, otherwise an error is returned. |
| | | |
− | Uses [[NS_Services#IApplicationManagerInterface]] cmd99. | + | Uses [[NS_Services|ns]] LaunchDevMenu. |
| | | |
| This is used by [[qlaunch]]. On success, official sw will enter an infinite loop with sleep-thread value 86400000000000. | | This is used by [[qlaunch]]. On success, official sw will enter an infinite loop with sleep-thread value 86400000000000. |
Line 180: |
Line 200: |
| | | |
| ==== ILockAccessor ==== | | ==== ILockAccessor ==== |
| + | This is "nn::am::service::ILockAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 210: |
Line 232: |
| | | |
| === IGlobalStateController === | | === IGlobalStateController === |
| + | This is "nn::am::service::IGlobalStateController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 311: |
Line 335: |
| | 1 || FinishUpdate | | | 1 || FinishUpdate |
| |- | | |- |
− | | 2 || GetCradleDeviceInfo | + | | 2 || [[#GetCradleDeviceInfo]] |
| |- | | |- |
| | 3 || GetCradleDeviceInfoChangeEvent | | | 3 || GetCradleDeviceInfoChangeEvent |
Line 319: |
Line 343: |
| | 5 || GetLastInternalResult | | | 5 || GetLastInternalResult |
| |} | | |} |
| + | |
| + | ==== GetCradleDeviceInfo ==== |
| + | No input, returns a 8-byte CradleDeviceInfo. |
| + | |
| + | [13.0.0+] Now returns a total of 0xC-bytes. |
| | | |
| === IApplicationCreator === | | === IApplicationCreator === |
| + | This is "nn::am::service::IApplicationCreator". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 353: |
Line 384: |
| | | |
| ==== IApplicationAccessor ==== | | ==== IApplicationAccessor ==== |
| + | This is "nn::am::service::IApplicationAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 495: |
Line 528: |
| | | |
| ===== IAppletAccessor ===== | | ===== IAppletAccessor ===== |
| + | This is "nn::am::service::IAppletAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 531: |
Line 566: |
| | | |
| == IAppletCommonFunctions == | | == IAppletCommonFunctions == |
− | Added with [[7.0.0]].
| + | This is "nn::am::service::IAppletCommonFunctions". |
| + | |
| + | This was added with [7.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 564: |
Line 601: |
| |- | | |- |
| | 70 || [11.0.0+] [[#SetCpuBoostRequestPriority]] | | | 70 || [11.0.0+] [[#SetCpuBoostRequestPriority]] |
| + | |- |
| + | | 80 || [14.0.0+] SetHandlingCaptureButtonShortPressedMessageEnabledForApplet |
| + | |- |
| + | | 81 || [14.0.0+] SetHandlingCaptureButtonLongPressedMessageEnabledForApplet |
| + | |- |
| + | | 82 || [18.0.0+] |
| + | |- |
| + | | 90 || [15.0.0+] OpenNamedChannelAsParent |
| + | |- |
| + | | 91 || [15.0.0+] OpenNamedChannelAsChild |
| + | |- |
| + | | 100 || [15.0.0+] SetApplicationCoreUsageMode |
| + | |- |
| + | | 160 || [18.0.0+] |
| + | |- |
| + | | 161 || [18.0.0+] |
| + | |- |
| + | | 300 || [17.0.0+] |
| |} | | |} |
| | | |
Line 610: |
Line 665: |
| | | |
| == ILibraryAppletProxy == | | == ILibraryAppletProxy == |
| + | This is "nn::am::service::ILibraryAppletProxy". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 631: |
Line 688: |
| |- | | |- |
| | 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]]. | | | 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]]. |
| + | |- |
| + | | 22 || [15.0.0+] GetHomeMenuFunctions || No input, returns an [[#IHomeMenuFunctions]]. |
| + | |- |
| + | | 23 || [15.0.0+] GetGlobalStateController || No input, returns an [[#IGlobalStateController]]. |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
Line 636: |
Line 697: |
| | | |
| === ILibraryAppletSelfAccessor === | | === ILibraryAppletSelfAccessor === |
| + | This is "nn::am::service::ILibraryAppletSelfAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 709: |
Line 772: |
| |- | | |- |
| | 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] || | | | 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] || |
| + | |- |
| + | | 160 || [17.0.0+] [[#Cmd160]] || |
| |} | | |} |
| | | |
Line 841: |
Line 906: |
| ==== ShouldSetGpuTimeSliceManually ==== | | ==== ShouldSetGpuTimeSliceManually ==== |
| No input, returns an output u8 bool. | | No input, returns an output u8 bool. |
| + | |
| + | ==== Cmd160 ==== |
| + | No input, returns an output u64. Currently always returns 0. |
| | | |
| == IOverlayAppletProxy == | | == IOverlayAppletProxy == |
| + | This is "nn::am::service::IOverlayAppletProxy". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 864: |
Line 934: |
| |- | | |- |
| | 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]]. | | | 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]]. |
| + | |- |
| + | | 23 || [15.0.0+] GetGlobalStateController || No input, returns an [[#IGlobalStateController]]. |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
Line 869: |
Line 941: |
| | | |
| === IOverlayFunctions === | | === IOverlayFunctions === |
| + | This is "nn::am::service::IOverlayFunctions". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 892: |
Line 966: |
| |- | | |- |
| | 20 || [8.0.0+] [[#SetHandlingHomeButtonShortPressedEnabled]] | | | 20 || [8.0.0+] [[#SetHandlingHomeButtonShortPressedEnabled]] |
| + | |- |
| + | | 21 || [14.0.0+] SetHandlingTouchScreenInputEnabled |
| |- | | |- |
| | 30 || [9.0.0+] [[#SetHealthWarningShowingState]] | | | 30 || [9.0.0+] [[#SetHealthWarningShowingState]] |
Line 897: |
Line 973: |
| | 31 || [10.0.0+] [[#IsHealthWarningRequired]] | | | 31 || [10.0.0+] [[#IsHealthWarningRequired]] |
| |- | | |- |
− | | 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] | + | | 40 || [18.0.0+] |
| + | |- |
| + | | 41 || [18.0.0+] |
| + | |- |
| + | | 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] |
| |- | | |- |
| | 101 || [5.0.0+] [[#BeginToObserveHidInputForDevelop]] | | | 101 || [5.0.0+] [[#BeginToObserveHidInputForDevelop]] |
Line 961: |
Line 1,041: |
| | | |
| == IApplicationProxy == | | == IApplicationProxy == |
| + | This is "nn::am::service::IApplicationProxy". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 985: |
Line 1,067: |
| | | |
| === IApplicationFunctions === | | === IApplicationFunctions === |
| + | This is "nn::am::service::IApplicationFunctions". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,031: |
Line 1,115: |
| | 33 || [[#EndBlockingHomeButton]] | | | 33 || [[#EndBlockingHomeButton]] |
| |- | | |- |
− | | 34 || [10.0.0+] [[#SelectApplicationLicense]] | + | | 34 || [10.0.0-15.0.1] [[#SelectApplicationLicense]] |
| |- | | |- |
| | 35 || [11.0.0+] [[#GetDeviceSaveDataSizeMax]] | | | 35 || [11.0.0+] [[#GetDeviceSaveDataSizeMax]] |
| + | |- |
| + | | 36 || [14.0.0+] GetLimitedApplicationLicense |
| + | |- |
| + | | 37 || [14.0.0+] GetLimitedApplicationLicenseUpgradableEvent |
| |- | | |- |
| | 40 || [[#NotifyRunning]] | | | 40 || [[#NotifyRunning]] |
Line 1,261: |
Line 1,349: |
| | | |
| User-processes create the tmem with an user-specified buffer with permissions=0. '''width''' = 1280 and '''height''' = 720. | | User-processes create the tmem with an user-specified buffer with permissions=0. '''width''' = 1280 and '''height''' = 720. |
| + | |
| + | After the validation checks pass the input is passed to [[OMM_services|ommdisp]] cmd500. |
| | | |
| This is used as an overlay for screenshots. | | This is used as an overlay for screenshots. |
Line 1,382: |
Line 1,472: |
| | | |
| ==== PrepareForJit ==== | | ==== PrepareForJit ==== |
− | Takes no input. Launches the [[JIT_services|jit-sysmodule]] if it has not already been launched for the current application, storing a std::shared_ptr<> for jit-sysmodule process tracking object as an IApplicationFunctions member. | + | Takes no input. Launches the [[JIT_services|jit-sysmodule]] via [[NS_Services|ns]] LaunchLibraryApplet if it has not already been launched for the current application, storing a std::shared_ptr<> for jit-sysmodule process tracking object as an IApplicationFunctions member. |
| | | |
| ~IApplicationFunctions() includes: | | ~IApplicationFunctions() includes: |
Line 1,392: |
Line 1,482: |
| | | |
| Thus the lifetime of the jit sysmodule is tied to the application which uses it, and each application gets its own fresh copy of the jit sysmodule. | | Thus the lifetime of the jit sysmodule is tied to the application which uses it, and each application gets its own fresh copy of the jit sysmodule. |
| + | |
| + | AM can also optionally launch jit-sysmodule automatically if the [[NACP]] enables it. |
| | | |
| === IMovieMaker === | | === IMovieMaker === |
| + | This is "nn::am::service::IMovieMaker". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,410: |
Line 1,504: |
| | | |
| == ILibraryAppletCreator == | | == ILibraryAppletCreator == |
| + | This is "nn::am::service::ILibraryAppletCreator". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,462: |
Line 1,558: |
| | | |
| === ILibraryAppletAccessor === | | === ILibraryAppletAccessor === |
| + | This is "nn::am::service::ILibraryAppletAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,554: |
Line 1,652: |
| | | |
| == ICommonStateGetter == | | == ICommonStateGetter == |
| + | This is "nn::am::service::ICommonStateGetter". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,639: |
Line 1,739: |
| |- | | |- |
| | 110 || [11.0.0+] [[#OpenMyGpuErrorHandler]] | | | 110 || [11.0.0+] [[#OpenMyGpuErrorHandler]] |
| + | |- |
| + | | 120 || [13.0.0+] GetAppletLaunchedHistory |
| |- | | |- |
| | 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] | | | 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] |
Line 1,655: |
Line 1,757: |
| |- | | |- |
| | 503 || [12.0.0+] IsDisablingSleepSuppressed | | | 503 || [12.0.0+] IsDisablingSleepSuppressed |
| + | |- |
| + | | 600 || [17.0.0+] OpenNamedChannelAsChild |
| |- | | |- |
| | 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]] | | | 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]] |
| + | |- |
| + | | 910 || [17.0.0+] GetLaunchRequiredTick |
| |} | | |} |
| | | |
Line 1,847: |
Line 1,953: |
| === ActivateMigrationService === | | === ActivateMigrationService === |
| No input/output. | | No input/output. |
| + | |
| + | Besides various other functionality, if required this eventually uses [[NS_Services|ns]] LaunchLibraryApplet to launch [[Migration_services|migration]]. |
| | | |
| === DeactivateMigrationService === | | === DeactivateMigrationService === |
Line 1,897: |
Line 2,005: |
| | | |
| == ISelfController == | | == ISelfController == |
| + | This is "nn::am::service::ISelfController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,934: |
Line 2,044: |
| |- | | |- |
| | 20 || [4.0.0+] [[#SetDesirableKeyboardLayout]] | | | 20 || [4.0.0+] [[#SetDesirableKeyboardLayout]] |
| + | |- |
| + | | 21 || [13.0.0+] GetScreenShotProgramId |
| |- | | |- |
| | 40 || [[#CreateManagedDisplayLayer]] | | | 40 || [[#CreateManagedDisplayLayer]] |
Line 1,946: |
Line 2,058: |
| |- | | |- |
| | 45 || [10.0.0+] [[#SetManagedDisplayLayerSeparationMode]] | | | 45 || [10.0.0+] [[#SetManagedDisplayLayerSeparationMode]] |
| + | |- |
| + | | 46 || [13.0.0+] [[#SetRecordingLayerCompositionEnabled]] |
| |- | | |- |
| | 50 || [[#SetHandlesRequestToDisplay]] | | | 50 || [[#SetHandlesRequestToDisplay]] |
Line 1,988: |
Line 2,102: |
| |- | | |- |
| | 120 || [11.0.0+] [[#SaveCurrentScreenshot]] | | | 120 || [11.0.0+] [[#SaveCurrentScreenshot]] |
| + | |- |
| + | | 130 || [13.0.0+] [[#SetRecordVolumeMuted]] |
| |- | | |- |
| | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | | | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] |
Line 2,110: |
Line 2,226: |
| | | |
| The input u32 must be 0-1. | | The input u32 must be 0-1. |
| + | |
| + | === SetRecordingLayerCompositionEnabled === |
| + | Takes an input bool, no output. |
| | | |
| === SetHandlesRequestToDisplay === | | === SetHandlesRequestToDisplay === |
Line 2,209: |
Line 2,328: |
| | | |
| sdknso exposes this under "nn::album::". | | sdknso exposes this under "nn::album::". |
| + | |
| + | === SetRecordVolumeMuted === |
| + | Takes an input bool, no output. |
| | | |
| === GetDebugStorageChannel === | | === GetDebugStorageChannel === |
Line 2,216: |
Line 2,338: |
| | | |
| == IStorageChannel == | | == IStorageChannel == |
− | Added with [[7.0.0]].
| + | This is "nn::am::service::IStorageChannel". |
| + | |
| + | This was added with [7.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 2,234: |
Line 2,358: |
| | | |
| == IWindowController == | | == IWindowController == |
| + | This is "nn::am::service::IWindowController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,290: |
Line 2,416: |
| | | |
| == IAudioController == | | == IAudioController == |
| + | This is "nn::am::service::IAudioController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,325: |
Line 2,453: |
| | | |
| == IDisplayController == | | == IDisplayController == |
| + | This is "nn::am::service::IDisplayController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,527: |
Line 2,657: |
| | | |
| == ISystemAppletControllerForDebug == | | == ISystemAppletControllerForDebug == |
| + | This is "nn::am::service::ISystemAppletControllerForDebug". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,550: |
Line 2,682: |
| | | |
| == IProcessWindingController == | | == IProcessWindingController == |
| + | This is "nn::am::service::IProcessWindingController". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,600: |
Line 2,734: |
| | | |
| == IDebugFunctions == | | == IDebugFunctions == |
| + | This is "nn::am::service::IDebugFunctions". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,617: |
Line 2,753: |
| |- | | |- |
| | 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]] | | | 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]] |
| + | |- |
| + | | 50 || [15.0.0+] AddSystemProgramIdAndAppletIdForDebug |
| + | |- |
| + | | 51 || [16.0.0+] AddOperationConfirmedLibraryAppletIdForDebug |
| + | |- |
| + | | 52 || [17.0.0+] GetProgramIdFromAppletIdForDebug |
| + | |- |
| + | | 53 || [18.0.0+] |
| |- | | |- |
| | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] | | | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] |
Line 2,638: |
Line 2,782: |
| | 132 || [9.0.0+] [[#FriendInvitationPushApplicationParameter]] | | | 132 || [9.0.0+] [[#FriendInvitationPushApplicationParameter]] |
| |- | | |- |
− | | 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent | + | | 140 || [14.0.0+] RestrictPowerOperationForSecureLaunchModeForDebug |
− | |} | + | |- |
| + | | 200 || [15.0.0+] CreateFloatingLibraryAppletAccepterForDebug |
| + | |- |
| + | | 300 || [16.0.0+] TerminateAllRunningApplicationsForDebug |
| + | |- |
| + | | 410 || [18.0.0+] |
| + | |- |
| + | | 411 || [18.0.0+] |
| + | |- |
| + | | 412 || [18.0.0+] |
| + | |- |
| + | | 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent |
| + | |} |
| | | |
| === NotifyMessageToHomeMenuForDebug === | | === NotifyMessageToHomeMenuForDebug === |
Line 2,718: |
Line 2,874: |
| | | |
| == IStorage == | | == IStorage == |
| + | This is "nn::am::service::IStorage". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,732: |
Line 2,890: |
| | | |
| == IStorageAccessor == | | == IStorageAccessor == |
| + | This is "nn::am::service::IStorageAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,744: |
Line 2,904: |
| | | |
| == ITransferStorageAccessor == | | == ITransferStorageAccessor == |
| + | This is "nn::am::service::ITransferStorageAccessor". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 2,776: |
Line 2,938: |
| = idle:sys = | | = idle:sys = |
| This is "nn::idle::detail::IPolicyManagerSystem" | | This is "nn::idle::detail::IPolicyManagerSystem" |
| + | |
| + | This was moved to [[OMM_services|omm]] with [14.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 2,783: |
Line 2,947: |
| | 0 || GetAutoPowerDownEvent | | | 0 || GetAutoPowerDownEvent |
| |- | | |- |
− | |rowspan="2"| 1 || [1.0.0-3.0.2]
| + | | 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] ) |
− | |-
| |
− | | [7.0.0+] IsAutoPowerDownRequested
| |
| |- | | |- |
| | 2 || [1.0.0-3.0.2] | | | 2 || [1.0.0-3.0.2] |
Line 2,798: |
Line 2,960: |
| == SetHandlingContext == | | == SetHandlingContext == |
| [3.0.0+] Now takes an additional 0x10-bytes of input. | | [3.0.0+] Now takes an additional 0x10-bytes of input. |
| + | |
| + | [13.0.0+] Total input size is now 0x30 instead of 0x38. |
| | | |
| = omm = | | = omm = |
Line 2,804: |
Line 2,968: |
| 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|PTM]], 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*]]. |
| + | |
| + | This was moved to [[OMM_services|omm]] with [14.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 2,877: |
Line 3,043: |
| | | |
| == ICradleFirmwareUpdater == | | == ICradleFirmwareUpdater == |
− | This is "nn::omm::detail::ICradleFirmwareUpdater". | + | This is "nn::am::service::ICradleFirmwareUpdater". |
| | | |
| This was added with [12.0.0+]. | | This was added with [12.0.0+]. |
Line 2,900: |
Line 3,066: |
| = spsm = | | = spsm = |
| This is "nn::spsm::detail::IPowerStateInterface". | | This is "nn::spsm::detail::IPowerStateInterface". |
| + | |
| + | This was moved to [[OMM_services|omm]] with [14.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 2,951: |
Line 3,119: |
| This is "nn::capsrv::sf::IScreenShotApplicationService". | | This is "nn::capsrv::sf::IScreenShotApplicationService". |
| | | |
− | This was added with [[6.0.0]]. | + | This was added with [6.0.0+]. |
| | | |
| This can be used by applications to save screenshots. | | This can be used by applications to save screenshots. |
Line 2,987: |
Line 3,155: |
| == SaveScreenShotEx2 == | | == 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]]. | | 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]]. |
| + | |
| + | = apm = |
| + | This is "nn::am::service::IApmManager". |
| + | |
| + | This was added with [8.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || [[#OpenSession]] |
| + | |- |
| + | | 1 || GetPerformanceMode |
| + | |- |
| + | | 6 || [7.0.0+] [[#IsCpuOverclockEnabled]] |
| + | |} |
| + | |
| + | == OpenSession == |
| + | Returns an [[#ISession]]. |
| + | |
| + | == IsCpuOverclockEnabled == |
| + | No input, returns an output u8 bool. |
| + | |
| + | == ISession == |
| + | This is "nn::am::service::IApmSession". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || SetPerformanceConfiguration |
| + | |- |
| + | | 1 || GetPerformanceConfiguration |
| + | |- |
| + | | 2 || [8.0.0+] SetCpuOverclockEnabled |
| + | |} |
| | | |
| = Library Applets = | | = Library Applets = |
Line 3,145: |
Line 3,349: |
| | [10.0.0+] LibraryAppletSample (sample) | | | [10.0.0+] LibraryAppletSample (sample) |
| |- | | |- |
− | | 0x3E8 | + | | 0x22 |
− | | | + | | 0100000000001007 |
− | | [10.0.0+] DevlopmentTool | + | | [13.0.0+] LibraryAppletPromoteQualification (playerSelect) |
| + | |- |
| + | | 0x32 |
| + | | 010000000000100F |
| + | | [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] |
| + | |- |
| + | | 0x33 |
| + | | 010000000000100F |
| + | | [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]] |
| + | |- |
| + | | 0x35 |
| + | | [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] ) |
| + | |- |
| + | | 0x36 |
| + | | [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] ) |
| + | |- |
| + | | 0x37 |
| + | | [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] ) |
| + | |- |
| + | | 0x38 |
| + | | 0100000000001043 |
| + | | [16.0.0-16.1.0] |
| + | |- |
| + | | 0x50 |
| + | | 0100000000001007 |
| + | | [18.0.0+] |
| + | |- |
| + | | 0x51 |
| + | | 0100000000001007 |
| + | | [18.0.0+] |
| + | |- |
| + | | 0x3E8 |
| + | | |
| + | | [10.0.0-16.1.0] DevlopmentTool |
| |- | | |- |
| | 0x3F1 | | | 0x3F1 |
| | 010000000000D619 | | | 010000000000D619 |
− | | [10.0.0+] CombinationLA | + | | [10.0.0-16.1.0] CombinationLA |
| |- | | |- |
| | 0x3F2 | | | 0x3F2 |
| | 010000000000D610 | | | 010000000000D610 |
− | | [10.0.0+] AeSystemApplet | + | | [10.0.0-16.1.0] AeSystemApplet |
| |- | | |- |
| | 0x3F3 | | | 0x3F3 |
| | 010000000000D611 | | | 010000000000D611 |
− | | [10.0.0+] AeOverlayApplet | + | | [10.0.0-16.1.0] AeOverlayApplet |
| |- | | |- |
| | 0x3F4 | | | 0x3F4 |
| | 010000000000D612 | | | 010000000000D612 |
− | | [10.0.0+] AeStarter | + | | [10.0.0-16.1.0] AeStarter |
| |- | | |- |
| | 0x3F5 | | | 0x3F5 |
| | 010000000000D613 | | | 010000000000D613 |
− | | [10.0.0+] AeLibraryAppletAlone | + | | [10.0.0-16.1.0] AeLibraryAppletAlone |
| |- | | |- |
| | 0x3F6 | | | 0x3F6 |
| | 010000000000D614 | | | 010000000000D614 |
− | | [10.0.0+] AeLibraryApplet1 | + | | [10.0.0-16.1.0] AeLibraryApplet1 |
| |- | | |- |
| | 0x3F7 | | | 0x3F7 |
| | 010000000000D615 | | | 010000000000D615 |
− | | [10.0.0+] AeLibraryApplet2 | + | | [10.0.0-16.1.0] AeLibraryApplet2 |
| |- | | |- |
| | 0x3F8 | | | 0x3F8 |
| | 010000000000D616 | | | 010000000000D616 |
− | | [10.0.0+] AeLibraryApplet3 | + | | [10.0.0-16.1.0] AeLibraryApplet3 |
| |- | | |- |
| | 0x3F9 | | | 0x3F9 |
| | 010000000000D617 | | | 010000000000D617 |
− | | [10.0.0+] AeLibraryApplet4 | + | | [10.0.0-16.1.0] AeLibraryApplet4 |
| |- | | |- |
| | 0x3FA | | | 0x3FA |
| | 010000000000D60A | | | 010000000000D60A |
− | | [10.0.0+] AppletISA | + | | [10.0.0-16.1.0] AppletISA |
| |- | | |- |
| | 0x3FB | | | 0x3FB |
| | 010000000000D60B | | | 010000000000D60B |
− | | [10.0.0+] AppletIOA | + | | [10.0.0-16.1.0] AppletIOA |
| |- | | |- |
| | 0x3FC | | | 0x3FC |
| | 010000000000D60C | | | 010000000000D60C |
− | | [10.0.0+] AppletISTA | + | | [10.0.0-16.1.0] AppletISTA |
| |- | | |- |
| | 0x3FD | | | 0x3FD |
| | 010000000000D60D | | | 010000000000D60D |
− | | [10.0.0+] AppletILA1 | + | | [10.0.0-16.1.0] AppletILA1 |
| |- | | |- |
| | 0x3FE | | | 0x3FE |
| | 010000000000D60E | | | 010000000000D60E |
− | | [10.0.0+] AppletILA2 | + | | [10.0.0-16.1.0] AppletILA2 |
− | |}
| |
− | | |
− | = LibraryAppletMode =
| |
− | {| class="wikitable" border="1"
| |
| |- | | |- |
− | ! Value
| + | | 0x700000C8 |
− | ! Description
| + | | 010000000000D65B |
| + | | [18.0.0+] |
| |- | | |- |
− | | 0x0 | + | | 0x700000C9 |
− | | AllForeground | + | | 010000000000D65C |
| + | | [18.0.0+] |
| |- | | |- |
− | | 0x1 | + | | 0x700000DC |
− | | Background | + | | 010000000000D619 |
| + | | [17.0.0+] CombinationLA |
| |- | | |- |
− | | 0x2 | + | | 0x700000E6 |
− | | No UI | + | | 010000000000D610 |
| + | | [17.0.0+] AeSystemApplet |
| |- | | |- |
− | | 0x3 | + | | 0x700000E7 |
− | | Background with indirect display, see also [[#GetIndirectLayerConsumerHandle]]. Only used by swkbd InlineKeyboard. | + | | 010000000000D611 |
| + | | [17.0.0+] AeOverlayApplet |
| |- | | |- |
− | | 0x4 | + | | 0x700000E8 |
− | | AllForegroundInitiallyHidden. Can be used by [7.0.0+] [[Internet_Browser|WebSession]]. | + | | 010000000000D612 |
− | |} | + | | [17.0.0+] AeStarter |
− | | + | |- |
− | = AppletMessage = | + | | 0x700000E9 |
− | This is "nn::am::AppletMessage". | + | | 010000000000D613 |
− | | + | | [17.0.0+] AeLibraryAppletAlone |
− | {| class="wikitable" border="1" | + | |- |
− | |- | + | | 0x700000EA |
− | ! Value | + | | 010000000000D614 |
− | ! Description | + | | [17.0.0+] AeLibraryApplet1 |
− | |- | + | |- |
− | | 4 || MessageExitRequest | + | | 0x700000EB |
− | |- | + | | 010000000000D615 |
− | | 15 || [[#FocusState|MessageFocusStateChanged]] | + | | [17.0.0+] AeLibraryApplet2 |
− | |- | + | |- |
− | | 16 || [[#SetRestartMessageEnabled|MessageResume]] | + | | 0x700000EC |
− | |- | + | | 010000000000D616 |
− | | 30 || [[#OperationMode|MessageOperationModeChanged]] | + | | [17.0.0+] AeLibraryApplet3 |
− | |- | + | |- |
− | | 31 || [[#PerformanceMode|MessagePerformanceModeChanged]] | + | | 0x700000ED |
− | |- | + | | 010000000000D617 |
− | | 51 || [[#SetHandlesRequestToDisplay|RequestToDisplay]]. Indicates that [[#ApproveToDisplay]] should be used. | + | | [17.0.0+] AeLibraryApplet4 |
− | |- | + | |- |
− | | 90 || Capture button was [[#SetRequiresCaptureButtonShortPressedMessage|short-pressed]]. | + | | 0x700000F0 |
− | |- | + | | 010000000000D60A |
− | | 92 || [[#SetAlbumImageTakenNotificationEnabled|MessageAlbumScreenShotTaken]] | + | | [17.0.0+] AppletISA |
− | |- | + | |- |
− | | 93 || MessageAlbumRecordingSaved | + | | 0x700000F1 |
− | |} | + | | 010000000000D60B |
− | | + | | [17.0.0+] AppletIOA |
− | = OperationMode = | + | |- |
− | This is "nn::oe::OperationMode". | + | | 0x700000F2 |
− | | + | | 010000000000D60C |
− | {| class="wikitable" border="1" | + | | [17.0.0+] AppletISTA |
− | |- | + | |- |
− | ! Value | + | | 0x700000F3 |
− | ! Description | + | | 010000000000D60D |
− | |- | + | | [17.0.0+] AppletILA1 |
− | | 0 || Handheld | + | |- |
− | |- | + | | 0x700000F4 |
− | | 1 || Console | + | | 010000000000D60E |
− | |} | + | | [17.0.0+] AppletILA2 |
− | | + | |} |
− | = PerformanceMode = | + | |
− | This is "nn::oe::PerformanceMode". | + | = LibraryAppletMode = |
− | | + | This is "nn::applet::LibraryAppletMode". |
− | {| class="wikitable" border="1" | + | |
− | |- | + | {| class="wikitable" border="1" |
− | ! Value | + | |- |
− | ! Description | + | ! Value |
− | |- | + | ! Description |
− | | -1 || Invalid | + | |- |
− | |- | + | | 0x0 |
− | | 0 || Normal | + | | AllForeground |
− | |- | + | |- |
− | | 1 || Boost | + | | 0x1 |
− | |} | + | | PartialForeground |
− | | + | |- |
− | = FocusState = | + | | 0x2 |
− | This is "nn::oe::FocusState". | + | | NoUi |
− | | + | |- |
− | {| class="wikitable" border="1" | + | | 0x3 |
− | |- | + | | PartialForegroundWithIndirectDisplay (see also [[#GetIndirectLayerConsumerHandle]], only used by swkbd [[Software_Keyboard|InlineKeyboard]]) |
− | ! Value | + | |- |
− | ! Description | + | | 0x4 |
− | |- | + | | AllForegroundInitiallyHidden (can be used by [7.0.0+] [[Internet_Browser|WebSession]]) |
− | | 1 || InFocus | + | |} |
− | |- | + | |
− | | 2 || OutOfFocus | + | = AppletMessage = |
| + | This is "nn::am::AppletMessage". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || None |
| + | |- |
| + | | 1 || ChangeIntoForeground |
| + | |- |
| + | | 2 || ChangeIntoBackground |
| + | |- |
| + | | 4 || Exit |
| + | |- |
| + | | 6 || ApplicationExited |
| + | |- |
| + | | 7 || |
| + | |- |
| + | | 15 || [[#FocusState|FocusStateChanged]] |
| + | |- |
| + | | 16 || [[#SetRestartMessageEnabled|Resume]] |
| + | |- |
| + | | 20 || DetectShortPressingHomeButton |
| + | |- |
| + | | 21 || DetectLongPressingHomeButton |
| + | |- |
| + | | 22 || DetectShortPressingPowerButton |
| + | |- |
| + | | 23 || DetectMiddlePressingPowerButton |
| + | |- |
| + | | 24 || DetectLongPressingPowerButton |
| + | |- |
| + | | 25 || RequestToPrepareSleep |
| + | |- |
| + | | 26 || FinishedSleepSequence |
| + | |- |
| + | | 27 || SleepRequiredByHighTemperature |
| + | |- |
| + | | 28 || SleepRequiredByLowBattery |
| + | |- |
| + | | 29 || AutoPowerDown |
| + | |- |
| + | | 30 || [[#OperationMode|OperationModeChanged]] |
| + | |- |
| + | | 31 || [[#PerformanceMode|PerformanceModeChanged]] |
| + | |- |
| + | | 32 || DetectReceivingCecSystemStandby |
| + | |- |
| + | | 33 || SdCardRemoved |
| + | |- |
| + | | 34 || |
| + | |- |
| + | | 50 || LaunchApplicationRequested |
| + | |- |
| + | | 51 || [[#SetHandlesRequestToDisplay|RequestToDisplay]] |
| + | |- |
| + | | 55 || ShowApplicationLogo |
| + | |- |
| + | | 56 || HideApplicationLogo |
| + | |- |
| + | | 57 || ForceHideApplicationLogo |
| + | |- |
| + | | 58 || |
| + | |- |
| + | | 59 || |
| + | |- |
| + | | 60 || FloatingApplicationDetected |
| + | |- |
| + | | 61 || [7.0.0+] PerformanceConfigurationChanged |
| + | |- |
| + | | 70 || |
| + | |- |
| + | | 71 || |
| + | |- |
| + | | 72 || |
| + | |- |
| + | | 73 || |
| + | |- |
| + | | 75 || |
| + | |- |
| + | | 80 || |
| + | |- |
| + | | 81 || |
| + | |- |
| + | | 82 || |
| + | |- |
| + | | 83 || |
| + | |- |
| + | | 85 || |
| + | |- |
| + | | 86 || |
| + | |- |
| + | | 90 || [[#SetRequiresCaptureButtonShortPressedMessage|DetectShortPressingCaptureButton]] |
| + | |- |
| + | | 92 || [[#SetAlbumImageTakenNotificationEnabled|AlbumScreenShotTaken]] |
| + | |- |
| + | | 93 || AlbumRecordingSaved |
| + | |- |
| + | | 94 || |
| + | |- |
| + | | 100 || |
| + | |- |
| + | | 101 || |
| + | |- |
| + | | 110 || [14.0.0+] DetectShortPressingCaptureButtonForApplet |
| + | |- |
| + | | 111 || [14.0.0+] DetectLongPressingCaptureButtonForApplet |
| + | |- |
| + | | 1000 || |
| + | |} |
| + | |
| + | = OperationMode = |
| + | This is "nn::oe::OperationMode". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Handheld |
| + | |- |
| + | | 1 || Console |
| + | |} |
| + | |
| + | = PerformanceMode = |
| + | This is "nn::oe::PerformanceMode". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | -1 || Invalid |
| + | |- |
| + | | 0 || Normal |
| + | |- |
| + | | 1 || Boost |
| + | |} |
| + | |
| + | = FocusState = |
| + | This is "nn::oe::FocusState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 1 || InFocus |
| + | |- |
| + | | 2 || OutOfFocus |
| |- | | |- |
| | 3 || Background | | | 3 || Background |
Line 3,435: |
Line 3,827: |
| | | |
| = AppletAttribute = | | = AppletAttribute = |
− | This is "nn::am::AppletAttribute". This struct is 0x8-bytes. | + | This is "nn::am::AppletAttribute". This struct is 0x80 bytes. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 3,580: |
Line 3,972: |
| = LaunchRequiredVersion = | | = LaunchRequiredVersion = |
| This is "nn::oe::LaunchRequiredVersion". This is a 0x40-byte struct with 1-byte alignment. | | This is "nn::oe::LaunchRequiredVersion". This is a 0x40-byte struct with 1-byte alignment. |
| + | |
| + | = ServerEnvironmentType = |
| + | This is "nn::oe::ServerEnvironmentType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || dd |
| + | |- |
| + | | 1 || lp |
| + | |- |
| + | | 2 || sd |
| + | |- |
| + | | 3 || sp |
| + | |- |
| + | | 4 || dp |
| + | |} |
| | | |
| = Notes = | | = Notes = |
− | AM-sysmodule will only initialize [[Shared_Database_services|pdm:ntfy]] / use pdm:ntfy service commands when the value from [[Process_Manager_services|pm:bm]] GetBootMode is not 0x1. | + | AM-sysmodule will only initialize [[Shared_Database_services|pdm:ntfy]] / use pdm:ntfy service commands when the value from [[Process_Manager_services|pm:bm]] GetBootMode is not 0x1 (Maintenance). |
| + | |
| + | An object constructor also writes the output from [[Process_Manager_services|pm:bm]] GetBootMode into the created object. A vfunc for this object checks whether this field is Maintenance: if so, it calls a vfunc then a func and returns. Otherwise after calling various (v)funcs, if required this eventually uses [[OMM_services|ommdisp]] cmd600. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |