MyPage Applet: Difference between revisions
Created page with "This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>. See AM_services#Library_Applets. == Arg == {| class="wikitable" bor..." |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>. | This is the MyPage applet launched by Home Menu. Official sw uses this under <code>nn::friends</code>. | ||
See [[AM_services#Library_Applets]]. | See [[AM_services#Library_Applets]]. | ||
== Library Applet Versions == | |||
{| class="wikitable" border="1" | |||
|- | |||
! System Version || Value | |||
|- | |||
| [1.0.0+] || 0x1 | |||
|- | |||
| [9.0.0+] || 0x10000 | |||
|} | |||
== Arg == | == Arg == | ||
Line 15: | Line 25: | ||
| 0x8 || 0x10 || u128 userID | | 0x8 || 0x10 || u128 userID | ||
|- | |- | ||
| 0x18 || 0x8 || [[Account_services|NetworkServiceAccountId]] | | 0x18 || 0x8 || [[Account_services|NetworkServiceAccountId]] for the other account. | ||
|- | |- | ||
| 0x20 || 0x48 || [[Friend_services|InAppScreenName]] | | 0x20 || 0x48 || [[Friend_services|InAppScreenName]] | ||
|- | |- | ||
| 0x68 || 0x48 || [[Friend_services|InAppScreenName]] | | 0x68 || 0x48 || [[Friend_services|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: | |||
{| class="wikitable" border="1" | |||
|- | |||
! 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 || [[Friend_services|FriendInvitationGameModeDescription]] | |||
|} | |||
StartSendingFriendInvitation: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x18 || 0x4 || s32 NetworkServiceAccountId_count. Must be 1-15. Number of friends to invite. | |||
|- | |||
| 0x1C || 0x4 || Padding. | |||
|- | |||
| 0x20 || 0x8*NetworkServiceAccountId_count || [[Account_services|NetworkServiceAccountId]] list. | |||
|- | |||
| 0xA0 || 0x8 || User-data size, must be <=0x400. | |||
|- | |||
| 0xA8 || 0x400 || Arbitrary user-data, see above size. | |||
|- | |||
| 0x4A8 || 0xC00 || [[Friend_services|FriendInvitationGameModeDescription]] | |||
|} | |} | ||
ShowReceivedInvitationDetail: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x18 || 0x8 || [[Friend_services|FriendInvitationId]] | |||
|- | |||
| 0x20 || 0x8 || [[Friend_services|FriendInvitationGroupId]] | |||
|} | |||
== Type == | == Type == | ||
Line 31: | Line 98: | ||
! Name || Type value || PlayStartupSound || Description | ! Name || Type value || PlayStartupSound || Description | ||
|- | |- | ||
| ShowFriendList || 0 || false || | | ShowFriendList || 0 || false || Launches the applet with the "Friend List" menu initially selected. | ||
|- | |- | ||
| ShowUserDetailInfo || 1 || false || | | ShowUserDetailInfo || 1 || false || | ||
Line 37: | Line 104: | ||
| StartSendingFriendRequest || 2 || false || | | StartSendingFriendRequest || 2 || false || | ||
|- | |- | ||
| ShowMethodsOfSendingFriendRequest || 3 || false || | | ShowMethodsOfSendingFriendRequest || 3 || false || Launches the applet with the "Add Friend" menu initially selected. | ||
|- | |- | ||
| StartFacedFriendRequest || 4 || false || | | 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 || | | 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 || | | 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 || | | ShowMyProfile || 7 || false || Launches the applet with the "Profile" menu initially selected. | ||
|- | |- | ||
| ShowMyProfileForHomeMenu || 7 || true || Identical to ShowMyProfile except for PlayStartupSound. | | 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 == | == Usage == | ||
User-processes should push a common arguments struct | 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. | ||
[[Category:Library Applets]] | [[Category:Library Applets]] |
Latest revision as of 05:55, 12 November 2019
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.