Changes

Jump to navigation Jump to search
7,181 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):
 +
* "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]]

Navigation menu