Buggée... je pense plutot que c'est pas compatible avec le format dll.. parce que sinon je vois pas d'ou ca vient..
Une routine de sprite 16x16 ne prend que 3Kcycles il me semble...


void _main(void)
{
short i, j, x, y;
unsigned long count ;
void * GPLAN = NULL;
unsigned long Gen[100];
unsigned long X[100];
DlgMessage ("X vs Gen", "Attention le bench rique de prendre qqs minutes", BT_NONE, BT_NONE);
XOn();
GPLAN = XNewGPlan();
XGPlanc(GPLAN);
XIniDrawStr(F_4x6,GLOW);
count = 0;
XTimer5 = 0;
for (y=0; y<1000; y++)
{
count++;
XClrGPlan();
}
X[0]=19*count/XTimer5;
count = 0;
XTimer5 = 0;
for (x=-16; x<=256; x++)
for (y=-16; y<=128+16; y++)
{
count++;
XGTWSprite(x,y,aze);
}
X[1]=19*count/XTimer5;
do{
XClrGPlan();
XPrintf(0,0,"- X XClrGPlan %d",(int)X[0]);
XPrintf(0,8,"- X XGTWSprite2 %d",(int)X[1]);
XCpyGPlanToLCD();
XJoyPad();
} while(!Press.Enter);
XDestrFont();
XDestrGPlan(GPLAN);
XOff();
//Init GENLIB
PUSH_DSCREEN(DSCREEN *Scr); // DScreen + Adress of the DScreen
gl_init();
gl_set_dscreen_function(Scr);
gl_set_dscreen_int(Scr);
gl_cls();
// Bench Clear Screen
// GenLib
count = 0;
gl_timer = 0;
for (y=0;y<1000;y++)
{
count++;
gl_cls();
}
Gen[0]=90*count/gl_timer;
// Gen
count = 0;
gl_timer = 0;
for (x=-16; x<=256; x++)
for (y=-16; y<=128+16; y++)
{
count++;
gl_put_sprite_16(x,y,1);
}
Gen[1]=90*count/gl_timer;
gl_cls();
glaux_text(0,0,C_BLACK,T_SMALL,"Gen gl_cls: %ld Spr/s", Gen[0]);
glaux_text(0,20,C_BLACK,T_SMALL,"Gen gl_put_sprite_16: %ld Spr/s", Gen[1]);
gl_wait_a_key();
gl_quit();
}



). Et surtout l'affichage 'NRMAL' en noir
c t l'idée d' Aghnar je crois.



), j'en ai très besoin 
J'ai préciser que cette version (1.00) ne devait pas être distribuer pour une version final d'un jeu... (pour des probleme de version...)
Ceci dit tu déroules tes routines de sprites comme une vieille brute
(déroulement x2 = gain de 5 cycles/170 soit 3% par rapport à déroulement x1, déroulement x4 = gain de 2.5/170 soit 1.5% par rapport à déroulement x2 pour environ 80 octets par boucle, donc j'imagine 160 ou 240 octets par routine, càd bcp si tu multiplies par le nb de routines) Je pense que le déroulement x2 est largement suffisant...
Et puis l'usage des majuscules est un peu bizarre (XGPlanc, pkoi c pas XGPlanC ?), de même que faut vraiment regarder la doc pour retrouver NRMAL
à la limite NORMAL ou NRML... Et y en a encore d'autres : XIniDrawStr -> XInitDrawStr (d'ailleurs la fonction d'initialisation est InitDrawStr alors que celle de fermeture est DestrFont, c pas terrible - pkoi pas InitFont?), XEfface -> XErase -> XEraseRectangle, XGPxlLPut -> XGPxlPutL, XDrawLGlowStr -> XDrawStrGlowL, XHCLine -> XCHLine, XClrLPlan -> XClrGPlanL, XJoyPad -> XReadJoyPad/XUpdJoyPad, Press -> Pressed/JoyPad/XJoyPad, sans compter les innombrables macros qui utilisent une terminologie différente des fonctions correspondantes (XGPxl_G vs XGPxlPutGauche, XWuLn vs XWuLine, XWuLnG vs XWuLineGauche - d'ailleurs il y avait un underscore avant le G pour XGPxl_G mais pas pour XWuLnG
)
(pareil pour les WuLine)
(en tout cas je me suis fait chier à les taper, j'espère que ce sera pas pour rien
)
mais je corrigerai l'erreur, merci
de plus je vais rajouter les fonctions XDrawLevel.. qui seront dans la dll (pour des soucis d'optimisation) permettant d'éviter de recalculer à chaque fois les coordonnées et de sauter les testes de clipping ... ce qui va la rapprocher des 10 Ko (mais pas plus...).
)
c ridicule votre petite guerre
d'après ce que tu m'as dit, on peut économiser 1 ko (80*3*4) avec un déroulement x2, ce qui est qd même assez sympa pour un gain de 1.5% seulement en gray masqué et de moins de 3% en gray OR ou en BW masqué. Enfin tu fais ce que tu veux
), ct pas trop la peine... D'ailleurs même dans la TIGCCLib y a des trucs pas propres comme ça (freopen...)

)
).
mais faut savoir que le programme en général tournera 3% moins vite...
.