Applet Manager services: Difference between revisions

No edit summary
(11 intermediate revisions by 2 users not shown)
Line 175: Line 175:
| 3 || [[#GetEvent]]
| 3 || [[#GetEvent]]
|-
|-
| 4 || [10.0.0+] IsLocked
| 4 || [10.0.0+] [[#IsLocked]]
|}
|}


Line 190: Line 190:
===== GetEvent =====
===== GetEvent =====
No input, returns an output Event handle with autoclear=false.
No input, returns an output Event handle with autoclear=false.
==== IsLocked ====
No input, returns an output u8 bool.


=== IGlobalStateController ===
=== IGlobalStateController ===
Line 360: Line 363:
| 190 || [9.0.0+] [[#PushToNotificationStorageChannel]] ||
| 190 || [9.0.0+] [[#PushToNotificationStorageChannel]] ||
|-
|-
| 200 || [10.0.0+] ||
| 200 || [10.0.0+] [[#RequestApplicationSoftReset]] ||
|-
|-
| 201 || [10.0.0+] ||
| 201 || [10.0.0+] [[#RestartApplicationTimer]] ||
|}
|}


Line 442: Line 445:


[[qlaunch]] will only push data for this when launching the Application when the Alarm was triggered, where the system was previously in sleep-mode. This data is the [[Glue_services|Notification]] ApplicationParameter.
[[qlaunch]] will only push data for this when launching the Application when the Alarm was triggered, where the system was previously in sleep-mode. This data is the [[Glue_services|Notification]] ApplicationParameter.
===== RequestApplicationSoftReset =====
No input/output.
===== RestartApplicationTimer =====
No input/output.


===== IAppletAccessor =====
===== IAppletAccessor =====
Line 504: Line 513:
| 51 || [8.0.0+] [[#GetHomeButtonDoubleClickEnabled]] ||  
| 51 || [8.0.0+] [[#GetHomeButtonDoubleClickEnabled]] ||  
|-
|-
| 52 || [10.0.0+] IsHomeButtonShortPressedBlocked ||  
| 52 || [10.0.0+] [[#IsHomeButtonShortPressedBlocked]] ||  
|}
|}


Line 539: Line 548:


=== GetHomeButtonDoubleClickEnabled ===
=== GetHomeButtonDoubleClickEnabled ===
No input, returns an output u8 bool.
=== IsHomeButtonShortPressedBlocked ===
No input, returns an output u8 bool.
No input, returns an output u8 bool.


Line 638: Line 650:
| 130 || [9.0.0+] [[#GetGpuErrorDetectedSystemEvent]] ||
| 130 || [9.0.0+] [[#GetGpuErrorDetectedSystemEvent]] ||
|-
|-
| 140 || [10.0.0+] SetApplicationMemoryReservation ||
| 140 || [10.0.0+] [[#SetApplicationMemoryReservation]] ||
|-
|-
| 150 || [10.0.0+] ShouldSetGpuTimeSliceManually ||
| 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] ||
|}
|}


Line 765: Line 777:


Normally the output bool is set to 0, however when no users are available it's set to 1 with '''total_entries''' = -1.
Normally the output bool is set to 0, however when no users are available it's set to 1 with '''total_entries''' = -1.
==== SetApplicationMemoryReservation ====
Takes an input u64, no output.
An Application must be currently running. The input u64 must be 0x1000-byte aligned.
==== ShouldSetGpuTimeSliceManually ====
No input, returns an output u8 bool.


== IOverlayAppletProxy ==
== IOverlayAppletProxy ==
Line 819: Line 839:
| 30 || [9.0.0+] [[#SetHealthWarningShowingState]]
| 30 || [9.0.0+] [[#SetHealthWarningShowingState]]
|-
|-
| 31 || [10.0.0+] IsHealthWarningRequired
| 31 || [10.0.0+] [[#IsHealthWarningRequired]]
|-
|-
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
Line 868: Line 888:


This writes the input bool into state, signals an Event, and returns 0.
This writes the input bool into state, signals an Event, and returns 0.
==== IsHealthWarningRequired ====
No input, returns an output u8 bool.


==== SetRequiresGpuResourceUse ====
==== SetRequiresGpuResourceUse ====
Line 948: Line 971:
| 33 || [[#EndBlockingHomeButton]] ||
| 33 || [[#EndBlockingHomeButton]] ||
|-
|-
| 34 || [10.0.0+] SelectApplicationLicense ||
| 34 || [10.0.0+] [[#SelectApplicationLicense]] ||
|-
|-
| 40 || [[#NotifyRunning]] ||
| 40 || [[#NotifyRunning]] ||
Line 968: Line 991:
| 71 || [3.0.0+] [[#RequestToReboot]] ||
| 71 || [3.0.0+] [[#RequestToReboot]] ||
|-
|-
| 72 || [10.0.0+] RequestToSleep ||
| 72 || [10.0.0+] [[#RequestToSleep]] ||
|-
|-
| 80 || [4.0.0+] [[#ExitAndRequestToShowThanksMessage]] ||  
| 80 || [4.0.0+] [[#ExitAndRequestToShowThanksMessage]] ||  
Line 1,007: Line 1,030:
|-
|-
| 170 || [9.0.0+] [[#SetHdcpAuthenticationActivated]] ||  
| 170 || [9.0.0+] [[#SetHdcpAuthenticationActivated]] ||  
|-
| 180 || [10.1.0+] [[#GetLaunchRequiredVersion]] ||
|-
| 181 || [10.1.0+] [[#UpgradeLaunchRequiredVersion]] ||
|-
|-
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]] ||  
| 500 || [5.0.0+] [[#StartContinuousRecordingFlushForDebug]] ||  
Line 1,097: Line 1,124:
==== EndBlockingHomeButton ====
==== EndBlockingHomeButton ====
No input/output.
No input/output.
==== SelectApplicationLicense ====
Takes an input array of [[#ApplicationLicenseType]], returns an output [[#ApplicationLicenseType]].


==== NotifyRunning ====
==== NotifyRunning ====
Line 1,132: Line 1,162:


On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
==== RequestToSleep ====
No input/output.


==== ExitAndRequestToShowThanksMessage ====
==== ExitAndRequestToShowThanksMessage ====
Line 1,239: Line 1,272:
==== SetHdcpAuthenticationActivated ====
==== SetHdcpAuthenticationActivated ====
Takes an input u8 bool, no output.
Takes an input u8 bool, no output.
==== GetLaunchRequiredVersion ====
Takes an input [[NCM_services#ApplicationId|ApplicationId]], an u64, returns an output [[#LaunchRequiredVersion]].
sdknso passes hard-coded value 0 for the u64.
==== UpgradeLaunchRequiredVersion ====
Takes an input [[#LaunchRequiredVersion]], an [[NCM_services#ApplicationId|ApplicationId]], an u64, no output.
sdknso passes hard-coded value 0 for the u64.


==== StartContinuousRecordingFlushForDebug ====
==== StartContinuousRecordingFlushForDebug ====
Line 1,253: Line 1,296:


==== PrepareForJit ====
==== PrepareForJit ====
Takes no input. Launches title 010000000000003B (currently not present on retail systems) if some context variable is not set, with that context variable being initialized afterwards.
Takes no input. Launches the [[JIT_services|jit-sysmodule]] if some context variable is not set, with that context variable being initialized afterwards.


=== IMovieMaker ===
=== IMovieMaker ===
Line 1,342: Line 1,385:
| 50 || [[#SetOutOfFocusApplicationSuspendingEnabled]] ||
| 50 || [[#SetOutOfFocusApplicationSuspendingEnabled]] ||
|-
|-
| 60 || [10.0.0+] PresetLibraryAppletGpuTimeSliceZero ||
| 60 || [10.0.0+] [[#PresetLibraryAppletGpuTimeSliceZero]] ||
|-
|-
| 100 || [[#PushInData]] ||  
| 100 || [[#PushInData]] ||  
Line 1,373: Line 1,416:


Official sw will assert prior to using this if applet-service was not initialized as *Application.
Official sw will assert prior to using this if applet-service was not initialized as *Application.
==== PresetLibraryAppletGpuTimeSliceZero ====
No input/output.
sdknso only uses with with [[Software_Keyboard|swkbd-inline]], immediately after creating the LibraryApplet.


==== PushInData ====
==== PushInData ====
Line 1,479: Line 1,527:
| 66 || [6.0.0+] [[#SetCpuBoostMode]] ||
| 66 || [6.0.0+] [[#SetCpuBoostMode]] ||
|-
|-
| 67 || [10.0.0+] CancelCpuBoostMode ||
| 67 || [10.0.0+] [[#CancelCpuBoostMode]] ||
|-
|-
| 80 || [6.0.0+] [[#PerformSystemButtonPressingIfInFocus]] ||
| 80 || [6.0.0+] [[#PerformSystemButtonPressingIfInFocus]] ||
Line 1,493: Line 1,541:
| 300 || [9.0.0+] [[#GetSettingsPlatformRegion]] ||
| 300 || [9.0.0+] [[#GetSettingsPlatformRegion]] ||
|-
|-
| 400 || [10.0.0+] ActivateMigrationService ||
| 400 || [10.0.0+] [[#ActivateMigrationService]] ||
|-
|-
| 401 || [10.0.0+] DeactivateMigrationService ||
| 401 || [10.0.0+] [[#DeactivateMigrationService]] ||
|}
|}


Line 1,636: Line 1,684:
=== SetCpuBoostMode ===
=== SetCpuBoostMode ===
Takes an input u32 '''CpuBoostMode''' (only modes 0 and 1 are valid) and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]].
Takes an input u32 '''CpuBoostMode''' (only modes 0 and 1 are valid) and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]].
=== CancelCpuBoostMode ===
No input/output.


=== PerformSystemButtonPressingIfInFocus ===
=== PerformSystemButtonPressingIfInFocus ===
Line 1,657: Line 1,708:


This just returns the output from [[Settings_services#GetPlatformRegion|setsys GetPlatformRegion]].
This just returns the output from [[Settings_services#GetPlatformRegion|setsys GetPlatformRegion]].
=== ActivateMigrationService ===
No input/output.
=== DeactivateMigrationService ===
No input/output.


== ISelfController ==
== ISelfController ==
Line 1,705: Line 1,762:
| 43 || [5.0.0+] [[#GetSystemSharedBufferHandle]]
| 43 || [5.0.0+] [[#GetSystemSharedBufferHandle]]
|-
|-
| 44 || [10.0.0+] CreateManagedDisplaySeparableLayer
| 44 || [10.0.0+] [[#CreateManagedDisplaySeparableLayer]]
|-
|-
| 45 || [10.0.0+] SetManagedDisplayLayerSeparationMode
| 45 || [10.0.0+] [[#SetManagedDisplayLayerSeparationMode]]
|-
|-
| 50 || [[#SetHandlesRequestToDisplay]]
| 50 || [[#SetHandlesRequestToDisplay]]
Line 1,858: Line 1,915:


Same as [[#GetSystemSharedLayerHandle]] except this just gets the SharedBufferHandle.
Same as [[#GetSystemSharedLayerHandle]] except this just gets the SharedBufferHandle.
=== CreateManagedDisplaySeparableLayer ===
No input, returns two output u64 LayerIds.
sdknso now uses this instead of [[#CreateManagedDisplayLayer]]. sdknso caches the output from the cmd so that it's only used once. The first u64 is used the same as the original LayerId from [[#CreateManagedDisplayLayer]]. <code>nn::vi::CreateRecordingLayer</code> uses the second LayerId, the layer creation is identical besides which LayerId is used.
=== SetManagedDisplayLayerSeparationMode ===
Takes an input u32, no output.
sdknso exposes this as <code>nn::vi::SetRecordingLayerEnabled(bool)</code>.
The input u32 must be 0-1.


=== SetHandlesRequestToDisplay ===
=== SetHandlesRequestToDisplay ===
Line 2,348: Line 2,417:
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] ||
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] ||
|-
|-
| 101 || [10.0.0+] CancelCpuBoostModeForApplet ||
| 101 || [10.0.0+] [[#CancelCpuBoostModeForApplet]] ||
|-
|-
| 110 || [9.0.0+] [[#PushToAppletBoundChannelForDebug]] ||
| 110 || [9.0.0+] [[#PushToAppletBoundChannelForDebug]] ||
Line 2,395: Line 2,464:


The cached value loaded from [[Settings_services#GetDebugModeFlag]] must be 1, otherwise an error is returned.
The cached value loaded from [[Settings_services#GetDebugModeFlag]] must be 1, otherwise an error is returned.
=== CancelCpuBoostModeForApplet ===
No input/output.


=== PushToAppletBoundChannelForDebug ===
=== PushToAppletBoundChannelForDebug ===
Line 2,720: Line 2,792:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! ID
! Id
! Title-id
! ProgramId
! Description
! Description
|-
|-
| 0x01
| 0x01
|  
|  
| Application. Not valid for use with LibraryApplets.
| Application (not valid for use with LibraryApplets)
|-
|-
| 0x02
| 0x02
| 010000000000100C
| 010000000000100C
| "overlayDisp"
| overlayDisp (OverlayApplet)
|-
|-
| 0x03
| 0x03
| 0100000000001000
| 0100000000001000
| "qlaunch"
| qlaunch (SystemAppletMenu)
|-
|-
| 0x04
| 0x04
| 0100000000001012
| 0100000000001012
| "starter" SystemApplication.
| starter (DummyStarter)
|-
|-
| 0x0A
| 0x0A
| 0100000000001001
| 0100000000001001
| [[Auth_Applet|"auth"]]
| [[Auth_Applet|auth (LibraryAppletAuth)]]
|-
|-
| 0x0B
| 0x0B
| 0100000000001002
| 0100000000001002
| "cabinet"
| [[Cabinet_Applet|cabinet (LibraryAppletCabinet)]]
|-
|-
| 0x0C
| 0x0C
| 0100000000001003
| 0100000000001003
| [[Controller_Applet|"controller"]]
| [[Controller_Applet|controller (LibraryAppletController)]]
|-
|-
| 0x0D
| 0x0D
| 0100000000001004
| 0100000000001004
| "dataErase"
| dataErase (LibraryAppletDataErase)
|-
|-
| 0x0E
| 0x0E
| 0100000000001005
| 0100000000001005
| [[Error_Applet|"error"]]
| [[Error_Applet|error (LibraryAppletError)]]
|-
|-
| 0x0F
| 0x0F
| 0100000000001006
| 0100000000001006
| "netConnect"
| netConnect (LibraryAppletNetConnect)
|-
|-
| 0x10
| 0x10
| 0100000000001007
| 0100000000001007
| [[Profile_Selector|"playerSelect"]]
| [[Profile_Selector|playerSelect (LibraryAppletPlayerSelect)]]
|-
|-
| 0x11
| 0x11
| 0100000000001008
| 0100000000001008
| [[Software_Keyboard|"swkbd"]]
| [[Software_Keyboard|swkbd (LibraryAppletSwkbd)]]
|-
|-
| 0x12
| 0x12
| 0100000000001009
| 0100000000001009
| "miiEdit"
| [[MiiEdit_Applet|miiEdit (LibraryAppletMiiEdit)]]
|-
|-
| 0x13
| 0x13
| 010000000000100A
| 010000000000100A
| "LibAppletWeb" [[Internet_Browser#010000000000100A|WebApplet]] applet
| [[Internet_Browser#010000000000100A|web (LibraryAppletWeb)]]
|-
|-
| 0x14
| 0x14
| 010000000000100B
| 010000000000100B
| "LibAppletShop" [[Internet_Browser#ShopN|ShopN]] applet
| [[Internet_Browser#ShopN|shop (LibraryAppletShop)]]
|-
|-
| 0x15
| 0x15
| 010000000000100D
| 010000000000100D
| [[Album_Applet|"photoViewer"]]
| [[Album_Applet|photoViewer (LibraryAppletPhotoViewer)]]
|-
|-
| 0x16
| 0x16
| 010000000000100E
| 010000000000100E
| "set"
| set (LibraryAppletSet)
|-
|-
| 0x17
| 0x17
| 010000000000100F
| 010000000000100F
| "LibAppletOff" [[Internet_Browser#Offline_Applet|Offline]] applet
| [[Internet_Browser#Offline_Applet|offlineWeb (LibraryAppletOfflineWeb)]]
|-
|-
| 0x18
| 0x18
| 0100000000001010
| 0100000000001010
| "LibAppletLns" [[Internet_Browser#Whitelisted_Applets|Whitelisted]] applet
| [[Internet_Browser#Whitelisted_Applets|loginShare (LibraryAppletLoginShare)]]
|-
|-
| 0x19
| 0x19
| 0100000000001011
| 0100000000001011
| "LibAppletAuth" [[Internet_Browser#WifiWebAuthApplet|WifiWebAuth]] applet
| [[Internet_Browser#WifiWebAuthApplet|wifiWebAuth (LibraryAppletWifiWebAuth)]]
|-
|-
| 0x1A
| 0x1A
| 0100000000001013
| 0100000000001013
| [[MyPage_Applet|"myPage"]]
| [[MyPage_Applet|myPage (LibraryAppletMyPage)]]
|-
| 0x1B
| 010000000000101A
| gift (LibraryAppletGift)
|-
| 0x1C
| 010000000000101C
| userMigration (LibraryAppletUserMigration)
|-
| 0x1D
| 010000000000101D
| [9.0.0+] EncounterSys (LibraryAppletPreomiaSys)
|-
| 0x1E
| 0100000000001020
| [9.0.0+] story (LibraryAppletStory)
|-
| 0x1F
| 010070000E3C0000
| [9.0.0+] EncounterUsr (LibraryAppletPreomiaUsr)
|-
| 0x20
| 010086000E49C000
| [9.0.0+] EncounterUsrDummy (LibraryAppletPreomiaUsrDummy)
|-
| 0x21
| 0100000000001038
| [10.0.0+] sample (LibraryAppletSample)
|-
| 0x3F1
| 010000000000D619
| [10.0.0+]
|-
| 0x3F2
| 010000000000D610
| [10.0.0+]
|-
| 0x3F3
| 010000000000D611
| [10.0.0+]
|-
| 0x3F4
| 010000000000D612
| [10.0.0+]
|-
| 0x3F5
| 010000000000D613
| [10.0.0+]
|-
| 0x3F6
| 010000000000D614
| [10.0.0+]
|-
| 0x3F7
| 010000000000D615
| [10.0.0+]
|-
| 0x3F8
| 010000000000D616
| [10.0.0+]
|-
| 0x3F9
| 010000000000D617
| [10.0.0+]
|-
| 0x3FA
| 010000000000D60A
| [10.0.0+]
|-
| 0x3FB
| 010000000000D60B
| [10.0.0+]
|-
| 0x3FC
| 010000000000D60C
| [10.0.0+]
|-
| 0x3FD
| 010000000000D60D
| [10.0.0+]
|-
| 0x3FE
| 010000000000D60E
| [10.0.0+]
|}
|}


Line 3,106: Line 3,262:


This struct is "nn::am::service::AppletResourceUsageInfo". This struct is 0x20-bytes.
This struct is "nn::am::service::AppletResourceUsageInfo". This struct is 0x20-bytes.
= ApplicationLicenseType =
This is "nn::oe::ApplicationLicenseType". This is 1-byte.
= LaunchRequiredVersion =
This is "nn::oe::LaunchRequiredVersion". This is a 0x40-byte struct with 1-byte alignment.


= Notes =
= Notes =