-
Notifications
You must be signed in to change notification settings - Fork 1
Format Overview
Outlines the overall format for the File, Section, PropertyDictionary, and Properties.
See also:
| Name | Length | Data Type |
|---|---|---|
| Header | 0x20 |
Byte[] |
| Section Count | 0x04 |
UInt32 |
| Section[] | 0x?? |
Byte[] |
| Footer | 0x0C |
Byte[] |
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[] |
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[] |
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[] |
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.
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.
- Home
-
BMSSV - Metroid: Dread
- Format Overview
- common.bmssv
- pkprfl.bmssv
- samus.bmssv
- userdata.bmssv
- BMSSV - Metroid: Samus Returns