DO/Updated Sprite Format
From Dark Omen Wiki
(Difference between revisions)
(New page: =Overall Structure= FILE HEADER (32 bytes) FRAME HEADERS x Number of frames (32 bytes each) PALETTE ENTRIES x Number of colors in palette (4 bytes each) FRAME DATA x Number of frames (...) |
|||
Line 1: | Line 1: | ||
=Overall Structure= | =Overall Structure= | ||
- | FILE HEADER (32 bytes) | + | |
+ | The overall structure of a sprite file looks a like this (in this order): | ||
+ | |||
+ | SPRITE FILE HEADER (32 bytes) | ||
FRAME HEADERS x Number of frames (32 bytes each) | FRAME HEADERS x Number of frames (32 bytes each) | ||
PALETTE ENTRIES x Number of colors in palette (4 bytes each) | PALETTE ENTRIES x Number of colors in palette (4 bytes each) | ||
FRAME DATA x Number of frames (size varies) | FRAME DATA x Number of frames (size varies) | ||
+ | |||
+ | For a description of each part, see below. | ||
+ | |||
+ | =File Header= | ||
+ | |||
+ | The file header consists of the first 32 bytes of the file | ||
+ | |||
+ | struct SpriteFileHeader | ||
+ | { | ||
+ | char ID[4]; // = 'WHDO' | ||
+ | int filesize; // = the size of the file in bytes | ||
+ | int version?; // = 32 | ||
+ | int frameDataOffset // = file offset to beginning of the frame data | ||
+ | int paletteDataOffset // = file offset to beginning of the palette data | ||
+ | int paletteEntryCount // = the total number of palette entries (*) | ||
+ | int paletteCount // = how many unique palettes exist in this sprite | ||
+ | int frameCount // = the number of frames of animation in this sprite | ||
+ | } | ||
+ | |||
+ | * This is the total number of colours stored in the file, each of which belongs only to one palette. e.g. there may be 300 colours stored in the file, spread throughout 5 different palettes. |
Revision as of 16:18, 19 July 2008
Overall Structure
The overall structure of a sprite file looks a like this (in this order):
SPRITE FILE HEADER (32 bytes) FRAME HEADERS x Number of frames (32 bytes each) PALETTE ENTRIES x Number of colors in palette (4 bytes each) FRAME DATA x Number of frames (size varies)
For a description of each part, see below.
File Header
The file header consists of the first 32 bytes of the file
struct SpriteFileHeader { char ID[4]; // = 'WHDO' int filesize; // = the size of the file in bytes int version?; // = 32 int frameDataOffset // = file offset to beginning of the frame data int paletteDataOffset // = file offset to beginning of the palette data int paletteEntryCount // = the total number of palette entries (*) int paletteCount // = how many unique palettes exist in this sprite int frameCount // = the number of frames of animation in this sprite }
- This is the total number of colours stored in the file, each of which belongs only to one palette. e.g. there may be 300 colours stored in the file, spread throughout 5 different palettes.