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/05/01 12:04] snowboundmage2 [๐ฅ File Header (offsets 0x00โ0x03)] |
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 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 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. |