Au début je n'utilisais que des unsigned char pour copier de pixel en pixel et j'ai décidé de passer au unsigned long pour aller 4 fois plus vite.
void Fast_Draw_Sprite_32(unsigned char *sprite, unsigned short x, unsigned short y)
{
short i,j;
unsigned long *sprite_long = sprite;
unsigned long *dest = ((unsigned long *)gpDraw[nflip].ptbuffer + ((x<<8)-(x<<4) + (239-y-31))/4 );
i=32;
while(i--)
{
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
*dest++ = *sprite_long++;
dest = dest + ((240-32)/4);
}
}
Mais j'ai un petit problème : les sprites dessinés par cette routines bougent en y de 4 pixels en 4 pixels ce qui donne une impression de saccade lorsque la caméra se déplace verticalement... et puis les sprites sont décalé 3 fois sur 4 par rapport à ceux dessiné par la routine du sdk.

