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): | | The 01000000000010XX system [[Title_list|titles]] use the following applet types(above Open{type}Proxy commands): |
Line 36: |
Line 35: |
| | | |
| == 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 129: |
Line 128: |
| | 14 || [2.0.0+] ShouldSleepOnBoot | | | 14 || [2.0.0+] ShouldSleepOnBoot |
| |- | | |- |
| + | | 15 || [4.0.0+] GetHdcpAuthenticationFailedEvent |
| |} | | |} |
| | | |
Line 239: |
Line 239: |
| | 6 || GetPopInteractiveInDataEvent || | | | 6 || GetPopInteractiveInDataEvent || |
| |- | | |- |
− | | 10 || ExitProcessAndReturn || | + | | 10 || [[#ExitProcessAndReturn]] || |
| |- | | |- |
| | 11 || [[#GetLibraryAppletInfo]] || | | | 11 || [[#GetLibraryAppletInfo]] || |
Line 254: |
Line 254: |
| |- | | |- |
| | 17 || [2.0.0+] GetCallerAppletIdentityInfoStack || | | | 17 || [2.0.0+] GetCallerAppletIdentityInfoStack || |
| + | |- |
| + | | 18 || [4.0.0+] GetNextReturnDestinationAppletIdentityInfo || |
| + | |- |
| + | | 19 || [4.0.0+] GetDesirableKeyboardLayout || |
| |- | | |- |
| | 20 || PopExtraStorage || Returns an [[#IStorage]]. | | | 20 || PopExtraStorage || Returns an [[#IStorage]]. |
Line 266: |
Line 270: |
| |- | | |- |
| | 50 || [2.0.0+] 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 || |
| |} | | |} |
| | | |
− | ====GetLibraryAppletInfo==== | + | ==== 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]]. | | 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 293: |
Line 313: |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
− | |-
| |
| |} | | |} |
| | | |
Line 338: |
Line 357: |
| |- | | |- |
| | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. | | | 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]]. |
− | |-
| |
| |} | | |} |
| | | |
Line 351: |
Line 369: |
| |- | | |- |
| | 11 || [2.0.0+] CreateApplicationAndPushAndRequestToStartForQuest || Takes an [[#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]] || |
Line 365: |
Line 387: |
| |- | | |- |
| | 26 || [2.0.0+] GetSaveDataSize || | | | 26 || [2.0.0+] GetSaveDataSize || |
| + | |- |
| + | | 27 || [5.0.0+] CreateCacheStorage || |
| |- | | |- |
| | 30 || BeginBlockingHomeButtonShortAndLongPressed || | | | 30 || BeginBlockingHomeButtonShortAndLongPressed || |
Line 370: |
Line 394: |
| | 31 || EndBlockingHomeButtonShortAndLongPressed || | | | 31 || EndBlockingHomeButtonShortAndLongPressed || |
| |- | | |- |
− | | 32 || BeginBlockingHomeButton || | + | | 32 || [[#BeginBlockingHomeButton]] || |
| |- | | |- |
| | 33 || EndBlockingHomeButton || | | | 33 || EndBlockingHomeButton || |
Line 385: |
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 397: |
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 ==== | | ==== SetTerminateResult ==== |
Line 402: |
Line 455: |
| | | |
| For example, in some cases official apps use this with [[Error_codes|error]] 0x2A2 then uses svcBreak. | | 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 411: |
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 428: |
Line 487: |
| |- | | |- |
| | 12 || [2.0.0+] CreateHandleStorage || Returns an [[#IStorage]]. | | | 12 || [2.0.0+] CreateHandleStorage || Returns an [[#IStorage]]. |
− | |-
| |
| |} | | |} |
| | | |
Line 517: |
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 523: |
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 || |
| |} | | |} |
| | | |
Line 549: |
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 555: |
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 |
Line 586: |
Line 654: |
| |- | | |- |
| | 19 || [3.0.0+] [[#SetScreenShotImageOrientation]] | | | 19 || [3.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 608: |
Line 682: |
| |- | | |- |
| | 67 || [3.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 |
| |} | | |} |
| | | |
− | ===SetScreenShotPermission=== | + | === 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. | | Takes an input s32. No output. |
| | | |
− | Controls whether screenshot-capture is allowed. 0 = disable, 1 = enable. | + | Controls whether screenshot-capture is allowed. 0 = disable, 1 = enable, 2 = unknown. |
| | | |
− | ===SetOperationModeChangedNotification=== | + | === SetOperationModeChangedNotification === |
| Takes an input u8 bool flag. No output. | | Takes an input u8 bool flag. No output. |
| | | |
− | ===SetPerformanceModeChangedNotification=== | + | === SetPerformanceModeChangedNotification === |
| Takes an input u8 bool flag. No output. | | Takes an input u8 bool flag. No output. |
| | | |
− | ===SetFocusHandlingMode=== | + | === 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. |
| | | |
− | ===SetScreenShotAppletIdentityInfo=== | + | === SetScreenShotAppletIdentityInfo === |
| Takes an input 0x10-byte struct AppletIdentityInfo. No output. | | Takes an input 0x10-byte struct AppletIdentityInfo. No output. |
| | | |
− | ===SetOutOfFocusSuspendingEnabled=== | + | === SetOutOfFocusSuspendingEnabled === |
| Takes an input u8(bool flag). No output. | | Takes an input u8(bool flag). No output. |
| | | |
− | ===SetScreenShotImageOrientation=== | + | === SetScreenShotImageOrientation === |
| Takes an input s32. No output. | | Takes an input s32. No output. |
| | | |
− | ===CreateManagedDisplayLayer=== | + | === 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 696: |
Line 793: |
| |- | | |- |
| | 8 || [2.0.0+] TakeScreenShotOfOwnLayer | | | 8 || [2.0.0+] TakeScreenShotOfOwnLayer |
| + | |- |
| + | | 9 || [5.0.0+] CopyBetweenCaptureBuffers |
| |- | | |- |
| | 10 || AcquireLastApplicationCaptureBuffer | | | 10 || AcquireLastApplicationCaptureBuffer |
Line 718: |
Line 817: |
| |- | | |- |
| | 21 || [2.0.0+] 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 756: |
Line 867: |
| |- | | |- |
| | 40 || ReserveToStartAndWaitAndUnwindThis || Returns an [[#ILibraryAppletAccessor]]. | | | 40 || ReserveToStartAndWaitAndUnwindThis || Returns an [[#ILibraryAppletAccessor]]. |
| + | |- |
| + | | 41 || [4.0.0+] ReserveToStartAndWait || |
| |} | | |} |
| | | |
− | ===GetLaunchReason=== | + | === GetLaunchReason === |
| No input. Returns an u32 AppletProcessLaunchReason. | | No input. Returns an u32 AppletProcessLaunchReason. |
| | | |
Line 819: |
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 833: |
Line 945: |
| = idle:sys = | | = idle:sys = |
| This is "nn::idle::detail::IPolicyManagerSystem" | | 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 = |
Line 863: |
Line 992: |
| |- | | |- |
| | 9 || [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+] |
| + | |- |
| + | | 15 || [4.0.0+] |
| + | |- |
| + | | 16 || [4.0.0+] |
| + | |- |
| + | | 17 || [4.0.0+] |
| + | |- |
| + | | 18 || [4.0.0+] |
| + | |- |
| + | | 19 || [4.0.0+] |
| + | |- |
| + | | 20 || [4.0.0+] |
| + | |- |
| + | | 21 || [4.0.0+] |
| + | |- |
| + | | 22 || [4.0.0+] |
| + | |- |
| + | | 23 || [4.0.0+] |
| |} | | |} |
| | | |
| = spsm = | | = spsm = |
| This is "nn::spsm::detail::IPowerStateInterface". | | This is "nn::spsm::detail::IPowerStateInterface". |
− |
| |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 881: |
Line 1,037: |
| | 3 || | | | 3 || |
| |- | | |- |
− | | 4 || | + | | 4 || GetNotificationMessageEventHandle |
| |- | | |- |
| | 5 || | | | 5 || |
Line 889: |
Line 1,045: |
| | 7 || | | | 7 || |
| |- | | |- |
− | | 8 || | + | | 8 || AnalyzePerformanceLogForLastSleepWakeSequence |
| |- | | |- |
− | | 9 || | + | | 9 || ChangeHomeButtonLongPressingTime |
| + | |- |
| + | | 10 || |
| + | |- |
| + | | 11 || [1.0.0-3.0.2] |
| |} | | |} |
| | | |
Line 981: |
Line 1,141: |
| | 0100000000001013 | | | 0100000000001013 |
| | "myPage" | | | "myPage" |
| + | |- |
| + | |} |
| + | |
| + | === LibraryAppletMode === |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! ID |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | AllForeground |
| |- | | |- |
| |} | | |} |
Line 1,010: |
Line 1,181: |
| |} | | |} |
| | | |
− | ===NotificationMessage=== | + | === NotificationMessage === |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,025: |
Line 1,196: |
| |} | | |} |
| | | |
− | ===OperationMode=== | + | === OperationMode === |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,036: |
Line 1,207: |
| |} | | |} |
| | | |
− | =AppletResourceUserId= | + | = 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]] |