Changes

no edit summary
Line 3,082: Line 3,082:  
== SaveScreenShotEx2 ==
 
== SaveScreenShotEx2 ==
 
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 =
  −
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
  −
|-
  −
| 0x8 || 4 || || Library applet version (API version)
  −
|-
  −
| 0xC || 4 || 0 || Theme color
  −
|-
  −
| 0x10 || 1 || 0 || Play startup sound
  −
|-
  −
| 0x18 || 8 || N/A || System tick (see [[SVC#svcGetSystemTick|svcGetSystemTick]])
  −
|-
  −
|}
      
= apm =
 
= apm =
Line 3,149: Line 3,117:  
|-
 
|-
 
| 2 || [8.0.0+] SetCpuOverclockEnabled
 
| 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
 +
|-
 +
| 0x8 || 4 || || Library applet version (API version)
 +
|-
 +
| 0xC || 4 || 0 || Theme color
 +
|-
 +
| 0x10 || 1 || 0 || Play startup sound
 +
|-
 +
| 0x18 || 8 || N/A || System tick (see [[SVC#svcGetSystemTick|svcGetSystemTick]])
 +
|-
 
|}
 
|}