Changes

4,344 bytes added ,  19:07, 7 September 2018
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]]