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 = |