User Tools

Site Tools


banjo_kazooie:sprites

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
banjo_kazooie:sprites [2025/04/12 13:01]
snowboundmage2
banjo_kazooie:sprites [2025/05/01 12:05] (current)
snowboundmage2 removed emojis for easier reading
Line 1: Line 1:
-====== Sprite ​Binary File Format Reference and Design Document ​======+====== Sprite ​Data ======
  
 This page documents the binary sprite format derived from Banjo-Kazooieโ€™s N64 rom. It supports both single-chunk and multi-frame layouts, with support for various pixel formats and chunk-based rendering. This page documents the binary sprite format derived from Banjo-Kazooieโ€™s N64 rom. It supports both single-chunk and multi-frame layouts, with support for various pixel formats and chunk-based rendering.
Line 7: Line 7:
 ---- ----
  
-===== ๐Ÿขฉ Overview =====+===== Overview =====
  
 This format is used for static or animated sprite graphics in the ROM. Depending on frame count, it can store a simple image or a complex animation. This format is used for static or animated sprite graphics in the ROM. Depending on frame count, it can store a simple image or a complex animation.
Line 13: Line 13:
 ---- ----
  
-===== ๐Ÿ“˜ Reference Table =====+===== Reference Table =====
  
-==== ๐Ÿฅ‡ File Header (offsets 0x00โ€“0x03) ====+==== File Header (offsets 0x00โ€“0x03) ====
  
 ^ Field       ^ Offset ^ Type       ^ Description ​                   ^ ^ Field       ^ Offset ^ Type       ^ Description ​                   ^
Line 21: Line 21:
 | Format ID   | 0x02   | `uint16_t` | Format identifier ​             | | Format ID   | 0x02   | `uint16_t` | Format identifier ​             |
  
-==== ๐ŸŽจ Format ID Mappings ====+==== Format ID Mappings ====
  
 ^ Format ID ^ Enum     ^ Description ​                 ^ Bits per Pixel ^ ^ Format ID ^ Enum     ^ Description ​                 ^ Bits per Pixel ^
Line 28: Line 28:
 | 0x0020 ​   | I4       | 4-bit intensity ​             | 4              | | 0x0020 ​   | I4       | 4-bit intensity ​             | 4              |
 | 0x0040 ​   | I8       | 8-bit intensity ​             | 8              | | 0x0040 ​   | I8       | 8-bit intensity ​             | 8              |
 +| 0x0100 ​   | IA4      | 4-bit intensity(with alpha) ​ | 4              |
 +| 0x0200 ​   | IA8      | 8-bit intensity(with alpha) ​ | 8              |
 | 0x0400 ​   | RGBA16 ​  | 16-bit RGBA (5-5-5-1 format) | 16             | | 0x0400 ​   | RGBA16 ​  | 16-bit RGBA (5-5-5-1 format) | 16             |
 | 0x0800 ​   | RGBA32 ​  | 32-bit RGBA                  | 32             | | 0x0800 ​   | RGBA32 ​  | 32-bit RGBA                  | 32             |
Line 33: Line 35:
 ---- ----
  
-===== ๐Ÿ–ผ Single Chunk Sprite Layout =====+===== Single Chunk Sprite Layout =====
  
 Used if `frameCount > 256` (`0x0100`). Used if `frameCount > 256` (`0x0100`).
Line 53: Line 55:
 ---- ----
  
-===== ๐ŸŽž Multi-Frame Sprite Layout =====+===== Multi-Frame Sprite Layout =====
  
 Used if `frameCount โ‰ค 256` (`0x0100`). Used if `frameCount โ‰ค 256` (`0x0100`).
  
-==== ๐Ÿ“‚ Frame Table ====+==== Frame Table ====
  
   * Offset: `0x10`   * Offset: `0x10`
Line 63: Line 65:
   * Each entry contains a **relative** 32-bit offset from the start of the frame data block.   * Each entry contains a **relative** 32-bit offset from the start of the frame data block.
  
-==== ๐Ÿงฑ Frame Data Block ====+==== Frame Data Block ====
  
 Starts at: `0x10 + (frameCount ร— 4)` Starts at: `0x10 + (frameCount ร— 4)`
Line 96: Line 98:
 ---- ----
  
-===== ๐Ÿง  Design Rationale =====+===== Design Rationale =====
  
 === Format ID and Versatility === === Format ID and Versatility ===
Line 124: Line 126:
 ---- ----
  
-===== โœ… Validation Checklist =====+===== Validation Checklist =====
  
 Use the following to verify whether a file matches this format: Use the following to verify whether a file matches this format:
Line 137: Line 139:
 ---- ----
  
-===== ๐Ÿ“Œ Notes =====+===== Notes =====
  
   * All integers are stored in **big-endian** format.   * All integers are stored in **big-endian** format.
banjo_kazooie/sprites.1744462860.txt.gz ยท Last modified: 2025/04/12 13:01 by snowboundmage2