Skip to content

Format Overview

KhaosVoid edited this page Oct 19, 2021 · 14 revisions

Outlines the overall format for the File, Section, PropertyDictionary, and Properties.

See also:

File Format

Name Length Data Type
Header 0x20 Byte[]
Section Count 0x04 UInt32
Section[] 0x?? Byte[]
Footer 0x0C Byte[]

Header

The header is 32 bytes long. The first 8 bytes seem to be some kind of ID. The rest of the data is the same until offset 0x14. The following 4 bytes appear to be a number. The ID for common.bmssv, pkprfl.bmssv, and samus.bmssv all use ID bytes D0 BE 2F 66 27 8B C8 19 and offset 0x14 has a value of 02 00 00 00. userdata.bmssv uses an ID of 6C 83 AF 6F 9C A8 5C 5A and offset 0x14 has a value of 01 00 00 00.

Name Length Data Type
ID 0x08 Byte[]
Unknown 0x0C Byte[]
Index? 0x04 UInt32?
Unknown 0x08 Byte[]

Section Format

A Section is the top-level object that typically contains one PropertyDictionary. This is what describes what kind of data is being stored. The name is null-terminated and will always have a data type of BD 14 06 45 6F 93 A3 F7.

Name Length Data Type
Name 0x?? String
Data Type 0x08 UInt64
PropertyDictionary Count 0x04 UInt32
PropertyDictionary[] 0x?? Byte[]

PropertyDictionary Format

A PropertyDictionary is what actually houses the collection of Properties. While it does not have a name, it does specify a count which is used to iterate through the key/value pairs. It will always have a data type of ED 21 C6 2C 3C 8D 27 D7.

Name Length Data Type
Data Type 0x08 UInt64
Property Count 0x04 UInt32
Property[] 0x?? Byte[]

Property

A Property can vary based on its Data Type. Below is an example of the basic format of a Property. The key is null-terminated.

Name Length Data Type
Key 0x?? String
Data Type 0x08 UInt64
Data 0x?? Byte[]

See Known Data Types for a complete list.


Footer

The footer is 12 bytes long with a value of 48 C4 21 8C 5F 99 59 70 00 00 00 00. The footer is the same in common.bmssv, pkprfl.bmssv, and samus.bmssv. It is not present in userdata.bmssv.

Clone this wiki locally