Difference between revisions of "FRD Savegame"
Jump to navigation
Jump to search
(Identify some unknown fields in account, fix mydata table) |
m (Remove unknown padding field in mydata section (it overlaps with the previous field and is inaccurate)) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This page describes the contents of the [[Friend_Services|friend]] sysmodule savegame. | + | This page describes the contents of the [[Friend_Services|friend]] sysmodule savegame. Except for the config file, all of the data is stored inside a folder that represents the local account ID of the account. For example: /1/account stores the data of the main account. |
+ | == config == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! 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 == | == account == | ||
Line 24: | Line 48: | ||
| 0x10 | | 0x10 | ||
| 4 | | 4 | ||
− | | | + | | Local Account ID |
|- | |- | ||
| 0x14 | | 0x14 | ||
Line 35: | Line 59: | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
− | | ( | + | | (16 + 1) * 2 |
| NEX Password | | NEX Password | ||
|- | |- | ||
− | | | + | | 0x42 |
| (8 + 1) * 2 | | (8 + 1) * 2 | ||
| PrincipalID HMAC (Used for logging into NASC server) | | PrincipalID HMAC (Used for logging into NASC server) | ||
|- | |- | ||
− | | | + | | 0x54 |
| 1 | | 1 | ||
− | | | + | | NASC Environment (0: Prod, 1: Test, 2: Dev) |
|- | |- | ||
− | | | + | | 0x55 |
| 1 | | 1 | ||
− | | | + | | [[Friend_Services#Server_Types|Server type]] letter value |
|- | |- | ||
− | | | + | | 0x56 |
| 1 | | 1 | ||
− | | | + | | [[Friend_Services#Server_Types|Server type]] number value |
|- | |- | ||
− | | | + | | 0x57 |
| 1 | | 1 | ||
| Padding | | Padding | ||
Line 80: | Line 104: | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
+ | | 4 | ||
+ | | My NC Principal ID | ||
+ | |- | ||
+ | | 0x14 | ||
+ | | 4 | ||
+ | | Unknown | ||
+ | |- | ||
+ | | 0x18 | ||
+ | | 4 | ||
+ | | [https://github.com/kinnay/NintendoClients/wiki/Friends-Protocol-(3DS)#nintendopresence-structure Changed bit flags] | ||
+ | |- | ||
+ | | 0x1C | ||
+ | | 1 | ||
+ | | Is public mode | ||
+ | |- | ||
+ | | 0x1D | ||
+ | | 1 | ||
+ | | Is show game mode | ||
+ | |- | ||
+ | | 0x1E | ||
+ | | 1 | ||
+ | | Is show played game | ||
+ | |- | ||
+ | | 0x1F | ||
+ | | 1 | ||
+ | | Padding | ||
+ | |- | ||
| 0x20 | | 0x20 | ||
− | | | + | | 0x10 |
+ | | GameKey of my favorite game: | ||
+ | u64 title_id | ||
+ | u32 title_version | ||
+ | u32 unknown | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
Line 100: | Line 155: | ||
u8 platform = 2 | u8 platform = 2 | ||
u8 padding[3] | u8 padding[3] | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 0x60 | | 0x60 | ||
Line 111: | Line 162: | ||
| 0x68 | | 0x68 | ||
| (12 + 1) * 2 | | (12 + 1) * 2 | ||
− | | UTF16 string of | + | | UTF16 string of MAC address of the console (only the digits) |
|- | |- | ||
| 0x82 | | 0x82 | ||
Line 166: | Line 217: | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
− | | | + | | 0x10 |
+ | | FriendKey: | ||
+ | u32 principal_id | ||
+ | u32 padding | ||
+ | u64 friend_code | ||
+ | |- | ||
+ | | 0x10 | ||
+ | | 0x4 | ||
| Unknown | | Unknown | ||
+ | |- | ||
+ | | 0x14 | ||
+ | | 1 | ||
+ | | Friend relationship | ||
|- | |- | ||
| 0x15 | | 0x15 | ||
Line 179: | Line 241: | ||
u8 padding[3] | u8 padding[3] | ||
|- | |- | ||
− | | | + | | 0x1D |
− | | | + | | 3 |
− | | | + | | Padding |
+ | |- | ||
+ | |||
+ | | 0x20 | ||
+ | | 0x10 | ||
+ | | GameKey of friend favorite game: | ||
+ | u64 title_id | ||
+ | u32 title_version | ||
+ | u32 unknown | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
Line 188: | Line 258: | ||
|- | |- | ||
| 0x50 | | 0x50 | ||
− | | | + | | 0x8 |
| Unknown | | Unknown | ||
+ | |- | ||
+ | | 0x58 | ||
+ | | 8 | ||
+ | | Message update [https://github.com/kinnay/NintendoClients/wiki/NEX-Common-Types#datetime timestamp] | ||
+ | |- | ||
+ | | 0x60 | ||
+ | | 8 | ||
+ | | Mii update [https://github.com/kinnay/NintendoClients/wiki/NEX-Common-Types#datetime timestamp] | ||
+ | |- | ||
+ | | 0x68 | ||
+ | | 8 | ||
+ | | Last online [https://github.com/kinnay/NintendoClients/wiki/NEX-Common-Types#datetime timestamp] | ||
|- | |- | ||
| 0x70 | | 0x70 | ||
Line 200: | Line 282: | ||
|- | |- | ||
| 0xE8 | | 0xE8 | ||
− | | | + | | 8 |
− | | | + | | Friendship? [https://github.com/kinnay/NintendoClients/wiki/NEX-Common-Types#datetime timestamp] |
+ | |- | ||
+ | | 0xF0 | ||
+ | | 8 | ||
+ | | Same as 0x58? | ||
+ | |- | ||
+ | | 0xF8 | ||
+ | | 8 | ||
+ | | Same as 0x60? | ||
|} | |} |
Latest revision as of 01:11, 30 March 2024
This page describes the contents of the friend sysmodule savegame. Except for the config file, all of the data is stored inside a folder that represents the local account ID of the account. For example: /1/account stores the data of the main account.
config[edit]
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]
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 | NEX Password |
0x42 | (8 + 1) * 2 | PrincipalID HMAC (Used for logging into NASC server) |
0x54 | 1 | NASC Environment (0: Prod, 1: Test, 2: Dev) |
0x55 | 1 | Server type letter value |
0x56 | 1 | Server type number value |
0x57 | 1 | Padding |
mydata[edit]
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 | Changed bit flags |
0x1C | 1 | Is public mode |
0x1D | 1 | Is show game mode |
0x1E | 1 | Is show played game |
0x1F | 1 | Padding |
0x20 | 0x10 | GameKey of my favorite game:
u64 title_id u32 title_version u32 unknown |
0x30 | 16 * 2 | UTF16 string of personal message |
0x50 | 8 | Unknown |
0x58 | 8 |
u8 region u8 country u8 area u8 language u8 platform = 2 u8 padding[3] |
0x60 | 8 | LocalFriendCodeSeed u64 |
0x68 | (12 + 1) * 2 | UTF16 string of MAC address of the console (only the digits) |
0x82 | (15 + 1) * 2 | UTF16 string of console serial number without the checksum digit |
0xA2 | (10 + 1) * 2 | UTF16 string of Display name |
0xBB | 0x60 | Unaligned Mii data |
0x11B | 5 | Padding (0x120) |
friendlist[edit]
Header[edit]
Offset | Size | Description |
---|---|---|
0x00 | 4 | File magic "FPFL" (Friends Preference Friend List) |
0x04 | 4 | File magic number (0x20101021) |
0x08 | 8 | Padding |
0x10 | ? * 0x100 | Friend entries... |
Friend entry[edit]
Offset | Size | Description |
---|---|---|
0x00 | 0x10 | FriendKey:
u32 principal_id u32 padding u64 friend_code |
0x10 | 0x4 | Unknown |
0x14 | 1 | Friend relationship |
0x15 | 8 |
u8 region u8 country u8 area u8 language u8 platform = 2 u8 padding[3] |
0x1D | 3 | Padding |
0x20 | 0x10 | GameKey of friend favorite game:
u64 title_id u32 title_version u32 unknown |
0x30 | 16 * 2 | UTF16 string of personal message |
0x50 | 0x8 | Unknown |
0x58 | 8 | Message update timestamp |
0x60 | 8 | Mii update timestamp |
0x68 | 8 | Last online timestamp |
0x70 | 0x60 | Mii data |
0xD0 | (10 + 1) * 2 | UTF16 string of display name |
0xE8 | 8 | Friendship? timestamp |
0xF0 | 8 | Same as 0x58? |
0xF8 | 8 | Same as 0x60? |