Difference between revisions of "MyPage Applet"
(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...") |
|||
(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 03: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.