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]]) |
| + | |- |
| |} | | |} |
| | | |