Changes

Line 65: Line 65:     
== ISystemAppletProxy ==
 
== ISystemAppletProxy ==
 +
This is "nn::am::service::ISystemAppletProxy".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 95: Line 97:     
=== IHomeMenuFunctions ===
 
=== IHomeMenuFunctions ===
 +
This is "nn::am::service::IHomeMenuFunctions".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 116: Line 120:  
|-
 
|-
 
| 41 || [12.0.0+] [[#IsRebootEnabled]]
 
| 41 || [12.0.0+] [[#IsRebootEnabled]]
 +
|-
 +
| 50 || [16.0.0+] [[#LaunchSystemApplet]]
 +
|-
 +
| 51 || [16.0.0+] [[#LaunchStarter]]
 
|-
 
|-
 
| 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]]
 
| 100 || [6.0.0+] [[#PopRequestLaunchApplicationForDebug]]
Line 156: Line 164:  
==== IsRebootEnabled ====
 
==== IsRebootEnabled ====
 
No input, returns an output bool.
 
No input, returns an output bool.
 +
 +
==== LaunchSystemApplet ====
 +
No input/output.
 +
 +
This wraps [[NS_Services|ns]] LaunchSystemApplet, ignoring the u64 returned by that cmd (and other functionality).
 +
 +
==== LaunchStarter ====
 +
No input/output.
 +
 +
This is similar to [[#LaunchSystemApplet]], except this uses [[NS_Services|ns]] LaunchLibraryApplet with a ProgramId from global state.
 +
 +
The global state field is initialized elsewhere with the value of [[System_Settings|system-setting]] <code>am.debug!starter_id</code>, defaulting to ProgramId 0100000000001012 ([[Title_list|starter]]) if not available.
    
==== PopRequestLaunchApplicationForDebug ====
 
==== PopRequestLaunchApplicationForDebug ====
Line 172: Line 192:  
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.
   −
Uses [[NS_Services#IApplicationManagerInterface]] cmd99.
+
Uses [[NS_Services|ns]] LaunchDevMenu.
    
This is used by [[qlaunch]]. On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
 
This is used by [[qlaunch]]. On success, official sw will enter an infinite loop with sleep-thread value 86400000000000.
Line 180: Line 200:     
==== ILockAccessor ====
 
==== ILockAccessor ====
 +
This is "nn::am::service::ILockAccessor".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 210: Line 232:     
=== IGlobalStateController ===
 
=== IGlobalStateController ===
 +
This is "nn::am::service::IGlobalStateController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 326: Line 350:     
=== IApplicationCreator ===
 
=== IApplicationCreator ===
 +
This is "nn::am::service::IApplicationCreator".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 579: Line 605:  
|-
 
|-
 
| 81 || [14.0.0+] SetHandlingCaptureButtonLongPressedMessageEnabledForApplet
 
| 81 || [14.0.0+] SetHandlingCaptureButtonLongPressedMessageEnabledForApplet
 +
|-
 +
| 82 || [18.0.0+]
 +
|-
 +
| 90 || [15.0.0+] OpenNamedChannelAsParent
 +
|-
 +
| 91 || [15.0.0+] OpenNamedChannelAsChild
 +
|-
 +
| 100 || [15.0.0+] SetApplicationCoreUsageMode
 +
|-
 +
| 160 || [18.0.0+]
 +
|-
 +
| 161 || [18.0.0+]
 +
|-
 +
| 300 || [17.0.0+]
 
|}
 
|}
   Line 625: Line 665:     
== ILibraryAppletProxy ==
 
== ILibraryAppletProxy ==
 +
This is "nn::am::service::ILibraryAppletProxy".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 646: Line 688:  
|-
 
|-
 
| 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]].
 
| 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]].
 +
|-
 +
| 22 || [15.0.0+] GetHomeMenuFunctions || No input, returns an [[#IHomeMenuFunctions]].
 +
|-
 +
| 23 || [15.0.0+] GetGlobalStateController || No input, returns an [[#IGlobalStateController]].
 
|-
 
|-
 
| 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]].
 
| 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]].
Line 651: Line 697:     
=== ILibraryAppletSelfAccessor ===
 
=== ILibraryAppletSelfAccessor ===
 +
This is "nn::am::service::ILibraryAppletSelfAccessor".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 724: Line 772:  
|-
 
|-
 
| 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] ||
 
| 150 || [10.0.0+] [[#ShouldSetGpuTimeSliceManually]] ||
 +
|-
 +
| 160 || [17.0.0+] [[#Cmd160]] ||
 
|}
 
|}
   Line 856: Line 906:  
==== ShouldSetGpuTimeSliceManually ====
 
==== ShouldSetGpuTimeSliceManually ====
 
No input, returns an output u8 bool.
 
No input, returns an output u8 bool.
 +
 +
==== Cmd160 ====
 +
No input, returns an output u64. Currently always returns 0.
    
== IOverlayAppletProxy ==
 
== IOverlayAppletProxy ==
 +
This is "nn::am::service::IOverlayAppletProxy".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 879: Line 934:  
|-
 
|-
 
| 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]].
 
| 21 || [7.0.0+] GetAppletCommonFunctions || No input, returns an [[#IAppletCommonFunctions]].
 +
|-
 +
| 23 || [15.0.0+] GetGlobalStateController || No input, returns an [[#IGlobalStateController]].
 
|-
 
|-
 
| 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]].
 
| 1000 || GetDebugFunctions || Returns an [[#IDebugFunctions]].
Line 884: Line 941:     
=== IOverlayFunctions ===
 
=== IOverlayFunctions ===
 +
This is "nn::am::service::IOverlayFunctions".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 913: Line 972:  
|-
 
|-
 
| 31 || [10.0.0+] [[#IsHealthWarningRequired]]
 
| 31 || [10.0.0+] [[#IsHealthWarningRequired]]
 +
|-
 +
| 40 || [18.0.0+]
 +
|-
 +
| 41 || [18.0.0+]
 
|-
 
|-
 
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
 
| 90 || [7.0.0+] [[#SetRequiresGpuResourceUse]]
Line 978: Line 1,041:     
== IApplicationProxy ==
 
== IApplicationProxy ==
 +
This is "nn::am::service::IApplicationProxy".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,002: Line 1,067:     
=== IApplicationFunctions ===
 
=== IApplicationFunctions ===
 +
This is "nn::am::service::IApplicationFunctions".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,048: Line 1,115:  
| 33 || [[#EndBlockingHomeButton]]
 
| 33 || [[#EndBlockingHomeButton]]
 
|-
 
|-
| 34 || [10.0.0+] [[#SelectApplicationLicense]]
+
| 34 || [10.0.0-15.0.1] [[#SelectApplicationLicense]]
 
|-
 
|-
 
| 35 || [11.0.0+] [[#GetDeviceSaveDataSizeMax]]
 
| 35 || [11.0.0+] [[#GetDeviceSaveDataSizeMax]]
Line 1,282: Line 1,349:     
User-processes create the tmem with an user-specified buffer with permissions=0. '''width''' = 1280 and '''height''' = 720.
 
User-processes create the tmem with an user-specified buffer with permissions=0. '''width''' = 1280 and '''height''' = 720.
 +
 +
After the validation checks pass the input is passed to [[OMM_services|ommdisp]] cmd500.
    
This is used as an overlay for screenshots.
 
This is used as an overlay for screenshots.
Line 1,403: Line 1,472:     
==== PrepareForJit ====
 
==== PrepareForJit ====
Takes no input. Launches the [[JIT_services|jit-sysmodule]] if it has not already been launched for the current application, storing a std::shared_ptr<> for jit-sysmodule process tracking object as an IApplicationFunctions member.
+
Takes no input. Launches the [[JIT_services|jit-sysmodule]] via [[NS_Services|ns]] LaunchLibraryApplet if it has not already been launched for the current application, storing a std::shared_ptr<> for jit-sysmodule process tracking object as an IApplicationFunctions member.
    
~IApplicationFunctions() includes:
 
~IApplicationFunctions() includes:
Line 1,413: Line 1,482:     
Thus the lifetime of the jit sysmodule is tied to the application which uses it, and each application gets its own fresh copy of the jit sysmodule.
 
Thus the lifetime of the jit sysmodule is tied to the application which uses it, and each application gets its own fresh copy of the jit sysmodule.
 +
 +
AM can also optionally launch jit-sysmodule automatically if the [[NACP]] enables it.
    
=== IMovieMaker ===
 
=== IMovieMaker ===
 +
This is "nn::am::service::IMovieMaker".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,431: Line 1,504:     
== ILibraryAppletCreator ==
 
== ILibraryAppletCreator ==
 +
This is "nn::am::service::ILibraryAppletCreator".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,483: Line 1,558:     
=== ILibraryAppletAccessor ===
 
=== ILibraryAppletAccessor ===
 +
This is "nn::am::service::ILibraryAppletAccessor".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,575: Line 1,652:     
== ICommonStateGetter ==
 
== ICommonStateGetter ==
 +
This is "nn::am::service::ICommonStateGetter".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 1,678: Line 1,757:  
|-
 
|-
 
| 503 || [12.0.0+] IsDisablingSleepSuppressed
 
| 503 || [12.0.0+] IsDisablingSleepSuppressed
 +
|-
 +
| 600 || [17.0.0+] OpenNamedChannelAsChild
 
|-
 
|-
 
| 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]]
 
| 900 || [11.0.0+] [[#SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled]]
 +
|-
 +
| 910 || [17.0.0+] GetLaunchRequiredTick
 
|}
 
|}
   Line 1,870: Line 1,953:  
=== ActivateMigrationService ===
 
=== ActivateMigrationService ===
 
No input/output.
 
No input/output.
 +
 +
Besides various other functionality, if required this eventually uses [[NS_Services|ns]] LaunchLibraryApplet to launch [[Migration_services|migration]].
    
=== DeactivateMigrationService ===
 
=== DeactivateMigrationService ===
Line 1,920: Line 2,005:     
== ISelfController ==
 
== ISelfController ==
 +
This is "nn::am::service::ISelfController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,251: Line 2,338:     
== IStorageChannel ==
 
== IStorageChannel ==
Added with [[7.0.0]].
+
This is "nn::am::service::IStorageChannel".
 +
 
 +
This was added with [7.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 2,269: Line 2,358:     
== IWindowController ==
 
== IWindowController ==
 +
This is "nn::am::service::IWindowController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,325: Line 2,416:     
== IAudioController ==
 
== IAudioController ==
 +
This is "nn::am::service::IAudioController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,360: Line 2,453:     
== IDisplayController ==
 
== IDisplayController ==
 +
This is "nn::am::service::IDisplayController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,562: Line 2,657:     
== ISystemAppletControllerForDebug ==
 
== ISystemAppletControllerForDebug ==
 +
This is "nn::am::service::ISystemAppletControllerForDebug".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,585: Line 2,682:     
== IProcessWindingController ==
 
== IProcessWindingController ==
 +
This is "nn::am::service::IProcessWindingController".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,635: Line 2,734:     
== IDebugFunctions ==
 
== IDebugFunctions ==
 +
This is "nn::am::service::IDebugFunctions".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,652: Line 2,753:  
|-
 
|-
 
| 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]]
 
| 40 || [6.0.0+] [[#GetAppletResourceUsageInfo]]
 +
|-
 +
| 50 || [15.0.0+] AddSystemProgramIdAndAppletIdForDebug
 +
|-
 +
| 51 || [16.0.0+] AddOperationConfirmedLibraryAppletIdForDebug
 +
|-
 +
| 52 || [17.0.0+] GetProgramIdFromAppletIdForDebug
 +
|-
 +
| 53 || [18.0.0+]
 
|-
 
|-
 
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]]
 
| 100 || [7.0.0+] [[#SetCpuBoostModeForApplet]]
Line 2,674: Line 2,783:  
|-
 
|-
 
| 140 || [14.0.0+] RestrictPowerOperationForSecureLaunchModeForDebug
 
| 140 || [14.0.0+] RestrictPowerOperationForSecureLaunchModeForDebug
 +
|-
 +
| 200 || [15.0.0+] CreateFloatingLibraryAppletAccepterForDebug
 +
|-
 +
| 300 || [16.0.0+] TerminateAllRunningApplicationsForDebug
 +
|-
 +
| 410 || [18.0.0+]
 +
|-
 +
| 411 || [18.0.0+]
 +
|-
 +
| 412 || [18.0.0+]
 
|-
 
|-
 
| 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent
 
| 900 || [12.0.0+] GetGrcProcessLaunchedSystemEvent
Line 2,755: Line 2,874:     
== IStorage ==
 
== IStorage ==
 +
This is "nn::am::service::IStorage".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,769: Line 2,890:     
== IStorageAccessor ==
 
== IStorageAccessor ==
 +
This is "nn::am::service::IStorageAccessor".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,781: Line 2,904:     
== ITransferStorageAccessor ==
 
== ITransferStorageAccessor ==
 +
This is "nn::am::service::ITransferStorageAccessor".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 2,918: Line 3,043:     
== ICradleFirmwareUpdater ==
 
== ICradleFirmwareUpdater ==
This is "nn::omm::detail::ICradleFirmwareUpdater".
+
This is "nn::am::service::ICradleFirmwareUpdater".
    
This was added with [12.0.0+].
 
This was added with [12.0.0+].
Line 3,031: Line 3,156:  
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a type-0x15 input buffer containing an [[Capture_services|UserIdList]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
 
Takes an input 0x40-byte struct '''ScreenShotAttributeEx0''', an input u32, an input u64 AppletResourceUserId, a type-0x15 input buffer containing an [[Capture_services|UserIdList]], and a type-0x45 input buffer containing image data. Returns an [[Capture_services|ApplicationAlbumEntry]].
   −
= Library Applets =
+
= apm =
This section documents library applet launching.
+
This is "nn::am::service::IApmManager".
 
  −
Before starting the applet, [[#IStorage]]s are [[#ILibraryAppletCreator|created]] and written, then passed to [[#ILibraryAppletAccessor]] PushInData. The [[#IStorage]] session is closed afterwards. The first [[#IStorage]] is [[#CommonArguments]], followed by any applet-specific [[#IStorage]]s.
  −
 
  −
Once the applet finishes running successfully, [[#ILibraryAppletAccessor]] PopOutData can be used to get the applet-specific [[#IStorage]] containing the applet output data.
  −
 
  −
== CommonArguments ==
  −
The first [[#CreateStorage|IStorage]] passed to applets should contain the common library applet arguments. This is populated by <code>nn::la::CommonArgumentsWriter</code> and has the following format.
  −
 
  −
This struct is 0x20-bytes.
     −
Official sw handles the first 8-bytes separately, which is a header. With CommonArguments version 0x0, the header is 4-bytes, while starting with version 0x1 it's 8-bytes.
+
This was added with [8.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Offset || Size || Typical Value || Notes
+
! Cmd || Name
 
|-
 
|-
| 0x0 || 4 || 1 || Common Arguments version
+
| 0 || [[#OpenSession]]
 +
|-
 +
| 1 || GetPerformanceMode
 +
|-
 +
| 6 || [7.0.0+] [[#IsCpuOverclockEnabled]]
 +
|}
 +
 
 +
== OpenSession ==
 +
Returns an [[#ISession]].
 +
 
 +
== IsCpuOverclockEnabled ==
 +
No input, returns an output u8 bool.
 +
 
 +
== ISession ==
 +
This is "nn::am::service::IApmSession".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || SetPerformanceConfiguration
 +
|-
 +
| 1 || GetPerformanceConfiguration
 +
|-
 +
| 2 || [8.0.0+] SetCpuOverclockEnabled
 +
|}
 +
 
 +
= Library Applets =
 +
This section documents library applet launching.
 +
 
 +
Before starting the applet, [[#IStorage]]s are [[#ILibraryAppletCreator|created]] and written, then passed to [[#ILibraryAppletAccessor]] PushInData. The [[#IStorage]] session is closed afterwards. The first [[#IStorage]] is [[#CommonArguments]], followed by any applet-specific [[#IStorage]]s.
 +
 
 +
Once the applet finishes running successfully, [[#ILibraryAppletAccessor]] PopOutData can be used to get the applet-specific [[#IStorage]] containing the applet output data.
 +
 
 +
== CommonArguments ==
 +
The first [[#CreateStorage|IStorage]] passed to applets should contain the common library applet arguments. This is populated by <code>nn::la::CommonArgumentsWriter</code> and has the following format.
 +
 
 +
This struct is 0x20-bytes.
 +
 
 +
Official sw handles the first 8-bytes separately, which is a header. With CommonArguments version 0x0, the header is 4-bytes, while starting with version 0x1 it's 8-bytes.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Typical Value || Notes
 +
|-
 +
| 0x0 || 4 || 1 || Common Arguments version
 
|-
 
|-
 
| 0x4 || 4 || 0x20 || Common Arguments size
 
| 0x4 || 4 || 0x20 || Common Arguments size
Line 3,188: Line 3,349:  
| [10.0.0+] LibraryAppletSample (sample)
 
| [10.0.0+] LibraryAppletSample (sample)
 
|-
 
|-
| 0x3E8
+
| 0x22
|  
+
| 0100000000001007
| [10.0.0+] DevlopmentTool
+
| [13.0.0+] LibraryAppletPromoteQualification (playerSelect)
 
|-
 
|-
| 0x3F1
+
| 0x32
 +
| 010000000000100F
 +
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
 +
|-
 +
| 0x33
 +
| 010000000000100F
 +
| [17.0.0+] [[Internet_Browser#Offline_Applet|LibraryAppletOfflineWeb (offlineWeb)]]
 +
|-
 +
| 0x35
 +
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
 +
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
 +
|-
 +
| 0x36
 +
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
 +
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
 +
|-
 +
| 0x37
 +
| [17.0.0+] 0100000000001010 ([16.0.0-16.1.0] 0100000000001042)
 +
| [17.0.0+] [[Internet_Browser#Whitelisted_Applets|LibraryAppletLoginShare (loginShare)]] ([16.0.0-16.1.0] )
 +
|-
 +
| 0x38
 +
| 0100000000001043
 +
| [16.0.0-16.1.0]
 +
|-
 +
| 0x50
 +
| 0100000000001007
 +
| [18.0.0+]
 +
|-
 +
| 0x51
 +
| 0100000000001007
 +
| [18.0.0+]
 +
|-
 +
| 0x3E8
 +
|
 +
| [10.0.0-16.1.0] DevlopmentTool
 +
|-
 +
| 0x3F1
 
| 010000000000D619
 
| 010000000000D619
| [10.0.0+] CombinationLA
+
| [10.0.0-16.1.0] CombinationLA
 
|-
 
|-
 
| 0x3F2
 
| 0x3F2
 
| 010000000000D610
 
| 010000000000D610
| [10.0.0+] AeSystemApplet
+
| [10.0.0-16.1.0] AeSystemApplet
 
|-
 
|-
 
| 0x3F3
 
| 0x3F3
 
| 010000000000D611
 
| 010000000000D611
| [10.0.0+] AeOverlayApplet
+
| [10.0.0-16.1.0] AeOverlayApplet
 
|-
 
|-
 
| 0x3F4
 
| 0x3F4
 
| 010000000000D612
 
| 010000000000D612
| [10.0.0+] AeStarter
+
| [10.0.0-16.1.0] AeStarter
 
|-
 
|-
 
| 0x3F5
 
| 0x3F5
 
| 010000000000D613
 
| 010000000000D613
| [10.0.0+] AeLibraryAppletAlone
+
| [10.0.0-16.1.0] AeLibraryAppletAlone
 
|-
 
|-
 
| 0x3F6
 
| 0x3F6
 
| 010000000000D614
 
| 010000000000D614
| [10.0.0+] AeLibraryApplet1
+
| [10.0.0-16.1.0] AeLibraryApplet1
 
|-
 
|-
 
| 0x3F7
 
| 0x3F7
 
| 010000000000D615
 
| 010000000000D615
| [10.0.0+] AeLibraryApplet2
+
| [10.0.0-16.1.0] AeLibraryApplet2
 
|-
 
|-
 
| 0x3F8
 
| 0x3F8
 
| 010000000000D616
 
| 010000000000D616
| [10.0.0+] AeLibraryApplet3
+
| [10.0.0-16.1.0] AeLibraryApplet3
 
|-
 
|-
 
| 0x3F9
 
| 0x3F9
 
| 010000000000D617
 
| 010000000000D617
| [10.0.0+] AeLibraryApplet4
+
| [10.0.0-16.1.0] AeLibraryApplet4
 
|-
 
|-
 
| 0x3FA
 
| 0x3FA
 
| 010000000000D60A
 
| 010000000000D60A
| [10.0.0+] AppletISA
+
| [10.0.0-16.1.0] AppletISA
 
|-
 
|-
 
| 0x3FB
 
| 0x3FB
 
| 010000000000D60B
 
| 010000000000D60B
| [10.0.0+] AppletIOA
+
| [10.0.0-16.1.0] AppletIOA
 
|-
 
|-
 
| 0x3FC
 
| 0x3FC
 
| 010000000000D60C
 
| 010000000000D60C
| [10.0.0+] AppletISTA
+
| [10.0.0-16.1.0] AppletISTA
 
|-
 
|-
 
| 0x3FD
 
| 0x3FD
 
| 010000000000D60D
 
| 010000000000D60D
| [10.0.0+] AppletILA1
+
| [10.0.0-16.1.0] AppletILA1
 
|-
 
|-
 
| 0x3FE
 
| 0x3FE
 
| 010000000000D60E
 
| 010000000000D60E
| [10.0.0+] AppletILA2
+
| [10.0.0-16.1.0] AppletILA2
 +
|-
 +
| 0x700000C8
 +
| 010000000000D65B
 +
| [18.0.0+]
 +
|-
 +
| 0x700000C9
 +
| 010000000000D65C
 +
| [18.0.0+]
 +
|-
 +
| 0x700000DC
 +
| 010000000000D619
 +
| [17.0.0+] CombinationLA
 +
|-
 +
| 0x700000E6
 +
| 010000000000D610
 +
| [17.0.0+] AeSystemApplet
 +
|-
 +
| 0x700000E7
 +
| 010000000000D611
 +
| [17.0.0+] AeOverlayApplet
 +
|-
 +
| 0x700000E8
 +
| 010000000000D612
 +
| [17.0.0+] AeStarter
 +
|-
 +
| 0x700000E9
 +
| 010000000000D613
 +
| [17.0.0+] AeLibraryAppletAlone
 +
|-
 +
| 0x700000EA
 +
| 010000000000D614
 +
| [17.0.0+] AeLibraryApplet1
 +
|-
 +
| 0x700000EB
 +
| 010000000000D615
 +
| [17.0.0+] AeLibraryApplet2
 +
|-
 +
| 0x700000EC
 +
| 010000000000D616
 +
| [17.0.0+] AeLibraryApplet3
 +
|-
 +
| 0x700000ED
 +
| 010000000000D617
 +
| [17.0.0+] AeLibraryApplet4
 +
|-
 +
| 0x700000F0
 +
| 010000000000D60A
 +
| [17.0.0+] AppletISA
 +
|-
 +
| 0x700000F1
 +
| 010000000000D60B
 +
| [17.0.0+] AppletIOA
 +
|-
 +
| 0x700000F2
 +
| 010000000000D60C
 +
| [17.0.0+] AppletISTA
 +
|-
 +
| 0x700000F3
 +
| 010000000000D60D
 +
| [17.0.0+] AppletILA1
 +
|-
 +
| 0x700000F4
 +
| 010000000000D60E
 +
| [17.0.0+] AppletILA2
 
|}
 
|}
   Line 3,290: Line 3,551:  
|-
 
|-
 
| 6 || ApplicationExited
 
| 6 || ApplicationExited
 +
|-
 +
| 7 ||
 
|-
 
|-
 
| 15 || [[#FocusState|FocusStateChanged]]
 
| 15 || [[#FocusState|FocusStateChanged]]
Line 3,322: Line 3,585:  
|-
 
|-
 
| 33 || SdCardRemoved
 
| 33 || SdCardRemoved
 +
|-
 +
| 34 ||
 
|-
 
|-
 
| 50 || LaunchApplicationRequested
 
| 50 || LaunchApplicationRequested
Line 3,332: Line 3,597:  
|-
 
|-
 
| 57 || ForceHideApplicationLogo
 
| 57 || ForceHideApplicationLogo
 +
|-
 +
| 58 ||
 +
|-
 +
| 59 ||
 
|-
 
|-
 
| 60 || FloatingApplicationDetected
 
| 60 || FloatingApplicationDetected
 +
|-
 +
| 61 || [7.0.0+] PerformanceConfigurationChanged
 +
|-
 +
| 70 ||
 +
|-
 +
| 71 ||
 +
|-
 +
| 72 ||
 +
|-
 +
| 73 ||
 +
|-
 +
| 75 ||
 +
|-
 +
| 80 ||
 +
|-
 +
| 81 ||
 +
|-
 +
| 82 ||
 +
|-
 +
| 83 ||
 +
|-
 +
| 85 ||
 +
|-
 +
| 86 ||
 
|-
 
|-
 
| 90 || [[#SetRequiresCaptureButtonShortPressedMessage|DetectShortPressingCaptureButton]]
 
| 90 || [[#SetRequiresCaptureButtonShortPressedMessage|DetectShortPressingCaptureButton]]
Line 3,340: Line 3,633:  
|-
 
|-
 
| 93 || AlbumRecordingSaved
 
| 93 || AlbumRecordingSaved
 +
|-
 +
| 94 ||
 +
|-
 +
| 100 ||
 +
|-
 +
| 101 ||
 +
|-
 +
| 110 || [14.0.0+] DetectShortPressingCaptureButtonForApplet
 +
|-
 +
| 111 || [14.0.0+] DetectLongPressingCaptureButtonForApplet
 +
|-
 +
| 1000 ||
 
|}
 
|}
   Line 3,522: Line 3,827:     
= AppletAttribute =
 
= AppletAttribute =
This is "nn::am::AppletAttribute". This struct is 0x8-bytes.
+
This is "nn::am::AppletAttribute". This struct is 0x80 bytes.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 3,667: Line 3,972:  
= LaunchRequiredVersion =
 
= LaunchRequiredVersion =
 
This is "nn::oe::LaunchRequiredVersion". This is a 0x40-byte struct with 1-byte alignment.
 
This is "nn::oe::LaunchRequiredVersion". This is a 0x40-byte struct with 1-byte alignment.
 +
 +
= ServerEnvironmentType =
 +
This is "nn::oe::ServerEnvironmentType".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0 || dd
 +
|-
 +
| 1 || lp
 +
|-
 +
| 2 || sd
 +
|-
 +
| 3 || sp
 +
|-
 +
| 4 || dp
 +
|}
    
= Notes =
 
= Notes =
AM-sysmodule will only initialize [[Shared_Database_services|pdm:ntfy]] / use pdm:ntfy service commands when the value from [[Process_Manager_services|pm:bm]] GetBootMode is not 0x1.
+
AM-sysmodule will only initialize [[Shared_Database_services|pdm:ntfy]] / use pdm:ntfy service commands when the value from [[Process_Manager_services|pm:bm]] GetBootMode is not 0x1 (Maintenance).
 +
 
 +
An object constructor also writes the output from [[Process_Manager_services|pm:bm]] GetBootMode into the created object. A vfunc for this object checks whether this field is Maintenance: if so, it calls a vfunc then a func and returns. Otherwise after calling various (v)funcs, if required this eventually uses [[OMM_services|ommdisp]] cmd600.
    
[[Category:Services]]
 
[[Category:Services]]