BNTX

Revision as of 09:36, 2 September 2022 by Arch Leaders (talk | contribs) (Document BNTX sub types (except BNTI for now). Credit to KillzXGaming and Syroot for all the data offsets.)

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)

Stores a list of Strings.

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 (?)