Hack64 Wiki
Other Titles
Hack64 Wiki
Other Titles
This is an old revision of the document!
This page documents the binary layout of a sprite file used in the Banjo Kazooie game (based on the n64 rom) . All multi-byte values are stored in big endian.
The sprite file begins with a 16-byte header, followed by a frame offset table, and then the actual frame data.
Offset | Bytes | Big Endian Value | Description |
---|---|---|---|
0x00 | 00 01 | 0x0001 | Frame count = 1 |
0x02 | 01 00 | 0x0100 | Format ID = 0x100 |
0x04 | FF FF FF FF | 0xFFFFFFFF | Likely unused or sentinel |
0x08 | 00 BE | 0x00BE = 190 | Possibly a default width? |
0x0A | 00 BE | 0x00BE = 190 | Possibly a default height? |
0x0C | 00 00 00 00 | 0x00000000 | Padding or flags |
At offset `0x10`, the frame offset table begins.
Offset | Bytes | Big Endian Value | Description |
---|---|---|---|
0x10 | 00 00 00 04 | 0x00000004 | Offset to Frame 0: `0x04 + 0x14 = 0x18` |
The frame offset table contains a single `uint32_t`, pointing to the first frame header. Since there's only one frame, the table is 4 bytes long.
Offset | Bytes | Big Endian Value | Description |
---|---|---|---|
0x18 | 00 00 | 0 | X position |
0x1A | 00 00 | 0 | Y position |
0x1C | 03 91 | 0x0391 = 913 | Width in pixels |
0x1E | 00 13 | 0x0013 = 19 | Height in pixels |
0x20 | 00 3E | 0x003E = 62 | Chunk count |
0x22 | 00 00 | — | Unknown or padding |
More details on chunk data may follow after offset `0x24`.