Skip to content

Sprite Functions

Bob Frasure edited this page Jan 5, 2025 · 1 revision

Sprite Functions

load_sprites

void load_sprites(int vaddr, int *spr_data, int nb_spr);

     Load sprite graphics data in video memory, at address
     'vaddr'. This function load sprites by chunk of 8 sprites
     of 16x16 pixels. 'nb_spr' is the number of chunk to load.
     If you need to load less 16x16 sprites than the eight
     contained in a chunk, use load_vram() function instead.

init_satb

void init_satb(void);

     Initialize the internal sprite attribute table
     (SATB) used by the library to handle sprites.
     This function must be called before any other
     sprite function is called.

reset_satb

void reset_satb(void);

     Reset the internal SATB, this has the effect
     to disable and reset all the sprites.

satb_update

void satb_update(void);

void satb_update(char nb);

     Copy the internal sprite attribute table
     to the video ram. This will refresh sprites
     on the screen. Use this function regularly
     to update the sprite display. The best place
     to call satb_update() is after every vsync()
     call, but no need to call satb_update if you
     didn't change any sprite attribute.

     'nb' specifys the number of sprite to refresh;
     starting from sprite 0. By default the library
     refreshes only the sprites you use, but if you
     need to implicitely refresh a certain number
     of sprites then you can use 'nb'.

spr_set

void spr_set(char num);
     Select sprite 'num' (0-63) as the current sprite.

spr_x

void spr_x(int value);

     Set the x coordinate of the current sprite.

     Negative values will make the sprite disappear
     under the left border, while values higher than
     the screen width will make it disappear under
     the right border.

spr_y

void spr_y(int value);
     Set the y coordinate of the current sprite.

spr_pattern

void spr_pattern(int vaddr);

     Set the pattern address in video memory of
     the current sprite.

spr_ctrl

void spr_ctrl(char mask, char value);

     Set different attributes of the current sprite.

     With this function you can change the sprite
     size (16x16, 32x32, ...) and the sprite
     orientation (horizontal/vertical flipping).

spr_pal

void spr_pal(char pal);
     Set the palette-block index (0-15) of the current sprite.

spr_pri

void spr_pri(char pri);

     Set the priority of the current sprite. '0' will make
     it appear behind the background (through color 0),
     '1' will make it appear in front of the background.

spr_get_x

??? spr_get_x(void);
     Return the x coordinate of the current sprite.

spr_get_y

??? spr_get_y(void);
     Return the y coordinate of the current sprite.

spr_get_pal

char spr_get_pal(void);

     Return the palette-block index (0-15) of the current
     sprite.

spr_get_pattern

??? spr_get_pattern(void);

     Return the pattern address in video memory of
     the current sprite.

spr_hide

void spr_hide(void);

void spr_hide(char num);

     Without parameters this function will hide the current
     sprite. Use 'num' to hide a different sprite than
     the current one.

spr_show

void spr_show(void);

void spr_show(char num);

     Show a sprite that has been hidden using the spr_hide()
     function.

Clone this wiki locally