Line 95: |
Line 95: |
| |- | | |- |
| | 100 || [6.0.0+] PopRequestLaunchApplicationForDebug || | | | 100 || [6.0.0+] PopRequestLaunchApplicationForDebug || |
| + | |- |
| + | | 200 || [8.0.0+] LaunchDevMenu || |
| |} | | |} |
| | | |
Line 145: |
Line 147: |
| | 11 || [2.0.0+] NotifyCecSettingsChanged || | | | 11 || [2.0.0+] NotifyCecSettingsChanged || |
| |- | | |- |
− | | 12 || [2.0.0+] SetDefaultHomeButtonLongPressTime || | + | | 12 || [3.0.0+] SetDefaultHomeButtonLongPressTime || |
| |- | | |- |
− | | 13 || [2.0.0+] UpdateDefaultDisplayResolution || | + | | 13 || [3.0.0+] UpdateDefaultDisplayResolution || |
| |- | | |- |
− | | 14 || [2.0.0+] [[#ShouldSleepOnBoot]] || | + | | 14 || [3.0.0+] [[#ShouldSleepOnBoot]] || |
| |- | | |- |
| | 15 || [4.0.0+] GetHdcpAuthenticationFailedEvent || | | | 15 || [4.0.0+] GetHdcpAuthenticationFailedEvent || |
Line 230: |
Line 232: |
| |- | | |- |
| | 150 || [6.0.0+] ReportApplicationExitTimeout || | | | 150 || [6.0.0+] ReportApplicationExitTimeout || |
| + | |- |
| + | | 160 || [8.0.0+] SetApplicationAttribute || |
| + | |- |
| + | | 170 || [8.0.0+] HasSaveDataAccessPermission || |
| |} | | |} |
| | | |
Line 286: |
Line 292: |
| |- | | |- |
| | 11 || WriteThemeStorage || Takes an input u64 '''offset''' and a type-0x21 input buffer, no output. | | | 11 || WriteThemeStorage || Takes an input u64 '''offset''' and a type-0x21 input buffer, no output. |
| + | |- |
| + | | 40 || [8.0.0+] GetDisplayLogicalResolution || |
| + | |- |
| + | | 42 || [8.0.0+] SetDisplayMagnification || |
| + | |- |
| + | | 50 || [8.0.0+] SetHomeButtonDoubleClickEnabled || |
| + | |- |
| + | | 51 || [8.0.0+] GetHomeButtonDoubleClickEnabled || |
| |} | | |} |
| | | |
Line 347: |
Line 361: |
| | 16 || [2.0.0+] [[#GetMainAppletStorageId]] || | | | 16 || [2.0.0+] [[#GetMainAppletStorageId]] || |
| |- | | |- |
− | | 17 || [2.0.0+] GetCallerAppletIdentityInfoStack || | + | | 17 || [3.0.0+] GetCallerAppletIdentityInfoStack || |
| |- | | |- |
| | 18 || [4.0.0+] GetNextReturnDestinationAppletIdentityInfo || | | | 18 || [4.0.0+] GetNextReturnDestinationAppletIdentityInfo || |
Line 363: |
Line 377: |
| | 40 || [2.0.0+] GetIndirectLayerProducerHandle || | | | 40 || [2.0.0+] GetIndirectLayerProducerHandle || |
| |- | | |- |
− | | 50 || [2.0.0+] ReportVisibleError || | + | | 50 || [3.0.0+] ReportVisibleError || |
| |- | | |- |
| | 51 || [4.0.0+] ReportVisibleErrorWithErrorContext || | | | 51 || [4.0.0+] ReportVisibleErrorWithErrorContext || |
| |- | | |- |
| | 60 || [4.0.0+] [[#GetMainAppletApplicationDesiredLanguage]] || | | | 60 || [4.0.0+] [[#GetMainAppletApplicationDesiredLanguage]] || |
| + | |- |
| + | | 70 || [8.0.0+] GetCurrentApplicationId || |
| |- | | |- |
| | 80 || [6.0.0+] RequestExitToSelf || | | | 80 || [6.0.0+] RequestExitToSelf || |
Line 375: |
Line 391: |
| | 100 || [4.0.0+] [[#CreateGameMovieTrimmer]] || | | | 100 || [4.0.0+] [[#CreateGameMovieTrimmer]] || |
| |- | | |- |
− | | 101 || [6.0.0+] ReserveResourceForMovieOperation || | + | | 101 || [5.0.0+] ReserveResourceForMovieOperation || |
| |- | | |- |
− | | 102 || [6.0.0+] UnreserveResourceForMovieOperation || | + | | 102 || [5.0.0+] UnreserveResourceForMovieOperation || |
| |- | | |- |
| | 110 || [6.0.0+] GetMainAppletAvailableUsers || | | | 110 || [6.0.0+] GetMainAppletAvailableUsers || |
Line 475: |
Line 491: |
| | 5 || [2.0.0+] TerminateApplicationAndSetReason | | | 5 || [2.0.0+] TerminateApplicationAndSetReason |
| |- | | |- |
− | | 6 || [2.0.0+] SetScreenShotPermissionGlobally | + | | 6 || [3.0.0+] SetScreenShotPermissionGlobally |
| |- | | |- |
| | 10 || [6.0.0+] StartShutdownSequenceForOverlay | | | 10 || [6.0.0+] StartShutdownSequenceForOverlay |
| |- | | |- |
| | 11 || [6.0.0+] StartRebootSequenceForOverlay | | | 11 || [6.0.0+] StartRebootSequenceForOverlay |
| + | |- |
| + | | 20 || [8.0.0+] SetHandlingHomeButtonShortPressedEnabled |
| |- | | |- |
| | 90 || [7.0.0+] SetRequiresGpuResourceUse | | | 90 || [7.0.0+] SetRequiresGpuResourceUse |
| |- | | |- |
− | | 101 || [6.0.0+] BeginToObserveHidInputForDevelop | + | | 101 || [5.0.0+] BeginToObserveHidInputForDevelop |
| |} | | |} |
| | | |
Line 542: |
Line 560: |
| | 24 || [2.0.0+] GetLaunchStorageInfoForDebug || | | | 24 || [2.0.0+] GetLaunchStorageInfoForDebug || |
| |- | | |- |
− | | 25 || [2.0.0+] ExtendSaveData || | + | | 25 || [3.0.0+] ExtendSaveData || |
| |- | | |- |
− | | 26 || [2.0.0+] GetSaveDataSize || | + | | 26 || [3.0.0+] GetSaveDataSize || |
| |- | | |- |
| | 27 || [5.0.0+] CreateCacheStorage || | | | 27 || [5.0.0+] CreateCacheStorage || |
Line 594: |
Line 612: |
| | 122 || [5.0.0+] UnpopToUserChannel || | | | 122 || [5.0.0+] UnpopToUserChannel || |
| |- | | |- |
− | | 123 || [6.0.0+] GetPreviousProgramIndex || | + | | 123 || [5.0.0+] GetPreviousProgramIndex || |
| |- | | |- |
| | 124 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash || | | | 124 || [6.0.0+] EnableApplicationAllThreadDumpOnCrash || |
| + | |- |
| + | | 130 || [8.0.0+] GetGpuErrorDetectedSystemEvent || |
| |- | | |- |
| | 500 || [5.0.0+] StartContinuousRecordingFlushForDebug || | | | 500 || [5.0.0+] StartContinuousRecordingFlushForDebug || |
Line 877: |
Line 897: |
| | 31 || [2.0.0+] [[#GetReaderLockAccessorEx]] || | | | 31 || [2.0.0+] [[#GetReaderLockAccessorEx]] || |
| |- | | |- |
− | | 32 || [7.0.0+] GetWriterLockAccessorEx || Takes a total of 4-bytes of input, returns an output [[#ILockAccessor]]. | + | | 32 || [7.0.0+] [[#GetWriterLockAccessorEx]] || |
| |- | | |- |
| | 40 || [2.0.0+] GetCradleFwVersion || | | | 40 || [2.0.0+] GetCradleFwVersion || |
Line 887: |
Line 907: |
| | 52 || [4.0.0+] SetLcdBacklighOffEnabled || | | | 52 || [4.0.0+] SetLcdBacklighOffEnabled || |
| |- | | |- |
− | | 53 || [7.0.0+] BeginVrModeEx || No input/output. | + | | 53 || [7.0.0+] [[#BeginVrModeEx]] || |
| |- | | |- |
− | | 54 || [7.0.0+] EndVrModeEx || No input/output. | + | | 54 || [7.0.0+] [[#EndVrModeEx]] || |
| |- | | |- |
| | 55 || [3.0.0+] [[#IsInControllerFirmwareUpdateSection]] || | | | 55 || [3.0.0+] [[#IsInControllerFirmwareUpdateSection]] || |
Line 905: |
Line 925: |
| | 65 || [5.1.0+] GetApplicationIdByContentActionName || | | | 65 || [5.1.0+] GetApplicationIdByContentActionName || |
| |- | | |- |
− | | 66 || [6.0.0+] SetCpuBoostMode || | + | | 66 || [6.0.0+] [[#SetCpuBoostMode]] || |
| |- | | |- |
| | 80 || [6.0.0+] PerformSystemButtonPressingIfInFocus || | | | 80 || [6.0.0+] PerformSystemButtonPressingIfInFocus || |
| |- | | |- |
− | | 90 || [7.0.0+] SetPerformanceConfigurationChangedNotification || Takes an input u8, no output. | + | | 90 || [7.0.0+] SetPerformanceConfigurationChangedNotification || |
| |- | | |- |
− | | 91 || [7.0.0+] GetCurrentPerformanceConfiguration || No input, returns a total of 4-bytes of output. | + | | 91 || [7.0.0+] GetCurrentPerformanceConfiguration || |
| |- | | |- |
− | | 200 || [7.0.0+] GetOperationModeSystemInfo || No input, returns a total of 4-bytes of output. | + | | 200 || [7.0.0+] GetOperationModeSystemInfo || |
| |} | | |} |
| | | |
| 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]]). | | 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]]). |
| + | |
| + | [7.0.0+] User-processes now use BeginVrModeEx/EndVrModeEx instead of [[#SetVrModeEnabled]]. Prior to using using BeginVrModeEx, [[Parental_Control_services|pctl]] IsStereoVisionPermitted is used and error 0xD08E is thrown if not allowed by pctl. |
| | | |
| === GetEventHandle === | | === GetEventHandle === |
Line 961: |
Line 983: |
| | | |
| === GetReaderLockAccessorEx === | | === GetReaderLockAccessorEx === |
| + | Takes an input u32, returns an output [[#ILockAccessor]]. |
| + | |
| + | === GetWriterLockAccessorEx === |
| Takes an input u32, returns an output [[#ILockAccessor]]. | | Takes an input u32, returns an output [[#ILockAccessor]]. |
| | | |
Line 972: |
Line 997: |
| | | |
| 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. | | 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. |
| + | |
| + | === BeginVrModeEx === |
| + | No input/output. |
| + | |
| + | Identical to [[#SetVrModeEnabled]] except with hard-coded flag=1. |
| + | |
| + | === EndVrModeEx === |
| + | No input/output. |
| + | |
| + | Identical to [[#SetVrModeEnabled]] except with hard-coded flag=0. |
| | | |
| === IsInControllerFirmwareUpdateSection === | | === IsInControllerFirmwareUpdateSection === |
Line 978: |
Line 1,013: |
| === GetDefaultDisplayResolutionChangeEvent === | | === GetDefaultDisplayResolutionChangeEvent === |
| No input, returns an output handle. | | No input, returns an output handle. |
| + | |
| + | === SetCpuBoostMode === |
| + | Takes an input u32 '''CpuBoostMode''' (only modes 0 and 1 are valid) and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]]. |
| + | |
| + | === SetPerformanceConfigurationChangedNotification === |
| + | Takes an input u8 bool, no output. |
| + | |
| + | === GetCurrentPerformanceConfiguration === |
| + | No input, returns the result of calling [[PPC_services#apm:sys|GetCurrentPerformanceConfiguration]]. |
| + | |
| + | === GetOperationModeSystemInfo === |
| + | No input, returns a total of 4-bytes of output. |
| | | |
| == ISelfController == | | == ISelfController == |
Line 1,024: |
Line 1,071: |
| | 42 || [4.0.0+] GetSystemSharedLayerHandle | | | 42 || [4.0.0+] GetSystemSharedLayerHandle |
| |- | | |- |
− | | 43 || [6.0.0+] GetSystemSharedBufferHandle | + | | 43 || [5.0.0+] GetSystemSharedBufferHandle |
| |- | | |- |
| | 50 || SetHandlesRequestToDisplay | | | 50 || SetHandlesRequestToDisplay |
Line 1,042: |
Line 1,089: |
| | 65 || [2.0.0+] ReportUserIsActive | | | 65 || [2.0.0+] ReportUserIsActive |
| |- | | |- |
− | | 66 || [3.0.0+] GetCurrentIlluminance | + | | 66 || [3.0.0+] [[#GetCurrentIlluminance]] |
| |- | | |- |
| | 67 || [3.0.0+] [[#IsIlluminanceAvailable]] | | | 67 || [3.0.0+] [[#IsIlluminanceAvailable]] |
| |- | | |- |
− | | 68 || [4.0.0+] SetAutoSleepDisabled | + | | 68 || [5.0.0+] SetAutoSleepDisabled |
| |- | | |- |
− | | 69 || [4.0.0+] IsAutoSleepDisabled | + | | 69 || [5.0.0+] IsAutoSleepDisabled |
| |- | | |- |
− | | 70 || [5.0.0+] ReportMultimediaError | + | | 70 || [4.0.0+] ReportMultimediaError |
| |- | | |- |
− | | 71 || [6.0.0+] GetCurrentIlluminanceEx | + | | 71 || [5.0.0+] [[#GetCurrentIlluminanceEx]] |
| |- | | |- |
− | | 80 || [5.0.0+] SetWirelessPriorityMode | + | | 80 || [4.0.0+] SetWirelessPriorityMode |
| |- | | |- |
| | 90 || [6.0.0+] GetAccumulatedSuspendedTickValue | | | 90 || [6.0.0+] GetAccumulatedSuspendedTickValue |
Line 1,061: |
Line 1,108: |
| |- | | |- |
| | 100 || [7.0.0+] [[#SetAlbumImageTakenNotificationEnabled]] | | | 100 || [7.0.0+] [[#SetAlbumImageTakenNotificationEnabled]] |
| + | |- |
| + | | 110 || [8.0.0+] SetApplicationAlbumUserData |
| |- | | |- |
| | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] | | | 1000 || [7.0.0+] [[#GetDebugStorageChannel]] |
Line 1,083: |
Line 1,132: |
| === LeaveFatalSection === | | === LeaveFatalSection === |
| No input/output. | | No input/output. |
| + | |
| + | [[#EnterFatalSection]] must be executed at least once before executing this command, otherwise error code 0x40080 will be returned. EnterFatalSection and LeaveFatalSection work in pairs, that is, N calls to EnterFatalSection must be performed first in order to perform N executions of LeaveFatalSection. Essentially, these two functions operate like how one would lock and unlock a recursive mutex. |
| | | |
| === GetLibraryAppletLaunchableEvent === | | === GetLibraryAppletLaunchableEvent === |
Line 1,115: |
Line 1,166: |
| === SetMediaPlaybackState === | | === SetMediaPlaybackState === |
| Takes an input u8 bool, no output. | | Takes an input u8 bool, no output. |
| + | |
| + | === GetCurrentIlluminance === |
| + | No input, returns an output float. |
| + | |
| + | Uses [[Backlight_services|lbl]] command GetAmbientLightSensorValue, where only the output float is used. |
| | | |
| === IsIlluminanceAvailable === | | === IsIlluminanceAvailable === |
| No input, returns an output u8 bool. | | No input, returns an output u8 bool. |
| + | |
| + | Uses [[Backlight_services|lbl]] command IsAmbientLightSensorAvailable. |
| + | |
| + | User-processes can use this to determine whether to continue with using GetCurrentIlluminance(Ex). |
| + | |
| + | === GetCurrentIlluminanceEx === |
| + | No input, returns an output u8 bool and float. |
| + | |
| + | Uses [[Backlight_services|lbl]] command GetAmbientLightSensorValue. |
| | | |
| === SetAlbumImageTakenNotificationEnabled === | | === SetAlbumImageTakenNotificationEnabled === |
Line 1,235: |
Line 1,300: |
| | 18 || AcquireCallerAppletCaptureBufferEx | | | 18 || AcquireCallerAppletCaptureBufferEx |
| |- | | |- |
− | | 20 || [2.0.0+] ClearCaptureBuffer | + | | 20 || [3.0.0+] ClearCaptureBuffer |
| |- | | |- |
− | | 21 || [2.0.0+] ClearAppletTransitionBuffer | + | | 21 || [3.0.0+] ClearAppletTransitionBuffer |
| |- | | |- |
| | 22 || [4.0.0+] AcquireLastApplicationCaptureSharedBuffer | | | 22 || [4.0.0+] AcquireLastApplicationCaptureSharedBuffer |
Line 1,330: |
Line 1,395: |
| |- | | |- |
| | 40 || [6.0.0+] GetAppletResourceUsageInfo || | | | 40 || [6.0.0+] GetAppletResourceUsageInfo || |
| + | |- |
| + | | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] || |
| |} | | |} |
| | | |
| === OpenMainApplication === | | === OpenMainApplication === |
| No input, returns an output [[#IApplicationAccessor]]. | | No input, returns an output [[#IApplicationAccessor]]. |
| + | |
| + | === SetCpuBoostModeForApplet === |
| + | Takes an input u32 '''CpuBoostMode''' (only modes 0 and 1 are valid) and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]]. |
| | | |
| == IStorage == | | == IStorage == |
Line 1,388: |
Line 1,458: |
| Returns an [[#IApplicationProxy]]. See [[#appletAE]]. | | Returns an [[#IApplicationProxy]]. See [[#appletAE]]. |
| | | |
− | Takes a [[IPC_Marshalling|reserved]] input u64(official user-processes use hard-coded value 0), a PID, and a process copy-handle(cur-proc handle alias). | + | Takes a [[IPC_Marshalling|reserved]] input u64 (official user-processes use hard-coded value 0), a PID, and a process copy-handle (cur-proc handle alias). |
| | | |
| On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first. | | On failure, official user-processes will retry using this command in a loop while the retval is 0x19280, with svcSleepThread(10000000) being called first. |
Line 1,413: |
Line 1,483: |
| | 5 || ReportUserIsActive | | | 5 || ReportUserIsActive |
| |} | | |} |
| + | |
| + | [3.0.0+] SetHandlingContext now takes an additional 0x10-bytes of input. |
| | | |
| = omm = | | = omm = |
Line 1,510: |
Line 1,582: |
| | 11 || [1.0.0-3.0.2] | | | 11 || [1.0.0-3.0.2] |
| |} | | |} |
| + | |
| + | [3.0.0+] Cmd11 now takes a total of 8-bytes of input. |
| | | |
| = tcap = | | = tcap = |
Line 1,541: |
Line 1,615: |
| |- | | |- |
| | 203 || SaveScreenShotEx0 || | | | 203 || SaveScreenShotEx0 || |
| + | |- |
| + | | 205 || [8.0.0+] SaveScreenShotEx1 || |
| |- | | |- |
| | 210 || SaveScreenShotEx2 || Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer. Returns a total of 0x20-bytes of output. | | | 210 || SaveScreenShotEx2 || Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer. Returns a total of 0x20-bytes of output. |
| |} | | |} |
| | | |
− | Cmd32 is a wrapper for [[Capture_services|caps:c]] cmd33. Commands 201, 203, and 210 are wrappers for [[Display_services|caps:sc]] cmd210.
| + | '''SetShimLibraryVersion''' is a wrapper for [[Capture_services|caps:c]] cmd33. Commands '''SaveScreenShot''', '''SaveScreenShotEx0''', '''SaveScreenShotEx1''' and '''SaveScreenShotEx2''' are wrappers for [[Display_services|caps:sc]] cmd210. |
| | | |
| == SaveScreenShot == | | == SaveScreenShot == |
Line 1,611: |
Line 1,687: |
| | 0x0A | | | 0x0A |
| | 0100000000001001 | | | 0100000000001001 |
− | | "auth" | + | | [[Auth_Applet|"auth"]] |
| |- | | |- |
| | 0x0B | | | 0x0B |
Line 1,695: |
Line 1,771: |
| | 0x3 | | | 0x3 |
| | Background with indirect display, see also [[#GetIndirectLayerConsumerHandle]]. Only used by swkbd InlineKeyboard. | | | Background with indirect display, see also [[#GetIndirectLayerConsumerHandle]]. Only used by swkbd InlineKeyboard. |
| + | |- |
| + | | 0x4 |
| + | | AllForegroundInitiallyHidden. Can be used by [7.0.0+] [[Internet_Browser|WebSession]]. |
| |- | | |- |
| |} | | |} |