Applet Manager services: Difference between revisions

No edit summary
Line 1,229: Line 1,229:


==== SetApplicationCopyrightImage ====
==== SetApplicationCopyrightImage ====
Takes a type-0x45 input buffer, an s32 '''x''', an s32 '''y''', an s32 '''width''', an s32 '''height''', an s32 '''WindowOriginMode''', and no output.
Takes a type-0x45 input buffer, an s32 '''x''', an s32 '''y''', an s32 '''width''', an s32 '''height''', an s32 [[#WindowOriginMode]], and no output.
 
The last s32 is "nn::oe::WindowOriginMode". This should be at least 1.


'''x''' and '''y''' must not have the negative bit set. '''width''' and '''height''' must not be <1.
'''x''' and '''y''' must not have the negative bit set. '''width''' and '''height''' must not be <1.
Line 1,650: Line 1,648:


=== GetPerformanceMode ===
=== GetPerformanceMode ===
No input. Returns an output u32 for the current PerformanceMode.
No input. Returns an output u32 for the current [[#PerformanceMode]].


=== GetCradleStatus ===
=== GetCradleStatus ===
Line 1,663: Line 1,661:


=== GetCurrentFocusState ===
=== GetCurrentFocusState ===
No input. Returns an output u8:
No input. Returns an output u8 [[#FocusState]].
 
* 1: In focus.
* 2/3: Out of focus(running in "background").


=== RequestToAcquireSleepLock ===
=== RequestToAcquireSleepLock ===
Line 1,772: Line 1,767:


=== 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]] and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]].


=== CancelCpuBoostMode ===
=== CancelCpuBoostMode ===
Line 2,146: Line 2,141:


=== SetWirelessPriorityMode ===
=== SetWirelessPriorityMode ===
Takes an input s32 enum '''WirelessPriorityMode''', no output.
Takes an input s32 [[#WirelessPriorityMode]], no output.
 
The input value must be 1 or 2.


=== GetAccumulatedSuspendedTickValue ===
=== GetAccumulatedSuspendedTickValue ===
Line 2,618: Line 2,611:


=== SetCpuBoostModeForApplet ===
=== SetCpuBoostModeForApplet ===
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]] and passes it to [[PPC_services#apm:sys|SetCpuBoostMode]].


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.
Line 2,945: Line 2,938:
|}
|}


= Enums =
= AppletId =
=== AppletId ===
This is "nn::applet::AppletId". See also [[:Category:Library Applets]].
See also [[:Category:Library Applets]].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Id
! Value
! ProgramId
! ProgramId
! Description
! Description
|-
| 0x00
|
| None
|-
|-
| 0x01
| 0x01
Line 2,961: Line 2,957:
| 0x02
| 0x02
| 010000000000100C
| 010000000000100C
| overlayDisp (OverlayApplet)
| OverlayApplet (overlayDisp)
|-
|-
| 0x03
| 0x03
| 0100000000001000
| 0100000000001000
| qlaunch (SystemAppletMenu)
| SystemAppletMenu (qlaunch)
|-
|-
| 0x04
| 0x04
| 0100000000001012
| 0100000000001012
| starter (DummyStarter)
| SystemApplication (starter)
|-
|-
| 0x0A
| 0x0A
| 0100000000001001
| 0100000000001001
| [[Auth_Applet|auth (LibraryAppletAuth)]]
| [[Auth_Applet|LibraryAppletAuth (auth)]]
|-
|-
| 0x0B
| 0x0B
| 0100000000001002
| 0100000000001002
| [[Cabinet_Applet|cabinet (LibraryAppletCabinet)]]
| [[Cabinet_Applet|LibraryAppletCabinet (cabinet)]]
|-
|-
| 0x0C
| 0x0C
| 0100000000001003
| 0100000000001003
| [[Controller_Applet|controller (LibraryAppletController)]]
| [[Controller_Applet|LibraryAppletController (controller)]]
|-
|-
| 0x0D
| 0x0D
| 0100000000001004
| 0100000000001004
| dataErase (LibraryAppletDataErase)
| LibraryAppletDataErase (dataErase)
|-
|-
| 0x0E
| 0x0E
| 0100000000001005
| 0100000000001005
| [[Error_Applet|error (LibraryAppletError)]]
| [[Error_Applet|LibraryAppletError (error)]]
|-
|-
| 0x0F
| 0x0F
| 0100000000001006
| 0100000000001006
| netConnect (LibraryAppletNetConnect)
| LibraryAppletNetConnect (netConnect)
|-
|-
| 0x10
| 0x10
| 0100000000001007
| 0100000000001007
| [[Profile_Selector|playerSelect (LibraryAppletPlayerSelect)]]
| [[Profile_Selector|LibraryAppletPlayerSelect (playerSelect)]]
|-
|-
| 0x11
| 0x11
| 0100000000001008
| 0100000000001008
| [[Software_Keyboard|swkbd (LibraryAppletSwkbd)]]
| [[Software_Keyboard|LibraryAppletSwkbd (swkbd)]]
|-
|-
| 0x12
| 0x12
| 0100000000001009
| 0100000000001009
| [[MiiEdit_Applet|miiEdit (LibraryAppletMiiEdit)]]
| [[MiiEdit_Applet|LibraryAppletMiiEdit (miiEdit)]]
|-
|-
| 0x13
| 0x13
| 010000000000100A
| 010000000000100A
| [[Internet_Browser#010000000000100A|web (LibraryAppletWeb)]]
| [[Internet_Browser#010000000000100A|LibraryAppletWeb (web)]]
|-
|-
| 0x14
| 0x14
| 010000000000100B
| 010000000000100B
| [[Internet_Browser#ShopN|shop (LibraryAppletShop)]]
| [[Internet_Browser#ShopN|LibraryAppletShop (shop)]]
|-
|-
| 0x15
| 0x15
| 010000000000100D
| 010000000000100D
| [[Album_Applet|photoViewer (LibraryAppletPhotoViewer)]]
| [[Album_Applet|LibraryAppletPhotoViewer (photoViewer)]]
|-
|-
| 0x16
| 0x16
| 010000000000100E
| 010000000000100E
| set (LibraryAppletSet)
| LibraryAppletSet (set)
|-
|-
| 0x17
| 0x17
| 010000000000100F
| 010000000000100F
| [[Internet_Browser#Offline_Applet|offlineWeb (LibraryAppletOfflineWeb)]]
| [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
|-
|-
| 0x18
| 0x18
| 0100000000001010
| 0100000000001010
| [[Internet_Browser#Whitelisted_Applets|loginShare (LibraryAppletLoginShare)]]
| [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]]
|-
|-
| 0x19
| 0x19
| 0100000000001011
| 0100000000001011
| [[Internet_Browser#WifiWebAuthApplet|wifiWebAuth (LibraryAppletWifiWebAuth)]]
| [[Internet_Browser#WifiWebAuthApplet|LibraryAppletWifiWebAuth (wifiWebAuth)]]
|-
|-
| 0x1A
| 0x1A
| 0100000000001013
| 0100000000001013
| [[MyPage_Applet|myPage (LibraryAppletMyPage)]]
| [[MyPage_Applet|LibraryAppletMyPage (myPage)]]
|-
|-
| 0x1B
| 0x1B
| 010000000000101A
| 010000000000101A
| gift (LibraryAppletGift)
| LibraryAppletGift (gift)
|-
|-
| 0x1C
| 0x1C
| 010000000000101C
| 010000000000101C
| userMigration (LibraryAppletUserMigration)
| LibraryAppletUserMigration (userMigration)
|-
|-
| 0x1D
| 0x1D
| 010000000000101D
| 010000000000101D
| [9.0.0+] EncounterSys (LibraryAppletPreomiaSys)
| [9.0.0+] LibraryAppletPreomiaSys (EncounterSys)
|-
|-
| 0x1E
| 0x1E
| 0100000000001020
| 0100000000001020
| [9.0.0+] story (LibraryAppletStory)
| [9.0.0+] LibraryAppletStory (story)
|-
|-
| 0x1F
| 0x1F
| 010070000E3C0000
| 010070000E3C0000
| [9.0.0+] EncounterUsr (LibraryAppletPreomiaUsr)
| [9.0.0+] LibraryAppletPreomiaUsr (EncounterUsr)
|-
|-
| 0x20
| 0x20
| 010086000E49C000
| 010086000E49C000
| [9.0.0+] EncounterUsrDummy (LibraryAppletPreomiaUsrDummy)
| [9.0.0+] LibraryAppletPreomiaUsrDummy (EncounterUsrDummy)
|-
|-
| 0x21
| 0x21
| 0100000000001038
| 0100000000001038
| [10.0.0+] sample (LibraryAppletSample)
| [10.0.0+] LibraryAppletSample (sample)
|-
| 0x3E8
|
| [10.0.0+] DevlopmentTool
|-
|-
| 0x3F1
| 0x3F1
| 010000000000D619
| 010000000000D619
| [10.0.0+]
| [10.0.0+] CombinationLA
|-
|-
| 0x3F2
| 0x3F2
| 010000000000D610
| 010000000000D610
| [10.0.0+]
| [10.0.0+] AeSystemApplet
|-
|-
| 0x3F3
| 0x3F3
| 010000000000D611
| 010000000000D611
| [10.0.0+]
| [10.0.0+] AeOverlayApplet
|-
|-
| 0x3F4
| 0x3F4
| 010000000000D612
| 010000000000D612
| [10.0.0+]
| [10.0.0+] AeStarter
|-
|-
| 0x3F5
| 0x3F5
| 010000000000D613
| 010000000000D613
| [10.0.0+]
| [10.0.0+] AeLibraryAppletAlone
|-
|-
| 0x3F6
| 0x3F6
| 010000000000D614
| 010000000000D614
| [10.0.0+]
| [10.0.0+] AeLibraryApplet1
|-
|-
| 0x3F7
| 0x3F7
| 010000000000D615
| 010000000000D615
| [10.0.0+]
| [10.0.0+] AeLibraryApplet2
|-
|-
| 0x3F8
| 0x3F8
| 010000000000D616
| 010000000000D616
| [10.0.0+]
| [10.0.0+] AeLibraryApplet3
|-
|-
| 0x3F9
| 0x3F9
| 010000000000D617
| 010000000000D617
| [10.0.0+]
| [10.0.0+] AeLibraryApplet4
|-
|-
| 0x3FA
| 0x3FA
| 010000000000D60A
| 010000000000D60A
| [10.0.0+]
| [10.0.0+] AppletISA
|-
|-
| 0x3FB
| 0x3FB
| 010000000000D60B
| 010000000000D60B
| [10.0.0+]
| [10.0.0+] AppletIOA
|-
|-
| 0x3FC
| 0x3FC
| 010000000000D60C
| 010000000000D60C
| [10.0.0+]
| [10.0.0+] AppletISTA
|-
|-
| 0x3FD
| 0x3FD
| 010000000000D60D
| 010000000000D60D
| [10.0.0+]
| [10.0.0+] AppletILA1
|-
|-
| 0x3FE
| 0x3FE
| 010000000000D60E
| 010000000000D60E
| [10.0.0+]
| [10.0.0+] AppletILA2
|}
|}


=== LibraryAppletMode ===
= LibraryAppletMode =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! ID
! Value
! Description
! Description
|-
|-
| 0x0
| 0x0
Line 3,144: Line 3,144:
| 0x4
| 0x4
| AllForegroundInitiallyHidden. Can be used by [7.0.0+] [[Internet_Browser|WebSession]].
| AllForegroundInitiallyHidden. Can be used by [7.0.0+] [[Internet_Browser|WebSession]].
|-
|}
|}


=== AppletMessage ===
= AppletMessage =
This is "nn::am::AppletMessage".
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! ID
! Value
! Description
! Description
|-
| 4 || MessageExitRequest
|-
|-
| 0x4 || Exit requested
| 15 || [[#FocusState|MessageFocusStateChanged]]
|-
|-
| 0xF || [[#GetCurrentFocusState|FocusState]] changed
| 16 || [[#SetRestartMessageEnabled|MessageResume]]
|-
|-
| 0x10 || Current applet execution was [[#SetRestartMessageEnabled|resumed]].
| 30 || [[#OperationMode|MessageOperationModeChanged]]
|-
|-
| 0x1E || OperationMode changed
| 31 || [[#PerformanceMode|MessagePerformanceModeChanged]]
|-
|-
| 0x1F || PerformanceMode changed
| 51 || [[#SetHandlesRequestToDisplay|RequestToDisplay]]. Indicates that [[#ApproveToDisplay]] should be used.
|-
|-
| 0x33 || [[#SetHandlesRequestToDisplay|RequestToDisplay]]. Indicates that [[#ApproveToDisplay]] should be used.
| 90 || Capture button was [[#SetRequiresCaptureButtonShortPressedMessage|short-pressed]].
|-
|-
| 0x5A || Capture button was [[#SetRequiresCaptureButtonShortPressedMessage|short-pressed]].
| 92 || [[#SetAlbumImageTakenNotificationEnabled|MessageAlbumScreenShotTaken]]
|-
|-
| 0x5C || Screenshot was [[#SetAlbumImageTakenNotificationEnabled|taken]].
| 93 || MessageAlbumRecordingSaved
|}
|}


This is "nn::am::AppletMessage".
= OperationMode =
This is "nn::oe::OperationMode".


=== OperationMode ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
|-
| 0 || Handheld
| 0 || Handheld
|-
|-
| 1 || Docked
| 1 || Console
|}
|}


=== TvPowerStateMatchingMode ===
= PerformanceMode =
This is "nn::oe::PerformanceMode".
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
| -1 || Invalid
|-
|-
| 0 || Unknown
| 0 || Normal
|-
|-
| 1 || Unknown
| 1 || Boost
|}
|}


This is "nn::oe::TvPowerStateMatchingMode". This is used with [[#SetTvPowerStateMatchingMode]].
= FocusState =
This is "nn::oe::FocusState".


=== SystemButtonType ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
|-
| 1 || PerformHomeButtonShortPressing
| 1 || InFocus
|-
|-
| 2 || PerformHomeButtonLongPressing
| 2 || OutOfFocus
|-
|-
| 3 || Short-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
| 3 || Background
|}
 
= CpuBoostMode =
This is "nn::oe::CpuBoostMode".
 
{| class="wikitable" border="1"
|-
|-
| 4 || Long-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
! Value
! Description
|-
|-
| 5 || Shutdown the system. Only available with [[#PerformSystemButtonPressing]].
| 0 || Normal
|-
| 6 || PerformCaptureButtonShortPressing
|-
|-
| 7 || PerformCaptureButtonLongPressing
| 1 || FastLoad
|}
|}


This is "nn::am::service::SystemButtonType". This is used with [[#PerformSystemButtonPressingIfInFocus]]/[[#PerformSystemButtonPressing]].
= WindowOriginMode =
This is "nn::oe::WindowOriginMode".


=== LaunchParameterKind ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
| 1 || UserChannel. Application-specific LaunchParameter.
|-
|-
| 2 || account PreselectedUser
| 0 || LowerLeft
|-
|-
| 3 || Unknown if used by anything?
| 1 || UpperLeft
|}
|}


=== LibraryAppletExitReason ===
= WirelessPriorityMode =
This is "nn::oe::WirelessPriorityMode".
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
|-
| 0 || Normal
| 0 || Default
|-
|-
| 1 || Canceled
| 1 || OptimizedForWlan
|-
| 2 || Abnormal
|-
| 10 || Unexpected
|}
|}


=== ProgramSpecifyKind ===
= TvPowerStateMatchingMode =
This is "nn::oe::TvPowerStateMatchingMode". This is used with [[#SetTvPowerStateMatchingMode]].
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
|-
| 0 || u8 ProgramIndex. "ExecuteProgram". [[NS_Services|NS]] handles ProgramIndex by launching ApplicationId+ProgramIndex. After using [[#ExecuteProgram]] with this successfully, official user-processes will enter an infinite loop with sleep-thread value 86400000000000.
| 0 || Unknown
|-
| 1 || [[NCM_services#ApplicationId|ApplicationId]]. "JumpToSubApplicationProgramForDevelopment". Only available when [[Settings_services#GetDebugModeFlag|DebugMode]] is 1.
|-
| 2 || u64 = value 0. "RestartProgram"
|-
|-
| 1 || Unknown
|}
|}


This is "nn::am::service::ProgramSpecifyKind". This controls the type of the u64 passed to [[#ExecuteProgram]].
= SystemButtonType =
 
This is "nn::am::service::SystemButtonType". This is used with [[#PerformSystemButtonPressingIfInFocus]]/[[#PerformSystemButtonPressing]].
ProgramIndex values where the title is not installed should not be used: [[qlaunch]] will display an error message and the current title will become "corrupted", however Home Menu will have an option to repair it.


= InputDetectionPolicy =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
| 1 || PerformHomeButtonShortPressing
|-
| 2 || PerformHomeButtonLongPressing
|-
| 3 || Short-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
|-
| 4 || Long-pressing with the Power-button. Only available with [[#PerformSystemButtonPressing]].
|-
| 5 || Shutdown the system. Only available with [[#PerformSystemButtonPressing]].
|-
|-
| 0 || Unknown.
| 6 || PerformCaptureButtonShortPressing
|-
|-
| 1 || Unknown.
| 7 || PerformCaptureButtonLongPressing
|}
|}


This is u32 enum "nn::applet::InputDetectionPolicy".
= LaunchParameterKind =
 
= AppletResourceUserId =
This u64 is officially called "nn::applet::AppletResourceUserId". Used by a number of non-AM services.
 
= AppletAttribute =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
| 1 || UserChannel. Application-specific LaunchParameter.
|-
|-
| 0x0 || 0x1 || Flag. When non-zero, two state fields are set to 1.
| 2 || account PreselectedUser
|-
|-
| 0x1 || 0x7F || Unused
| 3 || Unknown if used by anything?
|}
|}


This is "nn::am::AppletAttribute". This struct is 0x8-bytes.
= LibraryAppletExitReason =
 
{| class="wikitable" border="1"
This is used by [[#OpenLibraryAppletProxy]].
|-
 
! Value
= AppletProcessLaunchReason =
! Description
{| class="wikitable" border="1"
|-
|-
| 0 || Normal
! Offset || Size || Description
|-
|-
| 1 || Canceled
| 0x0 || 0x1 || Flag. When non-zero, LibraryApplets then use [[#OpenCallingLibraryApplet]].
|-
|-
| 2 || Abnormal
| 0x1 || 0x2 || Always 0.
|-
|-
| 10 || Unexpected
| 0x3 || 0x1 || Always 0.
|}
|}
 
 
= ProgramSpecifyKind =
This is "nn::am::service::AppletProcessLaunchReason". This struct is 0x4-bytes.
This is "nn::am::service::ProgramSpecifyKind". This controls the type of the u64 passed to [[#ExecuteProgram]].
 
 
= LibraryAppletInfo =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0x0 || 0x4 || [[#AppletId]]
| 0 || u8 ProgramIndex. "ExecuteProgram". [[NS_Services|NS]] handles ProgramIndex by launching ApplicationId+ProgramIndex. After using [[#ExecuteProgram]] with this successfully, official user-processes will enter an infinite loop with sleep-thread value 86400000000000.
|-
|-
| 0x4 || 0x4 || [[#LibraryAppletMode]]
| 1 || [[NCM_services#ApplicationId|ApplicationId]]. "JumpToSubApplicationProgramForDevelopment". Only available when [[Settings_services#GetDebugModeFlag|DebugMode]] is 1.
|}
|-
 
| 2 || u64 = value 0. "RestartProgram"
This is "nn::am::service::LibraryAppletInfo". This struct is 0x8-bytes.
|}
 
 
= AppletKind =
ProgramIndex values where the title is not installed should not be used: [[qlaunch]] will display an error message and the current title will become "corrupted", however Home Menu will have an option to repair it.
 
= InputDetectionPolicy =
This is u32 enum "nn::applet::InputDetectionPolicy".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Unknown
|-
| 1 || Unknown
|}
 
= AppletResourceUserId =
This is "nn::applet::AppletResourceUserId". Used by a number of non-AM services.
 
= AppletAttribute =
This is "nn::am::AppletAttribute". This struct is 0x8-bytes.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || Flag. When non-zero, two state fields are set to 1.
|-
| 0x1 || 0x7F || Unused
|}
 
This is used by [[#OpenLibraryAppletProxy]].
 
= AppletProcessLaunchReason =
This is "nn::am::service::AppletProcessLaunchReason". This struct is 0x4-bytes.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || Flag. When non-zero, LibraryApplets then use [[#OpenCallingLibraryApplet]].
|-
| 0x1 || 0x2 || Always 0.
|-
| 0x3 || 0x1 || Always 0.
|}
 
= LibraryAppletInfo =
This is "nn::am::service::LibraryAppletInfo". This struct is 0x8-bytes.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#AppletId]]
|-
| 0x4 || 0x4 || [[#LibraryAppletMode]]
|}
 
= AppletKind =
This is "nn::am::service::AppletKind". This is 8-bytes.
This is "nn::am::service::AppletKind". This is 8-bytes.


= AppletIdentityInfo =
= AppletIdentityInfo =
This struct is "nn::am::service::AppletIdentityInfo". This struct is 0x10-bytes.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,336: Line 3,409:
|}
|}


This struct is "nn::am::service::AppletIdentityInfo". This struct is 0x10-bytes.
= ApplicationAttributeForQuest =
This struct is "nn::applet::ApplicationAttributeForQuest".


= ApplicationAttributeForQuest =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,349: Line 3,422:
| 0x8 || 0x4 || [7.0.0+] See [[#ApplicationAttribute]].
| 0x8 || 0x4 || [7.0.0+] See [[#ApplicationAttribute]].
|}
|}
This struct is "nn::applet::ApplicationAttributeForQuest".


User-processes copy the first 0x8-bytes (0xC-bytes with [[#CreateApplicationWithAttributeAndPushAndRequestToStartForQuest]]/[[#CreateApplicationWithAttributeAndRequestToStartForQuest]]) to a [[#ApplicationAttribute]] with the rest of the struct being cleared, which is then passed to the actual cmd (CreateApplication*ToStartForQuest).
User-processes copy the first 0x8-bytes (0xC-bytes with [[#CreateApplicationWithAttributeAndPushAndRequestToStartForQuest]]/[[#CreateApplicationWithAttributeAndRequestToStartForQuest]]) to a [[#ApplicationAttribute]] with the rest of the struct being cleared, which is then passed to the actual cmd (CreateApplication*ToStartForQuest).


= ApplicationAttribute =
= ApplicationAttribute =
This struct is "nn::am::ApplicationAttribute". This struct is 0x20-bytes.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,367: Line 3,440:
| 0xC || 0x14 || Unused. Default is 0.
| 0xC || 0x14 || Unused. Default is 0.
|}
|}
This struct is "nn::am::ApplicationAttribute". This struct is 0x20-bytes.


Internally AM only uses the first 0xC-bytes from ApplicationAttribute, regardless of the cmd.
Internally AM only uses the first 0xC-bytes from ApplicationAttribute, regardless of the cmd.


= ApplicationLaunchProperty =
= ApplicationLaunchProperty =
This struct is 0x10-bytes.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,390: Line 3,463:
|}
|}


This struct is 0x10-bytes.
= ApplicationLaunchRequestInfo =
This is "nn::applet::ApplicationLaunchRequestInfo". This struct is 0x10-bytes.


= ApplicationLaunchRequestInfo =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,404: Line 3,477:
|}
|}


This struct is "nn::applet::ApplicationLaunchRequestInfo". This struct is 0x10-bytes.
= AppletResourceUsageInfo =
This is "nn::am::service::AppletResourceUsageInfo". This struct is 0x20-bytes.


= AppletResourceUsageInfo =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 3,419: Line 3,492:
| 0xC || 0x14 || Always zero.
| 0xC || 0x14 || Always zero.
|}
|}
This struct is "nn::am::service::AppletResourceUsageInfo". This struct is 0x20-bytes.


= ApplicationLicenseType =
= ApplicationLicenseType =