This is the MyPage applet launched by Home Menu. Official sw uses this under nn::friends
.
See AM_services#Library_Applets.
Library Applet Versions
System Version | Value |
---|---|
[1.0.0+] | 0x1 |
[9.0.0+] | 0x10000 |
Arg
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | #Type |
0x4 | 0x4 | Padding |
0x8 | 0x10 | u128 userID |
0x18 | 0x8 | NetworkServiceAccountId for the other account. |
0x20 | 0x48 | InAppScreenName |
0x68 | 0x48 | InAppScreenName |
0xB0 | 0xFF8 | See below. |
The is the 0xB0-byte (0x10A8-byte with version 0x10000) struct pushed for the input storage.
The fields following the userID are only set for #Type ShowUserDetailInfo, StartSendingFriendRequest, StartFriendInvitation, StartSendingFriendInvitation, and ShowReceivedInvitationDetail, for everything else these are cleared.
The layout of the data following the userID with the [9.0.0+] types depends on what type is being used:
StartFriendInvitation:
Offset | Size | Description |
---|---|---|
0x18 | 0x4 | s32 NetworkServiceAccountId_count. Must be 1-15. Number of friends to invite. |
0x1C | 0x4 | Padding. |
0x20 | 0x8 | User-data size, must be <=0x400. |
0x28 | 0x400 | Arbitrary user-data, see above size. |
0x428 | 0xC00 | FriendInvitationGameModeDescription |
StartSendingFriendInvitation:
Offset | Size | Description |
---|---|---|
0x18 | 0x4 | s32 NetworkServiceAccountId_count. Must be 1-15. Number of friends to invite. |
0x1C | 0x4 | Padding. |
0x20 | 0x8*NetworkServiceAccountId_count | NetworkServiceAccountId list. |
0xA0 | 0x8 | User-data size, must be <=0x400. |
0xA8 | 0x400 | Arbitrary user-data, see above size. |
0x4A8 | 0xC00 | FriendInvitationGameModeDescription |
ShowReceivedInvitationDetail:
Offset | Size | Description |
---|---|---|
0x18 | 0x8 | FriendInvitationId |
0x20 | 0x8 | FriendInvitationGroupId |
Type
Name | Type value | PlayStartupSound | Description |
---|---|---|---|
ShowFriendList | 0 | false | Launches the applet with the "Friend List" menu initially selected. |
ShowUserDetailInfo | 1 | false | |
StartSendingFriendRequest | 2 | false | |
ShowMethodsOfSendingFriendRequest | 3 | false | Launches the applet with the "Add Friend" menu initially selected. |
StartFacedFriendRequest | 4 | false | Launches the applet where the "Search for Local Users" menu is initially shown. Returning from this menu will exit the applet. |
ShowReceivedFriendRequestList | 5 | false | Launches the applet where the "Received Friend Requests" menu is initially shown. Returning from this menu will exit the applet. |
ShowBlockedUserList | 6 | false | Launches the applet where the "Blocked-User List" menu is initially shown. Returning from this menu will exit the applet. |
ShowMyProfile | 7 | false | Launches the applet with the "Profile" menu initially selected. |
ShowMyProfileForHomeMenu | 7 | true | Identical to ShowMyProfile except for PlayStartupSound. |
[9.0.0+] StartFriendInvitation | 8 | false | Launches the applet for sending online-play invites to friends, where the friends are selected via the UI. |
[9.0.0+] StartSendingFriendInvitation | 9 | false | |
[9.0.0+] ShowReceivedInvitationDetail | 10 | false |
Usage
User-processes should push a common arguments struct as well as an #Arg struct. See #Type for the commonargs PlayStartupSound flag value. After starting the applet, official sw immediately closes it (no output storage is handled) - except for StartSendingFriendRequest/StartFriendInvitation/StartSendingFriendInvitation which returns an output storage containing the Result.