Semi-preshifted sprite routines and macros
void PreshiftSprite16x16(register unsigned short *src asm("%a0"),register unsigned long *dest asm("%a1"));
void PreshiftGrayISprite16x16(register unsigned short *src asm("%a0"),register unsigned long *dest asm("%a1"));
PSprite16x16_OR_R, PSprite16x16_XOR_R, GrayPSprite16x16_OR_R, GrayPSprite16x16_XOR_R macros.
Preshift... functions: preshift non-masked interlaced sprite pointed to by src to
buffer pointed to by dest. The buffer must be large enough to hold the preshifted
sprite: SIZE_OF_PSPRITE16x16 bytes for a B/W sprite, SIZE_OF_PGSPRITE16x16 bytes for a
grayscale sprite.
Macros: draw preshifted sprite pointed to by sprt at coordinates x and
y to plane dest (dest0 and dest1 for grayscale
sprites).
Due to the huge size of the macros (hundreds of bytes), we suggest using a function
containing the macro if you use these macros more than twice. Of course, this will
decrease brute force performance.
See the comparison between the different approaches in another part of the documentation.