Bntx: Difference between revisions
Jump to navigation
Jump to search
(Create Bntx page.) |
(No difference)
|
Revision as of 21:02, 9 May 2023
Bntx is a texture archive file format implemented by nn::gfx.
Header (nn::gfx::ResTextureFile)
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x0 | 0x20 | nn::util::BinaryFileHeader | Magic ("BNTX " in big-endian) |
| 0x20 | 0x28 | nn::gfx::ResTextureContainer |
nn::gfx::ResTextureContainer
Container for holding an array of texture info, and information about the GPU region containing textures
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x0 | 0x4 | u32 | Magic ("NX ") |
| 0x4 | 0x4 | u32 | Texture count |
| 0x8 | 0x8 | ResTextureInfo ** | Texture info array |
| 0x10 | 0x8 | ResTextureData * | Texture data gpu region header |
| 0x18 | 0x8 | nn::util::ResDic * | Texture info dictionary |
| 0x20 | 0x8 | nn::gfx::TMemoryPool * | Points to reserved 0x100 byte region for an in-place MemoryPool |
| 0x28 | 0x8 | nn::gfx::TMemoryPool * | User MemoryPool (initialized by nn::gfx to point to the in-place MemoryPool if one is not provided) |
| 0x30 | 0x4 | s32 | Base MemoryPool offset |
| 0x34 | 0x4 | u32 | Reserved |
nn::gfx::ResTextureInfo
Block contains all the data necessary to initialize a Texture and a TextureView object in nn::gfx.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x0 | 0x10 | nn::util::BinaryBlockHeader | Magic ("BRTI" in big-endian) |
| 0x10 | 0x28 | nn::gfx::TextureInfo | Texture info for nn::gfx |
| 0x38 | 0x4 | u8[4] | Packaged texture layout? |
| 0x3c | 0x14 | u8[0x14] | Reserved |
| 0x50 | 0x4 | u32 | Total texture size (including all mip maps) |
| 0x54 | 0x4 | u32 | Texture data alignment |
| 0x58 | 0x4 | nn::gfx::ChannelSource[4] | |
| 0x5c | 0x1 | nn::gfx::ImageDimension | |
| 0x5d | 0x3 | u8[3] | Reserved |
| 0x60 | 0x8 | const char * (NW) | Texture name |
| 0x68 | 0x8 | nn::gfx::ResTextureContainer * | Pointer to parent texture container |
| 0x70 | 0x8 | void ** | Array of pointers to each texture mip map level |
| 0x78 | 0x8 | Gfx User Data * | User data array |
| 0x80 | 0x8 | nn::gfx::TTexture * | Points to reserved 0x100 byte region for an in-place Texture |
| 0x88 | 0x8 | nn::gfx::TTextureView * | Points to reserved 0x100 byte region for an in-place TextureView |
| 0x90 | 0x8 | nn::gfx::DescriptorSlot | Runtime descriptor slot for the registered Texture + TextureView |
| 0x98 | 0x8 | nn::util::ResDic * | User data dictionary |
nn::gfx::ResTextureData
This block header directly precedes the 0x1000 byte page aligned GPU memory region.
| Offset | Size | Type | Description |
|---|---|---|---|
| 0x0 | 0x10 | nn::util::BinaryBlockHeader | Magic ("BRTD" in big-endian) |