Table of Contents

sprites.h

Functions

allocate_sprite

SpriteSlot allocate_sprite(SpritePage* sprite);

Allocate space for an image in Sprite RAM and return a single-byte handle for that image.

Every BMP asset gets a _load_list struct generated. Images greater than 128 pixels in length or width will be broken into multiple parts, as each 256×256 Sprite RAM page is accessed in four quadrants requiring separate load operations for each.

set_sprite_frametable

void set_sprite_frametable(SpriteSlot sprite, const Frame *frametable, char frametable_bank);

Associate an Aseprite-generated sprite packing table with a SpriteSlot handle, required for using queue_draw_sprite_frame ordirect_draw_sprite_frame

free_sprite

void free_sprite(SpriteSlot slot);

Free a SpriteSlot handle and the occupied Sprite RAM space so that it can be given out by allocate_sprite again.

clear_spritebank

void clear_spritebank(char bank);

Sets all pixels in a given sprite bank to 0. Not required after freeing the sprite, just used for weird advanced procedural drawing stuff.

sprite_fetch_frame

void sprite_fetch_frame(SpriteSlot sprite, char frame);

Used internally by queue_draw_sprite_frame and direct_draw_sprite_frame. Grabs the Aseprite-generated sprite packing data (X, Y, width, height) from a sprite pack table and sets the values in the global struct sprite_temp_frame.

load_spritesheet

void load_spritesheet(char* spriteData, char srcBank, char ramBank);

Used internally by allocate_sprite.

Decompress image data into a specific Sprite RAM area. Used by itself it won't affect the sprite allocation table. You can generally use the same value passed to ramBank as the SpriteSlot parameter on draw calls.