Revision as of 13:48, 4 June 2016
The BRCTR (Binary Revolution ConTRol) filetype applies specific settings for BRLYT files and makes possible the use of BRLAN animation files in Mario Kart Wii's User Interface elements, such as buttons, backgrounds and layouts. This kind of file is always found into the UI directory from the game's filesystem, and specifically into SZS files. They're located into ctrl folders.
Offset |
Size |
Description
|
0x00 |
string |
"bctr" magic
|
0x04 |
UInt16 |
Version?
|
0x06 |
UInt16 |
Number of sections?
|
0x08 |
UInt16 |
Size? Offset?
|
0x0A |
UInt16 |
Unknown
|
0x0C |
UInt16 |
Offset to Section 1 Header
|
0x0E |
UInt16 |
Offset to Section 2 Header
|
0x10 |
UInt16 |
Offset to NameTable
|
0x12 |
UInt16 |
Unknown
|
Offset |
Size |
Description
|
0x00 |
UInt16 |
Header size
|
0x02 |
UInt16 |
Number of Sub-Section 1 entries
|
0x04 |
UInt16 |
Offset of first Sub-Section 2 entry
|
0x06 |
UInt16 |
Number of Sub-Section 2 entries
|
Section 1
Offset |
Size |
Description
|
0x00 |
UInt16[2] |
Name offsets (0 = no name)
|
0x04 |
UInt16 |
Unknown
|
0x06 |
UInt16 |
Unknown
|
Section 2
Offset |
Size |
Description
|
0x00 |
UInt16[4] |
Name offsets (0 = no name)
|
0x08 |
Float |
Unknown
|
Offset |
Size |
Description
|
0x00 |
UInt16 |
Always 00 0C (identifier?)
|
0x02 |
UInt16 |
Number of entries
|
0x04 |
UInt16 |
SectionSize (including header size)
|
0x06 |
UInt16 |
Number of flags?
|
0x08 |
UInt16 |
SectionSize + Flag(?) size
|
0x0A |
UInt16 |
Unknown
|
Section 3
This is probably the only section we have some useful info about. It contains float data specifying where to set the final position of a BRLYT pane, in widescreen (4:3 mode in Dolphin) and normal screen (16:9) modes.
Offset |
Size |
Description
|
0x00 |
UInt16 |
Name offset (0 = no name)
|
0x02 |
UInt16 |
Always 00 FF
|
0x04 |
UInt32 |
Always 00 01 00 00
|
0x08 |
Float |
Unknown
|
0x0C |
Float |
Translation X (widescreen)
|
0x10 |
Float |
Translation Y (widescreen)
|
0x14 |
Float |
Translation Z (widescreen)
|
0x18 |
Float |
Scale X (widescreen)
|
0x1C |
Float |
Scale Y (widescreen)
|
0x20 |
Float |
Translation X
|
0x24 |
Float |
Translation Y
|
0x28 |
Float |
Translation Z
|
0x2C |
Float |
Scale X
|
0x30 |
Float |
Scale Y
|
0x34 |
UInt32 |
Pre/Next?
|
0x38 |
Float/UInt32 |
Padding?
|
Section 4
This section maybe refers to specific flags for button and layout references.
Offset |
Size |
Description
|
0x00 |
UInt32 |
Unknown
|
0x04 |
UInt32 |
Unknown
|
NameTable
At the end of the file, there's a section which makes reference to BRLYT pane names, layout objects names (as they're found in StaticR.rel) and BRLAN files, which probably establish a link between them (they're configured in the previous sections) to load correctly in the game.