BNTX: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
(Document BNTX sub types (except BNTI for now). Credit to KillzXGaming and Syroot for all the data offsets.)
(Fix formatting errors)
 
Line 92: Line 92:


==String Pool (_STR)==
==String Pool (_STR)==
Stores a list of Strings.


{| class=wikitable
{| class=wikitable
Line 111: Line 109:
|4
|4
|UInt32
|UInt32
|End of String Pool (?)
|End of String Pool. (?)
|-
|-
|<code>0x08</code>
|<code>0x08</code>
|8
|8
|Int64
|Int64
|End of String Pool (?)
|End of String Pool. (?)
|-
|-
|<code>0x10</code>
|<code>0x10</code>
|4
|4
|UInt32
|UInt32
|String Pool Entry Count
|String Pool Entry Count.
|-
|-
|}
|}
Line 170: Line 168:
|4
|4
|Int32
|Int32
|String Dictionary entry count
|String Dictionary entry count.
|-
|-
|<code>0x08</code>
|<code>0x08</code>
|8
|8
|Bytes
|Bytes
|Padding/unknown data
|Padding/unknown data.
|-
|-
|}
|}
Line 192: Line 190:
|4
|4
|UInt32
|UInt32
|Reference
|Reference.
|-
|-
|<code>0x04</code>
|<code>0x04</code>
|2
|2
|UInt16
|UInt16
|Left Index
|Left Index.
|-
|-
|<code>0x06</code>
|<code>0x06</code>
|2
|2
|UInt16
|UInt16
|Right Index
|Right Index.
|-
|-
|<code>0x08</code>
|<code>0x08</code>
|8
|8
|UInt64
|UInt64
|String Pool offset
|String Pool offset.
|-
|-
|}
|}
Line 233: Line 231:
|4
|4
|UInt32
|UInt32
|Position
|Position.
|-
|-
|<code>0x08</code>
|<code>0x08</code>
|4
|4
|UInt32
|UInt32
|Always 2
|Always 2.
|-
|<code>0x0C</code>
|<code>0x0C</code>
|14
|14
|Bytes
|Bytes
|Padding (?)
|Padding. (?)
|-
|-
|}
|}

Latest revision as of 09:38, 2 September 2022

Header

Header Specification
Offset Size Data Type Description
0x00 4 Bytes BNTX File Signature (Magic). Binary BNTX (42 4E 54 58).
0x04 4 Bytes 4 bytes of padding.
0x08 4 Bytes 4 byte version where each byte is a version increment. (00 40 00 FF - 0.4.0.0
0x0C 2 Bytes Endianess. FFFE (LE) : FEFF (BE)
0x0E 1 Byte Alignment.
0x0F 1 Byte Target Address Size.
0x10 4 UInt32 File Name Offset.
0x14 2 UInt16 Flag.
0x16 2 UInt16 String Pool Offset.
0x18 4 UInt32 Relocation Table Offset.
0x1C 4 UInt32 File Size.
0x20 4 Bytes Target platform. (NX )
0x24 4 Int32 Texture Count.
0x28 8 Int64 Texture Array Offset.
0x30 8 Int64 Texture Data Length.
0x38 8 Int64 String Dictionary Offset.

String Pool (_STR)

String Pool Specification
Offset Size Data Type Description
0x00 4 Bytes _STR File Signature (Magic); Binary _STR (5F 53 54 52)
0x04 4 UInt32 End of String Pool. (?)
0x08 8 Int64 End of String Pool. (?)
0x10 4 UInt32 String Pool Entry Count.

String Pool Entry

String Pool Specification
Offset Size Data Type Description
0x00 2 UShort String size.
0x02 size* String String pool entry text.
0x* 1 or 2 Byte End of string padding where the length is 1 if the String size is an odd number, otherwise 2.

String Dictionary (_DIC)

String Dictionary Specification
Offset Size Data Type Description
0x00 4 Bytes _DIC File Signature (Magic); Binary _DIC (5F 44 49 43)
0x04 4 Int32 String Dictionary entry count.
0x08 8 Bytes Padding/unknown data.

String Dictionary Entry

String Dictionary Entry Specification
Offset Size Data Type Description
0x00 4 UInt32 Reference.
0x04 2 UInt16 Left Index.
0x06 2 UInt16 Right Index.
0x08 8 UInt64 String Pool offset.

Binary Texture Info (BNTI)

(Work in progress)

Relocation Table (_RLT)

Relocation Table Specification
Offset Size Data Type Description
0x00 4 Bytes _RLT File Signature (Magic); Binary _RLT (5F 52 4C 54)
0x04 4 UInt32 Position.
0x08 4 UInt32 Always 2.
0x0C 14 Bytes Padding. (?)