Au fait Raph, si tu tiens vraiment a gagner en vitesse et que tu refais tes routines d'affichage, je te conseille gcc 3.4 qui semble etre une tuerie par rapport aux precedents.
Tu compiles avec quoi ? (gcc -v pour voir la version)
Ca doit être GCC 3.0.2 ou un truc du genre. Mais pour devkitadv c'est encore un truc spécial non ?
Si tu as un lien, je veux bien.

J'ai déjà voulu mettre GCC 3.4 mais dans devkitadv gcc.exe fait 5 ko.
Sinon pour la routine je galère !
La seule routine avec laquelle j'obtiens un résultat correcte est celle-ci :
void Fast_Draw_Sprite_32(unsigned char *sprite, unsigned short x, unsigned short y)
{
short i,j;
short deca = ((x<<8)-(x<<4) + (239-y-31))-(((x<<8)-(x<<4) + (239-y-31))/4)*4;
unsigned long *sprite_long = sprite;
unsigned long *dest_long = gpDraw[nflip].ptbuffer + ((x<<8)-(x<<4) + (239-y-31));
i = 32;
while(i--)
{
j = 8;
while(j--)
{
*dest_long++ = ((*sprite_long++)<<deca*8);
}
dest_long = dest_long + (240)/4 - 8;
}
}
En fait ça consiste à remplir les longs de la mémoire vidéo en 2 étapes en décalant le sprite :
Là j'ai la première partie :
((*sprite_long++)<<deca*8)
Mais ensuire je ne sais pas comment faire pour remplir l'autre partie de chaque long. Il faudrait que je prennent le long suivant du sprite et que je le décale dans l'autre sens.
Mais pour l'instant je ne suis pas arrivée à grand chose.