This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| 
                    banjo_kazooie:sprites [2025/04/15 17:37] snowboundmage2 added new formats  | 
                
                    banjo_kazooie:sprites [2025/05/01 12:05] (current) snowboundmage2 removed emojis for easier reading  | 
            ||
|---|---|---|---|
| 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  | 4 |ย | + | | 0x0100  | IA4 | 4-bit intensity(with alpha) | 4 |ย | 
| - | | 0x0200  | IA8 | 8-bit intensity  | 8 | | + | | 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 35: | Line 35: | ||
| ---- | ---- | ||
| - | ===== ๐ผ Single Chunk Sprite Layout ===== | + | ===== Single Chunk Sprite Layout ===== | 
| Used if `frameCount > 256` (`0x0100`). | Used if `frameCount > 256` (`0x0100`). | ||
| Line 55: | 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 65: | 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 98: | Line 98: | ||
| ---- | ---- | ||
| - | ===== ๐ง Design Rationale ===== | + | ===== Design Rationale ===== | 
| === Format ID and Versatility === | === Format ID and Versatility === | ||
| Line 126: | 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 139: | Line 139: | ||
| ---- | ---- | ||
| - | ===== ๐ Notes ===== | + | ===== Notes ===== | 
| * All integers are stored in **big-endian** format. | * All integers are stored in **big-endian** format. | ||