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