Changes

Jump to navigation Jump to search
no edit summary
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]].
 
|-
 
|-
 
|}
 
|}

Navigation menu