BNCD files (Binary Nitro Cell Data) store cell bank and graphics data. These files are present in the DS firmware program. 

!! Format Version 1.1

This version of the format appears in the DS firmware program (IPL2). It has a header that takes on the following structure:

||Offset||Type||Meaning
| 0x00  | char[[4] | File signature ({{{"JNCD"}}})
| 0x04  | u16 | Version ({{{0x101}}} for 1.1)
| 0x06  | u16 | Number of cells
| 0x08  | u32 | Offset to cell data, relative to the start of the file.
| 0x0C  | u32 | Offset to OBJ data, relative to the start of the file.
| 0x10  | u32 | Offset to OBJ graphics, relative to the start of the file.
| 0x14  | u32 | Size of OBJ graphics, in bytes.
| 0x18  | u32 | Mapping mode shift. This corresponds to bits 20-21 of DISPCNT.

Cells are looked up by index. The offset to cell data points to an array of the following structure:

||Offset||Type||Meaning
| 0x00  | u8  | Cell width in pixels
| 0x01  | u8  | Cell height in pixels
| 0x02  | u16 | Starting OBJ index
| 0x04  | u16 | Number of OBJ in this cell

The cell data references OBJ in the OBJ data array pointed to by the file header. It is an array of the following structure:

||Offset||Type||Meaning
| 0x00  | u16 | OAM attribute 0
| 0x02  | u16 | OAM attribute 1
| 0x04  | u16 | OAM attribute 2, with the character name field cleared.
| 0x06  | u16 | Padding
| 0x08  | u16 | Character name for this OBJ. Used to relocate character name pointers at runtime.
| 0x0A  | u16 | Size of character data referenced by this OBJ, in character name units.

OBJ data is arranged with (0,0) at the top left corner of the cell, hence no minimum/maximum coordinates are stored.