Difference between revisions of "FRD Savegame"

From 3dbrew
Jump to navigation Jump to search
(Created page with "This page describes the contents of the friend sysmodule savegame. == mydata == {| class="wikitable" |- ! Offset ! Size ! Description |- | 0x00 | 4 | Fi...")
 
m (Remove unknown padding field in mydata section (it overlaps with the previous field and is inaccurate))
 
(8 intermediate revisions by 3 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 ==
  
== mydata ==
+
{| 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 ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 19: Line 43:
 
|-
 
|-
 
| 0x08
 
| 0x08
| 0x3A
+
| 8
| Unknown
+
| Padding
 +
|-
 +
| 0x10
 +
| 4
 +
| Local Account ID
 +
|-
 +
| 0x14
 +
| 4
 +
| PrincipalID
 +
|-
 +
| 0x18
 +
| 8
 +
| LocalFriendCode
 +
|-
 +
| 0x20
 +
| (16 + 1) * 2
 +
| NEX Password
 
|-
 
|-
 
| 0x42
 
| 0x42
 
| (8 + 1) * 2
 
| (8 + 1) * 2
| UTF16 string of some identifier
+
| PrincipalID HMAC (Used for logging into NASC server)
 
|-
 
|-
 
| 0x54
 
| 0x54
| 4
+
| 1
| Unknown
+
| NASC Environment (0: Prod, 1: Test, 2: Dev)
 +
|-
 +
| 0x55
 +
| 1
 +
| [[Friend_Services#Server_Types|Server type]] letter value
 +
|-
 +
| 0x56
 +
| 1
 +
| [[Friend_Services#Server_Types|Server type]] number value
 +
|-
 +
| 0x57
 +
| 1
 +
| Padding
 
|}
 
|}
  
== account ==
+
== mydata ==
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 52: 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
| Unknown
+
| 0x10
 +
| GameKey of my favorite game:
 +
  u64 title_id
 +
  u32 title_version
 +
  u32 unknown
 
|-
 
|-
 
| 0x30
 
| 0x30
Line 60: Line 143:
 
|-
 
|-
 
| 0x50
 
| 0x50
| 0x10
+
| 8
 
| Unknown
 
| Unknown
 +
|-
 +
| 0x58
 +
| 8
 +
|
 +
  u8 region
 +
  u8 country
 +
  u8 area
 +
  u8 language
 +
  u8 platform = 2
 +
  u8 padding[3]
 
|-
 
|-
 
| 0x60
 
| 0x60
Line 69: Line 162:
 
| 0x68
 
| 0x68
 
| (12 + 1) * 2
 
| (12 + 1) * 2
| UTF16 string of unknown hexadecimal identifier
+
| UTF16 string of MAC address of the console (only the digits)
 
|-
 
|-
 
| 0x82
 
| 0x82
Line 76: Line 169:
 
|-
 
|-
 
| 0xA2
 
| 0xA2
| 12? * 2
+
| (10 + 1) * 2
 
| UTF16 string of Display name
 
| UTF16 string of Display name
 
|-
 
|-
Line 124: Line 217:
 
|-
 
|-
 
| 0x00
 
| 0x00
| 0x30
+
| 0x10
 +
| FriendKey:
 +
  u32 principal_id
 +
  u32 padding
 +
  u64 friend_code
 +
|-
 +
| 0x10
 +
| 0x4
 
| Unknown
 
| 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
 
| 0x30
Line 132: Line 258:
 
|-
 
|-
 
| 0x50
 
| 0x50
| 0x20
+
| 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 140: Line 278:
 
|-
 
|-
 
| 0xD0
 
| 0xD0
| 12? * 2
+
| (10 + 1) * 2
 
| UTF16 string of display name
 
| UTF16 string of display name
 
|-
 
|-
 
| 0xE8
 
| 0xE8
| 0x18
+
| 8
| Unknown
+
| 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 02: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?