This page describes the contents of the friends sysmodule savegame.
Save data for the sysmodule has the following general structure:
data
├── config
└── <Local Account ID>
├── account
├── friendlist
└── mydata
Despite being generally unused, the sysmodule supports the usage of multiple accounts.
Each account gets its own "Local Account ID", and a directory named after this ID. The directory contains all relevant account information.
This file only contains the local account ID of the currently active account.
The friends sysmodule uses this file to determine which account to load by default.
Offset |
Size |
Description
|
0x00 |
4 |
File magic "FPCF" (Friends Preference Config)
|
0x04 |
4 |
File magic number (0x20101021)
|
0x08 |
8 |
Padding
|
0x10 |
4 |
Current Local Account ID
|
account[edit]
This file stores various essential data related to the corresponding account.
Offset |
Size |
Description
|
0x00 |
4 |
File magic "FPAC" (Friends Preference Account Config)
|
0x04 |
4 |
File magic number (0x20101021)
|
0x08 |
8 |
Padding
|
0x10 |
4 |
Local Account ID
|
0x14 |
4 |
PrincipalID
|
0x18 |
8 |
LocalFriendCode
|
0x20 |
(16 + 1) * 2 |
16-character UTF-16 NEX Password (16 characters + NULL termination)
|
0x42 |
(8 + 1) * 2 |
8-character UTF-16 PrincipalID HMAC (Used for logging into NASC server) (8 characters + NULL termination)
|
0x54 |
1 |
NASC Environment (0: Production, 1: Testing, 2: Development)
|
0x55 |
1 |
Server type letter value
|
0x56 |
1 |
Server type number value
|
0x57 |
1 |
Padding
|
Stores console-specific information related to the account.
Offset |
Size |
Description
|
0x00 |
4 |
File magic "FPMD" (Friends Preference My Data/Device)
|
0x04 |
4 |
File magic number (0x20101021)
|
0x08 |
8 |
Padding
|
0x10 |
4 |
My NC Principal ID
|
0x14 |
4 |
Unknown
|
0x18 |
4 |
Change bit flag
|
0x1C |
3 |
Preferences
|
0x1F |
1 |
Padding
|
0x20 |
0x10 |
GameKey of favorite title
|
0x30 |
(16 + 1) * 2 |
16-Character UTF-16 personal message (comment) (16 characters + NULL termination)
|
0x52 |
1 |
First byte of the console's LocalFriendCodeSeed
|
0x53 |
5 |
Padding
|
0x58 |
8 |
Profile
|
0x60 |
8 |
u64, LocalFriendCodeSeed
|
0x68 |
(12 + 1) * 2 |
12-character UTF-16 MAC address (only the digits) (12 characters + NULL termination)
|
0x82 |
(15 + 1) * 2 |
15-character UTF-16 console serial number without the checksum digit (15 characters + NULL termination)
|
0xA2 |
(10 + 1) * 2 |
10-character UTF-16 Display name (10 characters + NULL termination)
|
0xBB |
0x60 |
Mii data
|
0x11B |
5 |
Padding
|
Change Bit Flags[edit]
Value |
Description
|
1 |
Game Key changed.
|
2 |
Game mode description changed.
|
4 |
Join availability flag changed.
|
8 |
Matchmake system type changed.
|
16 |
Join game ID changed.
|
32 |
Join game mode changed.
|
64 |
Owner [PID] changed.
|
128 |
Join group ID changed.
|
256 |
Application argument changed.
|
friendlist[edit]
Contains the friend list associated with the account.
Offset |
Size |
Description
|
0x00 |
4 |
File magic "FPFL" (Friends Preference Friend List)
|
0x04 |
4 |
File magic number (0x20101021)
|
0x08 |
8 |
Padding
|
0x10 |
100 * 0x100 |
Friend entries (maximum 100)
|
Friend entry[edit]
Offset |
Size |
Description
|
0x00 |
0x10 |
FriendKey of this friend
|
0x10 |
0x4 |
NC Principal ID of this friend
|
0x14 |
1 |
Relationship with this friend
|
0x15 |
8 |
Profile of this friend
|
0x1D |
3 |
Padding
|
0x20 |
0x10 |
GameKey of this friend's favorite title
|
0x30 |
(16 + 1) * 2 |
16-character UTF-16 personal message (comment) of this friend (16 characters + NULL termination)
|
0x52 |
0x6 |
padding
|
0x58 |
8 |
NEX timestamp for the last time this friend updated their personal comment (message)
|
0x60 |
8 |
NEX timestamp for the last time this friend updated their Mii
|
0x68 |
8 |
NEX timestamp for the last time this friend was seen online
|
0x70 |
0x60 |
Mii data
|
0xD0 |
(10 + 1) * 2 |
10-character UTF-16 Display name (10 characters + NULL termination)
|
0xE6 |
1 |
bool, profanity flag
|
0xE7 |
1 |
u8, Mii character set
|
0xE8 |
8 |
NEX timestamp for when this friend was added
|
0xF0 |
8 |
Appears to be identical to the timestamp at offset 0x58.
|
0xF8 |
8 |
Appears to be identical to the timestamp at offset 0x60.
|