FRD Savegame
Revision as of 22:05, 10 January 2025 by TimmSkiller (talk | contribs)
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.
config[edit]
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 |
mydata[edit]
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.
Header[edit]
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. |