Pular para o conteúdo

Message Binary Project (MSBP)

Este conteúdo não está disponível em sua língua ainda.

MSBP (Message Studio Binary Project) is a file format that stores relevant metadata for MSBT files.

TypeDescription
CLR1Colors
CLB1Color labels
ATI2Attributes
ALB1Attribute labels
ALI2Attribute lists
TGG2Tag groups
TAG2Tags definitions
TGP2Tag parameters
TGL2Tag string list
SYL3Styles
SLB1Style labels
CTI1Source files

Some sections may be omitted.

CLR1 holds color definitions. These may be looked my by label through CLB1 or by their index.

OffsetTypeDescription
0x0u32Color count
0x4RGBAColors

ATI2 defines the structure of attributes for the ATR1 section.

OffsetTypeDescription
0x0u32Attribute count
0x4Attributes [attributeCount]The attribute definitions
OffsetTypeDescription
0x0Attribute TypeThe attribute type
0x1padding [1]-
0x2u16Start index into the list in ALI2 (only valid for LIST type)
0x4u32Offset in attribute container

In MSBT files, string attributes are stored as u32 pointer.

OffsetTypeDescription
0x0u32List count
0x4u32 [listCount]Offsets to attribute lists
Attribute ListsAttribute list definitions

The section is always padded until it has a multiple of 4 bytes.

OffsetTypeDescription
0x0u32Item Count
0x4u32 [itemCount]Offsets to list item names
string [itemCount]Null-terminated list item strings

TGG2 defines tag groups for MSBT files.

OffsetTypeDescription
0x0u16Group count
0x2padding [2]-
0x4u32 [groupCount]Offsets to tag groups
Tag Group [groupCount]Tag groups

Tag groups act as the main container for tags. All group definitions are padded to a multiple of 4.

Version 3 MSBP:

OffsetTypeDescription
0x0u16Tag count
0x2u16 [tagCount]Tag indices (located in the TAG2 block)
stringNull-terminated group name

Version 4 MSBP:

OffsetTypeDescription
0x0u16Group ID
0x2u16Tag count
0x4u16 [tagCount]Tag indices (located in the TAG2 block)
stringNull-terminated group name

TAG2 holds control tag definitions. All definitions are padded to a multiple of 4.

OffsetTypeDescription
0x0u16Tag count
0x2padding [2]-
0x4u32 [tagCount]Offsets to each tag definition
OffsetTypeDescription
0x0u16Parameter count
0x2u16 [parameterCount]Tag parameter indices in the TGP2 section
--Null-terminated tag name

TGP2 holds tag parameter definitions. All definitions are padded to a multiple of 4.

OffsetTypeDescription
0x0u16Parameter count
0x2padding [2]-
0x4u32 [parameterCount]Offsets to parameters
OffsetTypeDescription
0x0u8Parameter type

In MSBT files, parameters which are strings will be length prefixed.

If type is not LIST

OffsetTypeDescription
0x1stringNull-terminated Parameter name

If type is LIST

OffsetTypeDescription
0x1padding [1]-
0x2u16String count
0x4u16 [stringCount]String indices in the TGL2 section
stringNull-terminated Parameter name

TGP2 stores strings for all LIST datatype parameters in TGP2.

OffsetTypeDescription
0x0u16String count
0x2u16Padding
0x4u32 [stringCount]Offsets to start of list
Null-terminated strings

SYL3 stores style data. These may be looked my by label through SLB1 or by their index.

OffsetTypeDescription
0x0u32Style Count
0x4Style [styleCount]Styles
OffsetTypeDescription
0x0u32Region width
0x4u32Line number
0x8u32Font index
0xCu32Color index into CLB1

CTI1 defines source files made with the project.

OffsetTypeDescription
0x0u32File count
0x4u32 [fileCount]Offsets to file strings
Null terminated File strings

Binary to Source naming scheme:

Binary FormatSource Format
.msbt.mstxt
.msbt.msproj
.msbt.msflow

Attributes and Tag Parameters store values based on a datatype. The enum is as follows:

ValueDatatype
0x0u8
0x1u16
0x2u32
0x3s8
0x4s16
0x5s32
0x6f32
0x7Unknown
0x8string
0x9known as list functionally equal to enum