User Tools

Site Tools


banjo_kazooie:sprites

This is an old revision of the document!


Sprite Data

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.

Sprite File Binary Layout

The sprite file begins with a 16-byte header, followed by a frame offset table, and then the actual frame data.

Unless otherwise stated, all examples on this page use 06eb as an example for now.

Header Section (First 0x10 bytes)

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.

Frame Offset Table (0x10–0x14)

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.

Frame 0 Header (starts at 0x18)

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`.


banjo_kazooie/sprites.1744459925.txt.gz · Last modified: 2025/04/12 12:12 by snowboundmage2