FRD Savegame

FRD Savegame

This page describes the contents of the friends sysmodule savegame.

Save data for the sysmodule has the following general structure:

data
├──  config
└── 
    ├──  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 #

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.

OffsetSizeDescription
0x004File magic “FPCF” (Friend Presence Config)
0x044File magic number (0x20101021)
0x088Padding
0x104Current Local Account ID

account #

This file stores various essential data related to the corresponding account.

OffsetSizeDescription
0x004File magic “FPAC” (Friend Presence Account Config)
0x044File magic number (0x20101021)
0x088Padding
0x104Local Account ID
0x144PrincipalID
0x188LocalFriendCode
0x20(16 + 1) * 216-character UTF-16 NEX Password (16 characters + NULL termination)
0x42(8 + 1) * 28-character UTF-16 PrincipalID HMAC (Used for logging into NASC server) (8 characters + NULL termination)
0x541NASC Environment (0: Production, 1: Testing, 2: Development)
0x551Server type letter value
0x561Server type number value
0x571Padding

mydata #

Stores console-specific information related to the account.

OffsetSizeDescription
0x004File magic “FPMD” (Friend Presence My Data/Device)
0x044File magic number (0x20101021)
0x088Padding
0x104My NC Principal ID
0x144MoveCount
0x184Change bit flag
0x1C3Preferences
0x1F1Padding
0x200x10GameKey of favorite title
0x30(16 + 1) * 216-Character UTF-16 personal message (comment) (16 characters + NULL termination)
0x521First byte of the console’s LocalFriendCodeSeed
0x535Padding
0x588Profile
0x608u64, LocalFriendCodeSeed
0x68(12 + 1) * 212-character UTF-16 MAC address (only the digits) (12 characters + NULL termination)
0x82(15 + 1) * 215-character UTF-16 console serial number without the checksum digit (15 characters + NULL termination)
0xA2(10 + 1) * 210-character UTF-16 Display name (10 characters + NULL termination)
0xBB0x60Mii data
0x11B5Padding

Change Bit Flags #

ValueDescription
1Game Key changed.
2Game mode description changed.
4Join availability flag changed.
8Matchmake system type changed.
16Join game ID changed.
32Join game mode changed.
64Owner [PID] changed.
128Join group ID changed.
256Application argument changed.

friendlist #

Contains the friend list associated with the account.

OffsetSizeDescription
0x004File magic “FPFL” (Friend Presence Friend List)
0x044File magic number (0x20101021)
0x088Padding
0x10100 * 0x100Friend entries (maximum 100)

Friend entry #

OffsetSizeDescription
0x000x10FriendKey of this friend
0x100x4NC Principal ID of this friend
0x141Relationship with this friend
0x158Profile of this friend
0x1D3Padding
0x200x10GameKey of this friend’s favorite title
0x30(16 + 1) * 216-character UTF-16 personal message (comment) of this friend (16 characters + NULL termination)
0x520x6padding
0x588NEX timestamp for the last time this friend updated their personal comment (message)
0x608NEX timestamp for the last time this friend updated their Mii
0x688NEX timestamp for the last time this friend was seen online
0x700x60Mii data
0xD0(10 + 1) * 210-character UTF-16 Display name (10 characters + NULL termination)
0xE61bool, profanity flag
0xE71u8, Mii character set
0xE88NEX timestamp for when this friend was added
0xF08Appears to be identical to the timestamp at offset 0x58.
0xF88Appears to be identical to the timestamp at offset 0x60.