Album Applet

From Nintendo Switch Brew
Revision as of 00:36, 3 December 2020 by Yellows8 (talk | contribs) (→‎Album Local Sharing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is the Album (PhotoViewer) applet launched by Home Menu. See AM_services#Library_Applets.

This applet uses heap size 0xF200000 with svcSetHeapSize (with 10.0.0 at least).


User-processes should push a common arguments struct (version=0x10000) as well as u8 arg. See below for the commonargs PlayStartupSound flag value. After starting the applet, official sw immediately closes it (no output storage is handled).

Name Arg value PlayStartupSound Description
ShowAlbumFiles 0 false Only displays AlbumFiles associated with the title which launched the Album applet, with the filter button disabled.
ShowAllAlbumFiles 1 false Displays all AlbumFiles, with filtering allowed.
ShowAllAlbumFilesForHomeMenu 2 true Similar to ShowAllAlbumFiles.

Album Local Sharing

11.0.0 added a "Send to Smartphone" feature. This uses local-WLAN to communicate with the device, via lp2p:sys. The GroupInfo is setup with the following (created with the defaults first):

  • MemberCountMax = 1
  • PresharedKey* is initialized.
  • +0x82 = 3
  • The SSID is initialized. The SSID starts with "switch_".
  • The Flags at +0x3F are set to count=1 entry[0]=0.
  • PerformanceRequirement = 2
  • LocalCommunicationId = {PhotoViewer ProgramId}
  • Priority = 55

The above GroupInfo is passed to cmd CreateGroup. Only the following lp2p cmds are used:

  • INetworkService: CreateGroup, DestroyGroup.
  • INetworkServiceMonitor: GetNetworkInterfaceLastError, GetGroupInfo, GetIpConfig, GetMembers.

The actual communication with the device uses a HTTP web-server.

Album displays two QR-codes:

  • The first one is for connecting the device to the network.
  • Once a device connects to the network, it displays another QR-code:
  • It then displays a QR code for URL: "http://{IP address}/index.html".