Line 12: |
Line 12: |
| | 100 || OpenSystemAppletProxy || Returns an [[#ISystemAppletProxy]]. | | | 100 || OpenSystemAppletProxy || Returns an [[#ISystemAppletProxy]]. |
| |- | | |- |
− | | 200 || OpenLibraryAppletProxy ( [3.0.0+] OpenLibraryAppletProxyOld) || Returns an [[#ILibraryAppletProxy]]. | + | | 200 || OpenLibraryAppletProxyOld ([1.0.0-2.3.0] OpenLibraryAppletProxy) || Returns an [[#ILibraryAppletProxy]]. |
| |- | | |- |
| | 201 || [3.0.0+] [[#OpenLibraryAppletProxy]] || Returns an [[#ILibraryAppletProxy]]. | | | 201 || [3.0.0+] [[#OpenLibraryAppletProxy]] || Returns an [[#ILibraryAppletProxy]]. |
Line 21: |
Line 21: |
| |- | | |- |
| | 400 || CreateSelfLibraryAppletCreatorForDevelop || Returns an [[#ILibraryAppletCreator]]. | | | 400 || CreateSelfLibraryAppletCreatorForDevelop || Returns an [[#ILibraryAppletCreator]]. |
− | |-
| |
| |} | | |} |
| | | |
− | All of these commands except [[#OpenLibraryAppletProxy]] take the same input as [[#OpenApplicationProxy]], with the same user-process retry-loop as [[#OpenApplicationProxy]]. | + | All of these commands except [[#OpenLibraryAppletProxy]] take the same input as [[#OpenApplicationProxy]], with the same user-process retry-loop as [[#OpenApplicationProxy]]. These Open*Proxy commands (including appletOE) doesn't seem to usable from processes which aren't actual applets (such as sysmodules), at least for applet-types which aren't already in use. |
| | | |
− | This service seems to be used by all system non-regular-applications. | + | This service is used by all system non-regular-applications. |
| + | |
| + | The 01000000000010XX system [[Title_list|titles]] use the following applet types(above Open{type}Proxy commands): |
| + | * "qlaunch": SystemApplet |
| + | * "overlay": OverlayApplet |
| + | * "starter": SystemApplication |
| + | * "maintenance": SystemApplet |
| + | * All others: LibraryApplet |
| | | |
| == OpenLibraryAppletProxy == | | == OpenLibraryAppletProxy == |
− | Returns an [[#IApplicationProxy]]. | + | Returns an [[#ILibraryAppletProxy]]. |
| | | |
| Takes a [[IPC_Marshalling|reserved]] input u64(official user-processes use hard-coded value 0), a PID,a process copy-handle(cur-proc handle alias), and an 0x80-byte type-0x15 input buffer '''AppletAttribute'''. | | Takes a [[IPC_Marshalling|reserved]] input u64(official user-processes use hard-coded value 0), a PID,a process copy-handle(cur-proc handle alias), and an 0x80-byte type-0x15 input buffer '''AppletAttribute'''. |
Line 75: |
Line 81: |
| | 12 || UnlockForeground || | | | 12 || UnlockForeground || |
| |- | | |- |
− | | 20 || PopFromGeneralChannel || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 20 || PopFromGeneralChannel || Returns an [[#IStorage]]. |
| |- | | |- |
| | 21 || GetPopFromGeneralChannelEvent || | | | 21 || GetPopFromGeneralChannelEvent || |
Line 122: |
Line 128: |
| | 14 || [2.0.0+] ShouldSleepOnBoot | | | 14 || [2.0.0+] ShouldSleepOnBoot |
| |- | | |- |
| + | | 15 || [4.0.0+] GetHdcpAuthenticationFailedEvent |
| |} | | |} |
| | | |
Line 165: |
Line 172: |
| | 120 || GetApplicationId || | | | 120 || GetApplicationId || |
| |- | | |- |
− | | 121 || PushLaunchParameter || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 121 || PushLaunchParameter || Takes an [[#IStorage]]. |
| |- | | |- |
| | 122 || GetApplicationControlProperty || | | | 122 || GetApplicationControlProperty || |
Line 220: |
Line 227: |
| ! Cmd || Name || Notes | | ! Cmd || Name || Notes |
| |- | | |- |
− | | 0 || PopInData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 0 || PopInData || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 1 || PushOutData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 1 || PushOutData || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 2 || PopInteractiveInData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 2 || PopInteractiveInData || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 3 || PushInteractiveOutData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 3 || PushInteractiveOutData || Takes an [[#IStorage]]. |
| |- | | |- |
| | 5 || GetPopInDataEvent || | | | 5 || GetPopInDataEvent || |
Line 232: |
Line 239: |
| | 6 || GetPopInteractiveInDataEvent || | | | 6 || GetPopInteractiveInDataEvent || |
| |- | | |- |
− | | 10 || ExitProcessAndReturn || | + | | 10 || [[#ExitProcessAndReturn]] || |
| |- | | |- |
− | | 11 || GetLibraryAppletInfo || | + | | 11 || [[#GetLibraryAppletInfo]] || |
| |- | | |- |
| | 12 || GetMainAppletIdentityInfo || | | | 12 || GetMainAppletIdentityInfo || |
Line 242: |
Line 249: |
| | 14 || GetCallerAppletIdentityInfo || | | | 14 || GetCallerAppletIdentityInfo || |
| |- | | |- |
− | | 15 || GetMainAppletApplicationControlProperty || | + | | 15 || [2.0.0+] GetMainAppletApplicationControlProperty || |
| + | |- |
| + | | 16 || [2.0.0+] GetMainAppletStorageId || |
| + | |- |
| + | | 17 || [2.0.0+] GetCallerAppletIdentityInfoStack || |
| |- | | |- |
− | | 16 || GetMainAppletStorageId || | + | | 18 || [4.0.0+] GetNextReturnDestinationAppletIdentityInfo || |
| |- | | |- |
− | | 17 || GetCallerAppletIdentityInfoStack || | + | | 19 || [4.0.0+] GetDesirableKeyboardLayout || |
| |- | | |- |
− | | 20 || PopExtraStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 20 || PopExtraStorage || Returns an [[#IStorage]]. |
| |- | | |- |
| | 25 || GetPopExtraStorageEvent || | | | 25 || GetPopExtraStorageEvent || |
| |- | | |- |
− | | 30 || UnpopInData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 30 || UnpopInData || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 31 || UnpopExtraStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 31 || UnpopExtraStorage || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 40 || GetIndirectLayerProducerHandle || | + | | 40 || [2.0.0+] GetIndirectLayerProducerHandle || |
| |- | | |- |
− | | 50 || ReportVisibleError || | + | | 50 || [2.0.0+] ReportVisibleError || |
| + | |- |
| + | | 51 || [4.0.0+] ReportVisibleErrorWithErrorContext || |
| + | |- |
| + | | 60 || [4.0.0+] [[#GetMainAppletApplicationDesiredLanguage]] || |
| + | |- |
| + | | 90 || [5.0.0+] CreateApplicationAndPushAndRequestToLaunch || |
| + | |- |
| + | | 100 || [4.0.0+] CreateGameMovieTrimmer || |
| |} | | |} |
| + | |
| + | ==== ExitProcessAndReturn ==== |
| + | No input/output. |
| + | |
| + | Exits the LibraryApplet and returns to running the title which launched this LibraryApplet ([[qlaunch]] for example). |
| + | |
| + | ==== GetLibraryAppletInfo ==== |
| + | No input. Returns an u64 LibraryAppletInfo: +0 u32 is [[#AppletId]], +4 u32 is [[#LibraryAppletMode]]. |
| + | |
| + | ==== GetMainAppletApplicationDesiredLanguage ==== |
| + | No input, returns an output [[Settings_services#LanguageCode|LanguageCode]]. |
| | | |
| == IOverlayAppletProxy == | | == IOverlayAppletProxy == |
Line 283: |
Line 313: |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
− | |-
| |
| |} | | |} |
| | | |
Line 328: |
Line 357: |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
− | |-
| |
| |} | | |} |
| | | |
Line 336: |
Line 364: |
| ! Cmd || Name || Notes | | ! Cmd || Name || Notes |
| |- | | |- |
− | | 1 || PopLaunchParameter || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 1 || PopLaunchParameter || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 10 || CreateApplicationAndPushAndRequestToStart || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 10 || CreateApplicationAndPushAndRequestToStart || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 11 || CreateApplicationAndPushAndRequestToStartForQuest || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 11 || [2.0.0+] CreateApplicationAndPushAndRequestToStartForQuest || Takes an [[#IStorage]]. |
| + | |- |
| + | | 12 || [4.0.0+] CreateApplicationAndRequestToStart || |
| + | |- |
| + | | 13 || [4.0.0+] CreateApplicationAndRequestToStartForQuest || |
| |- | | |- |
| | 20 || EnsureSaveData || | | | 20 || EnsureSaveData || |
| |- | | |- |
− | | 21 || GetDesiredLanguage || | + | | 21 || [[#GetDesiredLanguage]] || |
| |- | | |- |
− | | 22 || SetTerminateResult || | + | | 22 || [[#SetTerminateResult]] || |
| |- | | |- |
| | 23 || GetDisplayVersion || | | | 23 || GetDisplayVersion || |
| |- | | |- |
− | | 24 || GetLaunchStorageInfoForDebug || | + | | 24 || [2.0.0+] GetLaunchStorageInfoForDebug || |
| |- | | |- |
− | | 25 || ExtendSaveData || | + | | 25 || [2.0.0+] ExtendSaveData || |
| |- | | |- |
− | | 26 || GetSaveDataSize || | + | | 26 || [2.0.0+] GetSaveDataSize || |
| + | |- |
| + | | 27 || [5.0.0+] CreateCacheStorage || |
| |- | | |- |
| | 30 || BeginBlockingHomeButtonShortAndLongPressed || | | | 30 || BeginBlockingHomeButtonShortAndLongPressed || |
Line 360: |
Line 394: |
| | 31 || EndBlockingHomeButtonShortAndLongPressed || | | | 31 || EndBlockingHomeButtonShortAndLongPressed || |
| |- | | |- |
− | | 32 || BeginBlockingHomeButton || | + | | 32 || [[#BeginBlockingHomeButton]] || |
| |- | | |- |
| | 33 || EndBlockingHomeButton || | | | 33 || EndBlockingHomeButton || |
Line 366: |
Line 400: |
| | 40 || [[#NotifyRunning]] || | | | 40 || [[#NotifyRunning]] || |
| |- | | |- |
− | | 50 || GetPseudoDeviceId || | + | | 50 || [2.0.0+] GetPseudoDeviceId || |
| |- | | |- |
− | | 60 || SetMediaPlaybackStateForApplication || | + | | 60 || [2.0.0+] SetMediaPlaybackStateForApplication || |
| |- | | |- |
| | 65 || [3.0.0+] IsGamePlayRecordingSupported || | | | 65 || [3.0.0+] IsGamePlayRecordingSupported || |
Line 375: |
Line 409: |
| |- | | |- |
| | 67 || [3.0.0+] [[#SetGamePlayRecordingState]] || | | | 67 || [3.0.0+] [[#SetGamePlayRecordingState]] || |
| + | |- |
| + | | 68 || [4.0.0+] RequestFlushGamePlayingMovieForDebug || |
| |- | | |- |
| | 70 || [3.0.0+] RequestToShutdown || | | | 70 || [3.0.0+] RequestToShutdown || |
| |- | | |- |
| | 71 || [3.0.0+] RequestToReboot || | | | 71 || [3.0.0+] RequestToReboot || |
| + | |- |
| + | | 80 || [4.0.0+] ExitAndRequestToShowThanksMessage || |
| + | |- |
| + | | 90 || [4.0.0+] EnableApplicationCrashReport || |
| + | |- |
| + | | 100 || [5.0.0+] InitializeApplicationCopyrightFrameBuffer || |
| + | |- |
| + | | 101 || [5.0.0+] SetApplicationCopyrightImage || |
| + | |- |
| + | | 102 || [5.0.0+] SetApplicationCopyrightVisibility || |
| + | |- |
| + | | 110 || [5.0.0+] QueryApplicationPlayStatistics || |
| + | |- |
| + | | 120 || [5.0.0+] ExecuteProgram || |
| + | |- |
| + | | 121 || [5.0.0+] ClearUserChannel || |
| + | |- |
| + | | 122 || [5.0.0+] UnpopToUserChannel || |
| + | |- |
| + | | 500 || [5.0.0+] StartContinuousRecordingFlushForDebug || |
| + | |- |
| + | | 1000 || [5.0.0+] CreateMovieMaker || |
| + | |- |
| + | | 1001 || [5.0.0+] [[#PrepareForJit]] || |
| |} | | |} |
| | | |
Line 387: |
Line 447: |
| * Uses [[#SetGamePlayRecordingState]] with value 0x1. | | * Uses [[#SetGamePlayRecordingState]] with value 0x1. |
| This GamePlayRecording functionality presumably enables the video-recording usable starting with [[4.0.0]]. | | This GamePlayRecording functionality presumably enables the video-recording usable starting with [[4.0.0]]. |
| + | |
| + | ==== GetDesiredLanguage ==== |
| + | No input, returns an output [[Settings_services#LanguageCode|LanguageCode]]. |
| + | |
| + | ==== SetTerminateResult ==== |
| + | Takes an input u32 '''Result''', no output. |
| + | |
| + | For example, in some cases official apps use this with [[Error_codes|error]] 0x2A2 then uses svcBreak. |
| + | |
| + | ==== BeginBlockingHomeButton ==== |
| + | Takes an input s64 nanoseconds, no output. The input nanoseconds can be zero. |
| | | |
| ==== NotifyRunning ==== | | ==== NotifyRunning ==== |
Line 396: |
Line 467: |
| ==== SetGamePlayRecordingState ==== | | ==== SetGamePlayRecordingState ==== |
| Takes an input u32. | | Takes an input u32. |
| + | |
| + | ==== PrepareForJit ==== |
| + | Takes no input. Launches title 010000000000003B (currently not present on retail systems) if some context variable is set. |
| | | |
| == ILibraryAppletCreator == | | == ILibraryAppletCreator == |
Line 408: |
Line 482: |
| | 2 || AreAnyLibraryAppletsLeft || | | | 2 || AreAnyLibraryAppletsLeft || |
| |- | | |- |
− | | 10 || CreateStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 10 || CreateStorage || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 11 || CreateTransferMemoryStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 11 || CreateTransferMemoryStorage || Returns an [[#IStorage]]. |
− | |-
| |
− | | 12 || CreateHandleStorage || Returns an [[Filesystem_services#IStorage|IStorage]].
| |
| |- | | |- |
| + | | 12 || [2.0.0+] CreateHandleStorage || Returns an [[#IStorage]]. |
| |} | | |} |
| | | |
Line 435: |
Line 508: |
| | 50 || SetOutOfFocusApplicationSuspendingEnabled || | | | 50 || SetOutOfFocusApplicationSuspendingEnabled || |
| |- | | |- |
− | | 100 || PushInData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 100 || PushInData || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 101 || PopOutData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 101 || PopOutData || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 102 || PushExtraStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 102 || PushExtraStorage || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 103 || PushInteractiveInData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 103 || PushInteractiveInData || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 104 || PopInteractiveOutData || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 104 || PopInteractiveOutData || Returns an [[#IStorage]]. |
| |- | | |- |
| | 105 || GetPopOutDataEvent || | | | 105 || GetPopOutDataEvent || |
Line 455: |
Line 528: |
| | 150 || RequestForAppletToGetForeground || | | | 150 || RequestForAppletToGetForeground || |
| |- | | |- |
− | | 160 || GetIndirectLayerConsumerHandle || | + | | 160 || [2.0.0+] GetIndirectLayerConsumerHandle || |
| |} | | |} |
| | | |
Line 473: |
Line 546: |
| | 4 || DisallowToEnterSleep || | | | 4 || DisallowToEnterSleep || |
| |- | | |- |
− | | 5 || GetOperationMode || | + | | 5 || [[#GetOperationMode]] || |
| |- | | |- |
− | | 6 || GetPerformanceMode || | + | | 6 || [[#GetPerformanceMode]] || |
| |- | | |- |
| | 7 || GetCradleStatus || | | | 7 || GetCradleStatus || |
Line 491: |
Line 564: |
| | 13 || GetAcquiredSleepLockEvent || | | | 13 || GetAcquiredSleepLockEvent || |
| |- | | |- |
− | | 20 || PushToGeneralChannel || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 20 || PushToGeneralChannel || Takes an [[#IStorage]]. |
| |- | | |- |
| | 30 || GetHomeButtonReaderLockAccessor || Returns an [[#ILockAccessor]]. | | | 30 || GetHomeButtonReaderLockAccessor || Returns an [[#ILockAccessor]]. |
Line 502: |
Line 575: |
| |- | | |- |
| | 51 || [3.0.0+] [[#SetVrModeEnabled]] || | | | 51 || [3.0.0+] [[#SetVrModeEnabled]] || |
| + | |- |
| + | | 52 || [4.0.0+] SetLcdBacklighOffEnabled || |
| |- | | |- |
| | 55 || [3.0.0+] IsInControllerFirmwareUpdateSection || | | | 55 || [3.0.0+] IsInControllerFirmwareUpdateSection || |
Line 508: |
Line 583: |
| |- | | |- |
| | 61 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent || | | | 61 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent || |
| + | |- |
| + | | 62 || [4.0.0+] GetHdcpAuthenticationState || |
| + | |- |
| + | | 63 || [4.0.0+] GetHdcpAuthenticationStateChangeEvent || |
| + | |- |
| + | | 64 || [5.0.0+] SetTvPowerStateMatchingMode || |
| |} | | |} |
| + | |
| + | Officially notification messages are handled by the application itself, not sdk-nso in ExeFS. Official apps call code in sdk-nso which basically uses svcWaitSynchronization with the event from [[#GetEventHandle]] to check whether a message is available, then if so it uses [[#ReceiveMessage]]. The actual handling for message IDs is done in the app itself(see [[#NotificationMessage]]). |
| | | |
| === GetEventHandle === | | === GetEventHandle === |
Line 514: |
Line 597: |
| | | |
| === ReceiveMessage === | | === ReceiveMessage === |
− | No input. Returns an output u32. Error 0x680 indicates no message is available? | + | No input. Returns an output u32. Error 0x680 indicates no message is available. |
| + | |
| + | === GetOperationMode === |
| + | No input. Returns an output u8 for the current [[#OperationMode]]. |
| + | |
| + | === GetPerformanceMode === |
| + | No input. Returns an output u32 for the current PerformanceMode. |
| | | |
| === GetCurrentFocusState === | | === GetCurrentFocusState === |
− | No input. Returns an output u8. | + | No input. Returns an output u8: |
| + | |
| + | * 1: In focus. |
| + | * 2/3: Out of focus(running in "background"). |
| | | |
| === SetVrModeEnabled === | | === SetVrModeEnabled === |
Line 523: |
Line 615: |
| | | |
| Updates internal AM state fields. If the new state doesn't match the previous state, this uses the [[Backlight_services]] {Disable/Enable}VrMode command depending on whether flag={disable/enable}. | | Updates internal AM state fields. If the new state doesn't match the previous state, this uses the [[Backlight_services]] {Disable/Enable}VrMode command depending on whether flag={disable/enable}. |
| + | |
| + | When the VrMode is set to true, the console shows a screen rendered like vr asking the user to move his face away and hit the 'close' button. When this button is pressed, the console resets the vrMode to false. |
| | | |
| == ISelfController == | | == ISelfController == |
Line 529: |
Line 623: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || Exit | + | | 0 || [[#Exit]] |
| |- | | |- |
− | | 1 || LockExit | + | | 1 || [[#LockExit]] |
| |- | | |- |
− | | 2 || UnlockExit | + | | 2 || [[#UnlockExit]] |
| |- | | |- |
− | | 3 || [2.0.0+] EnterFatalSection | + | | 3 || [2.0.0+] [[#EnterFatalSection]] |
| |- | | |- |
− | | 4 || [2.0.0+] LeaveFatalSection | + | | 4 || [2.0.0+] [[#LeaveFatalSection]] |
| |- | | |- |
| | 9 || GetLibraryAppletLaunchableEvent | | | 9 || GetLibraryAppletLaunchableEvent |
| |- | | |- |
− | | 10 || SetScreenShotPermission | + | | 10 || [[#SetScreenShotPermission]] |
| |- | | |- |
− | | 11 || SetOperationModeChangedNotification | + | | 11 || [[#SetOperationModeChangedNotification]] |
| |- | | |- |
− | | 12 || SetPerformanceModeChangedNotification | + | | 12 || [[#SetPerformanceModeChangedNotification]] |
| |- | | |- |
| | 13 || [[#SetFocusHandlingMode]] | | | 13 || [[#SetFocusHandlingMode]] |
Line 551: |
Line 645: |
| | 14 || SetRestartMessageEnabled | | | 14 || SetRestartMessageEnabled |
| |- | | |- |
− | | 15 || [2.0.0+] SetScreenShotAppletIdentityInfo | + | | 15 || [2.0.0+] [[#SetScreenShotAppletIdentityInfo]] |
| |- | | |- |
| | 16 || [2.0.0+] [[#SetOutOfFocusSuspendingEnabled]] | | | 16 || [2.0.0+] [[#SetOutOfFocusSuspendingEnabled]] |
| |- | | |- |
− | | 17 || [2.0.0+] SetControllerFirmwareUpdateSection | + | | 17 || [3.0.0+] SetControllerFirmwareUpdateSection |
| + | |- |
| + | | 18 || [3.0.0+] SetRequiresCaptureButtonShortPressedMessage |
| |- | | |- |
− | | 18 || [2.0.0+] SetRequiresCaptureButtonShortPressedMessage | + | | 19 || [3.0.0+] [[#SetScreenShotImageOrientation]] |
| |- | | |- |
− | | 19 || [2.0.0+] SetScreenShotImageOrientation | + | | 20 || [4.0.0+] SetDesirableKeyboardLayout |
| |- | | |- |
| | 40 || [[#CreateManagedDisplayLayer]] | | | 40 || [[#CreateManagedDisplayLayer]] |
| + | |- |
| + | | 41 || [4.0.0+] IsSystemBufferSharingEnabled |
| + | |- |
| + | | 42 || [4.0.0+] GetSystemSharedLayerHandle |
| |- | | |- |
| | 50 || SetHandlesRequestToDisplay | | | 50 || SetHandlesRequestToDisplay |
Line 579: |
Line 679: |
| | 65 || [2.0.0+] ReportUserIsActive | | | 65 || [2.0.0+] ReportUserIsActive |
| |- | | |- |
− | | 66 || [2.0.0+] GetCurrentIlluminance | + | | 66 || [3.0.0+] GetCurrentIlluminance |
| |- | | |- |
− | | 67 || [2.0.0+] IsIlluminanceAvailable | + | | 67 || [3.0.0+] IsIlluminanceAvailable |
| + | |- |
| + | | 68 || [4.0.0+] SetAutoSleepDisabled |
| + | |- |
| + | | 69 || [4.0.0+] IsAutoSleepDisabled |
| + | |- |
| + | | 70 || [5.0.0+] ReportMultimediaError |
| + | |- |
| + | | 80 || [5.0.0+] SetWirelessPriorityMode |
| |} | | |} |
| | | |
− | ===SetFocusHandlingMode=== | + | === Exit === |
| + | No input/output. |
| + | |
| + | === LockExit === |
| + | No input/output. |
| + | |
| + | === UnlockExit === |
| + | No input/output. |
| + | |
| + | === EnterFatalSection === |
| + | No input/output. |
| + | |
| + | === LeaveFatalSection === |
| + | No input/output. |
| + | |
| + | === SetScreenShotPermission === |
| + | Takes an input s32. No output. |
| + | |
| + | Controls whether screenshot-capture is allowed. 0 = disable, 1 = enable, 2 = unknown. |
| + | |
| + | === SetOperationModeChangedNotification === |
| + | Takes an input u8 bool flag. No output. |
| + | |
| + | === SetPerformanceModeChangedNotification === |
| + | Takes an input u8 bool flag. No output. |
| + | |
| + | === SetFocusHandlingMode === |
| Takes 3 input u8s with each field located immediately after the previous u8, these are bool flags. No output. | | Takes 3 input u8s with each field located immediately after the previous u8, these are bool flags. No output. |
| | | |
− | ===SetOutOfFocusSuspendingEnabled=== | + | === SetScreenShotAppletIdentityInfo === |
| + | Takes an input 0x10-byte struct AppletIdentityInfo. No output. |
| + | |
| + | === SetOutOfFocusSuspendingEnabled === |
| Takes an input u8(bool flag). No output. | | Takes an input u8(bool flag). No output. |
| | | |
− | ===CreateManagedDisplayLayer=== | + | === SetScreenShotImageOrientation === |
| + | Takes an input s32. No output. |
| + | |
| + | === CreateManagedDisplayLayer === |
| Returns an output u64 LayerId which is then used by the user-process with [[Display_services#OpenLayer]]. | | Returns an output u64 LayerId which is then used by the user-process with [[Display_services#OpenLayer]]. |
| | | |
Line 652: |
Line 792: |
| | 7 || GetCallerAppletCaptureImageEx | | | 7 || GetCallerAppletCaptureImageEx |
| |- | | |- |
− | | 8 || TakeScreenShotOfOwnLayer | + | | 8 || [2.0.0+] TakeScreenShotOfOwnLayer |
| + | |- |
| + | | 9 || [5.0.0+] CopyBetweenCaptureBuffers |
| |- | | |- |
| | 10 || AcquireLastApplicationCaptureBuffer | | | 10 || AcquireLastApplicationCaptureBuffer |
Line 672: |
Line 814: |
| | 18 || AcquireCallerAppletCaptureBufferEx | | | 18 || AcquireCallerAppletCaptureBufferEx |
| |- | | |- |
− | | 20 || ClearCaptureBuffer | + | | 20 || [2.0.0+] ClearCaptureBuffer |
| |- | | |- |
− | | 21 || ClearAppletTransitionBuffer | + | | 21 || [2.0.0+] ClearAppletTransitionBuffer |
| + | |- |
| + | | 22 || [4.0.0+] AcquireLastApplicationCaptureSharedBuffer |
| + | |- |
| + | | 23 || [4.0.0+] ReleaseLastApplicationCaptureSharedBuffer |
| + | |- |
| + | | 24 || [4.0.0+] AcquireLastForegroundCaptureSharedBuffer |
| + | |- |
| + | | 25 || [4.0.0+] ReleaseLastForegroundCaptureSharedBuffer |
| + | |- |
| + | | 26 || [4.0.0+] AcquireCallerAppletCaptureSharedBuffer |
| + | |- |
| + | | 27 || [4.0.0+] ReleaseCallerAppletCaptureSharedBuffer |
| |} | | |} |
| | | |
Line 688: |
Line 842: |
| | 2 || AreAnyLibraryAppletsLeft || | | | 2 || AreAnyLibraryAppletsLeft || |
| |- | | |- |
− | | 10 || CreateStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 10 || CreateStorage || Returns an [[#IStorage]]. |
| |- | | |- |
− | | 11 || CreateTransferMemoryStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 11 || CreateTransferMemoryStorage || Returns an [[#|IStorage]]. |
| |- | | |- |
− | | 12 || CreateHandleStorage || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 12 || [2.0.0+] CreateHandleStorage || Returns an [[#IStorage]]. |
| |} | | |} |
| | | |
Line 700: |
Line 854: |
| ! Cmd || Name || Notes | | ! Cmd || Name || Notes |
| |- | | |- |
− | | 0 || GetLaunchReason || | + | | 0 || [[#GetLaunchReason]] || |
| |- | | |- |
| | 11 || OpenCallingLibraryApplet || Returns an [[#ILibraryAppletAccessor]]. | | | 11 || OpenCallingLibraryApplet || Returns an [[#ILibraryAppletAccessor]]. |
| |- | | |- |
− | | 21 || PushContext || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 21 || PushContext || Takes an [[#IStorage]]. |
| |- | | |- |
− | | 22 || PopContext || Returns an [[Filesystem_services#IStorage|IStorage]]. | + | | 22 || PopContext || Returns an [[#IStorage]]. |
| |- | | |- |
| | 23 || CancelWindingReservation || | | | 23 || CancelWindingReservation || |
Line 713: |
Line 867: |
| |- | | |- |
| | 40 || ReserveToStartAndWaitAndUnwindThis || Returns an [[#ILibraryAppletAccessor]]. | | | 40 || ReserveToStartAndWaitAndUnwindThis || Returns an [[#ILibraryAppletAccessor]]. |
| + | |- |
| + | | 41 || [4.0.0+] ReserveToStartAndWait || |
| |} | | |} |
| + | |
| + | === GetLaunchReason === |
| + | No input. Returns an u32 AppletProcessLaunchReason. |
| + | |
| + | Used by LibraryApplets. |
| | | |
| == IDebugFunctions == | | == IDebugFunctions == |
Line 727: |
Line 888: |
| |- | | |- |
| | 20 || InvalidateTransitionLayer || | | | 20 || InvalidateTransitionLayer || |
| + | |} |
| + | |
| + | == IStorage == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name || Notes |
| + | |- |
| + | | 0 || Open || No input. Returns an [[#IStorageAccessor]]. |
| + | |- |
| + | | 1 || OpenTransferStorage || No input. Returns an [[#ITransferStorageAccessor]]. |
| + | |} |
| + | |
| + | Commands which take an IStorage as input use an unknown input u32 for that. |
| + | |
| + | == IStorageAccessor == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name || Notes |
| + | |- |
| + | | 0 || GetSize || No input. Returns an s64. |
| + | |- |
| + | | 10 || Write || Takes an input s64 and a type-0x21 input buffer. |
| + | |- |
| + | | 11 || Read || Takes an input s64 and a type-0x22 output buffer. |
| + | |} |
| + | |
| + | == ITransferStorageAccessor == |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name || Notes |
| + | |- |
| + | | 0 || GetSize || No input. Returns an output s64. |
| + | |- |
| + | | 1 || GetHandle || No input. Returns an output u64 and handle. |
| |} | | |} |
| | | |
Line 737: |
Line 932: |
| |- | | |- |
| | 0 || [[#OpenApplicationProxy]] || | | | 0 || [[#OpenApplicationProxy]] || |
− | |-
| |
| |} | | |} |
| | | |
− | This seems to be used by all(?) regular-applications, even [[flog]]. | + | 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. |
| | | |
| == OpenApplicationProxy == | | == OpenApplicationProxy == |
Line 750: |
Line 944: |
| | | |
| = idle:sys = | | = idle:sys = |
| + | This is "nn::idle::detail::IPolicyManagerSystem" |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || GetAutoPowerDownEvent |
| + | |- |
| + | | 1 || [1.0.0-3.0.2] |
| + | |- |
| + | | 2 || [1.0.0-3.0.2] |
| + | |- |
| + | | 3 || |
| + | |- |
| + | | 4 || |
| + | |- |
| + | | 5 || |
| + | |} |
| | | |
| = omm = | | = 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. | | 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]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]]. |
Line 761: |
Line 975: |
| | 0 || GetOperationMode | | | 0 || GetOperationMode |
| |- | | |- |
− | | 1 || GetOmmWaitEvent | + | | 1 || GetOperationModeChangeEvent |
| + | |- |
| + | | 2 || EnableAudioVisual |
| + | |- |
| + | | 3 || DisableAudioVisual |
| + | |- |
| + | | 4 || EnterSleepAndWait |
| + | |- |
| + | | 5 || GetCradleStatus |
| + | |- |
| + | | 6 || FadeInDisplay |
| + | |- |
| + | | 7 || FadeOutDisplay |
| + | |- |
| + | | 8 || [2.0.0+] |
| + | |- |
| + | | 9 || [2.0.0+] |
| + | |- |
| + | | 10 || [3.0.0+] |
| + | |- |
| + | | 11 || [3.0.0+] |
| + | |- |
| + | | 12 || [3.0.0+] |
| + | |- |
| + | | 13 || [3.0.0+] |
| + | |- |
| + | | 14 || [3.0.0+] |
| |- | | |- |
− | | 2 || | + | | 15 || [4.0.0+] |
| |- | | |- |
− | | 3 || | + | | 16 || [4.0.0+] |
| |- | | |- |
− | | 4 || | + | | 17 || [4.0.0+] |
| |- | | |- |
− | | 5 || | + | | 18 || [4.0.0+] |
| |- | | |- |
− | | 6 || | + | | 19 || [4.0.0+] |
| |- | | |- |
− | | 7 || | + | | 20 || [4.0.0+] |
| |- | | |- |
− | | 8 || | + | | 21 || [4.0.0+] |
| |- | | |- |
− | | 9 || | + | | 22 || [4.0.0+] |
| + | |- |
| + | | 23 || [4.0.0+] |
| |} | | |} |
| | | |
| = spsm = | | = spsm = |
| + | This is "nn::spsm::detail::IPowerStateInterface". |
| | | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || GetState |
| + | |- |
| + | | 1 || SleepSystemAndWaitAwake |
| + | |- |
| + | | 2 || |
| + | |- |
| + | | 3 || |
| + | |- |
| + | | 4 || GetNotificationMessageEventHandle |
| + | |- |
| + | | 5 || |
| + | |- |
| + | | 6 || |
| + | |- |
| + | | 7 || |
| + | |- |
| + | | 8 || AnalyzePerformanceLogForLastSleepWakeSequence |
| + | |- |
| + | | 9 || ChangeHomeButtonLongPressingTime |
| + | |- |
| + | | 10 || |
| + | |- |
| + | | 11 || [1.0.0-3.0.2] |
| + | |} |
| | | |
| = Enums = | | = Enums = |
Line 870: |
Line 1,141: |
| | 0100000000001013 | | | 0100000000001013 |
| | "myPage" | | | "myPage" |
| + | |- |
| + | |} |
| + | |
| + | === LibraryAppletMode === |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! ID |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | AllForeground |
| |- | | |- |
| |} | | |} |
Line 899: |
Line 1,181: |
| |} | | |} |
| | | |
− | =AppletResourceUserId= | + | === NotificationMessage === |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! ID |
| + | ! Description |
| + | |- |
| + | | 0xF || [[#GetCurrentFocusState|FocusState]] changed |
| + | |- |
| + | | 0x10 || ? |
| + | |- |
| + | | 0x1E || OperationMode changed |
| + | |- |
| + | | 0x1F || PerformanceMode changed |
| + | |} |
| + | |
| + | === OperationMode === |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Handheld |
| + | |- |
| + | | 1 || Docked |
| + | |} |
| + | |
| + | = AppletResourceUserId = |
| This u64 is officially called "nn::applet::AppletResourceUserId". Used by a number of non-AM services. | | This u64 is officially called "nn::applet::AppletResourceUserId". Used by a number of non-AM services. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |