Line 174: |
Line 174: |
| |- | | |- |
| | 3 || [[#GetEvent]] | | | 3 || [[#GetEvent]] |
| + | |- |
| + | | 4 || [10.0.0+] [[#IsLocked]] |
| |} | | |} |
| | | |
Line 188: |
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 357: |
Line 362: |
| |- | | |- |
| | 190 || [9.0.0+] [[#PushToNotificationStorageChannel]] || | | | 190 || [9.0.0+] [[#PushToNotificationStorageChannel]] || |
| + | |- |
| + | | 200 || [10.0.0+] [[#RequestApplicationSoftReset]] || |
| + | |- |
| + | | 201 || [10.0.0+] [[#RestartApplicationTimer]] || |
| |} | | |} |
| | | |
Line 436: |
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 497: |
Line 512: |
| |- | | |- |
| | 51 || [8.0.0+] [[#GetHomeButtonDoubleClickEnabled]] || | | | 51 || [8.0.0+] [[#GetHomeButtonDoubleClickEnabled]] || |
| + | |- |
| + | | 52 || [10.0.0+] [[#IsHomeButtonShortPressedBlocked]] || |
| |} | | |} |
| | | |
Line 531: |
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 629: |
Line 649: |
| |- | | |- |
| | 130 || [9.0.0+] [[#GetGpuErrorDetectedSystemEvent]] || | | | 130 || [9.0.0+] [[#GetGpuErrorDetectedSystemEvent]] || |
| + | |- |
| + | | 140 || [10.0.0+] [[#SetApplicationMemoryReservation]] || |
| + | |- |
| + | | 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] || |
| |} | | |} |
| | | |
Line 753: |
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 806: |
Line 838: |
| |- | | |- |
| | 30 || [9.0.0+] [[#SetHealthWarningShowingState]] | | | 30 || [9.0.0+] [[#SetHealthWarningShowingState]] |
| + | |- |
| + | | 31 || [10.0.0+] [[#IsHealthWarningRequired]] |
| |- | | |- |
| | 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] | | | 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]] |
Line 854: |
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 933: |
Line 970: |
| |- | | |- |
| | 33 || [[#EndBlockingHomeButton]] || | | | 33 || [[#EndBlockingHomeButton]] || |
| + | |- |
| + | | 34 || [10.0.0+] [[#SelectApplicationLicense]] || |
| |- | | |- |
| | 40 || [[#NotifyRunning]] || | | | 40 || [[#NotifyRunning]] || |
Line 951: |
Line 990: |
| |- | | |- |
| | 71 || [3.0.0+] [[#RequestToReboot]] || | | | 71 || [3.0.0+] [[#RequestToReboot]] || |
| + | |- |
| + | | 72 || [10.0.0+] [[#RequestToSleep]] || |
| |- | | |- |
| | 80 || [4.0.0+] [[#ExitAndRequestToShowThanksMessage]] || | | | 80 || [4.0.0+] [[#ExitAndRequestToShowThanksMessage]] || |
Line 989: |
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,079: |
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,114: |
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,221: |
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,235: |
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,323: |
Line 1,384: |
| |- | | |- |
| | 50 || [[#SetOutOfFocusApplicationSuspendingEnabled]] || | | | 50 || [[#SetOutOfFocusApplicationSuspendingEnabled]] || |
| + | |- |
| + | | 60 || [10.0.0+] [[#PresetLibraryAppletGpuTimeSliceZero]] || |
| |- | | |- |
| | 100 || [[#PushInData]] || | | | 100 || [[#PushInData]] || |
Line 1,354: |
Line 1,417: |
| 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. |
| | | |
− | ==== PushInData ==== | + | ==== PresetLibraryAppletGpuTimeSliceZero ==== |
| + | No input/output. |
| + | |
| + | sdknso only uses with with [[Software_Keyboard|swkbd-inline]], immediately after creating the LibraryApplet. |
| + | |
| + | ==== PushInData ==== |
| Takes an input [[#IStorage]], no output. | | Takes an input [[#IStorage]], no output. |
| | | |
Line 1,458: |
Line 1,526: |
| |- | | |- |
| | 66 || [6.0.0+] [[#SetCpuBoostMode]] || | | | 66 || [6.0.0+] [[#SetCpuBoostMode]] || |
| + | |- |
| + | | 67 || [10.0.0+] [[#CancelCpuBoostMode]] || |
| |- | | |- |
| | 80 || [6.0.0+] [[#PerformSystemButtonPressingIfInFocus]] || | | | 80 || [6.0.0+] [[#PerformSystemButtonPressingIfInFocus]] || |
Line 1,464: |
Line 1,534: |
| |- | | |- |
| | 91 || [7.0.0+] [[#GetCurrentPerformanceConfiguration]] || | | | 91 || [7.0.0+] [[#GetCurrentPerformanceConfiguration]] || |
| + | |- |
| + | | 100 || [9.1.0+] [[#SetHandlingHomeButtonShortPressedEnabled]] || |
| |- | | |- |
| | 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] || | | | 200 || [7.0.0+] [[#GetOperationModeSystemInfo]] || |
| |- | | |- |
| | 300 || [9.0.0+] [[#GetSettingsPlatformRegion]] || | | | 300 || [9.0.0+] [[#GetSettingsPlatformRegion]] || |
| + | |- |
| + | | 400 || [10.0.0+] [[#ActivateMigrationService]] || |
| + | |- |
| + | | 401 || [10.0.0+] [[#DeactivateMigrationService]] || |
| |} | | |} |
| | | |
Line 1,608: |
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,629: |
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,676: |
Line 1,761: |
| |- | | |- |
| | 43 || [5.0.0+] [[#GetSystemSharedBufferHandle]] | | | 43 || [5.0.0+] [[#GetSystemSharedBufferHandle]] |
| + | |- |
| + | | 44 || [10.0.0+] [[#CreateManagedDisplaySeparableLayer]] |
| + | |- |
| + | | 45 || [10.0.0+] [[#SetManagedDisplayLayerSeparationMode]] |
| |- | | |- |
| | 50 || [[#SetHandlesRequestToDisplay]] | | | 50 || [[#SetHandlesRequestToDisplay]] |
Line 1,826: |
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,304: |
Line 2,405: |
| | 0 || [[#NotifyMessageToHomeMenuForDebug]] || | | | 0 || [[#NotifyMessageToHomeMenuForDebug]] || |
| |- | | |- |
− | | 1 || [[#OpenMainApplication]] || | + | | 1 || [1.0.0-9.2.0] [[#OpenMainApplication]] || |
| |- | | |- |
| | 10 || [[#PerformSystemButtonPressing]] || | | | 10 || [[#PerformSystemButtonPressing]] || |
Line 2,315: |
Line 2,416: |
| |- | | |- |
| | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] || | | | 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]] || |
| + | |- |
| + | | 101 || [10.0.0+] [[#CancelCpuBoostModeForApplet]] || |
| |- | | |- |
| | 110 || [9.0.0+] [[#PushToAppletBoundChannelForDebug]] || | | | 110 || [9.0.0+] [[#PushToAppletBoundChannelForDebug]] || |
Line 2,361: |
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,686: |
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,072: |
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 = |