12Fermer14
bidooLe 24/07/2004 à 20:46
ca y'est j'ai reussi, pour tout les newbies en asm comme moi (doit pas y'en avoir bcoup) , voila mon code : void sprite8_w(short decalage asm("%d0"),void *sprite asm("a0"),void *buffer asm("a1")) { asm(" clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*1(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*2(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*3(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*4(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*5(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*6(%a1) clr.w %d1 move.b  (%a0)+,%d1 lsl.w   %d0,%d1 move.w  %d1,30*7(%a1)"); } void sprite8_l(short decalage asm("%d0"),void *sprite asm("a0"),void *buffer asm("a1")) { asm("     clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*1(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*2(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*3(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*4(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*5(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*6(%a1) clr.l %d1 move.b  (%a0)+,%d1 lsl.l   %d0,%d1 move.l  %d1,30*7(%a1)"); } void sprite8_b(void *sprite asm("a0"),void *buffer asm("a1")) {       asm("move.b   (%a0)+,(%a1)     move.b   (%a0)+,30*1(%a1)     move.b   (%a0)+,30*2(%a1)     move.b   (%a0)+,30*3(%a1)     move.b   (%a0)+,30*4(%a1)     move.b   (%a0)+,30*5(%a1)     move.b   (%a0)+,30*6(%a1)     move.b   (%a0)+,30*7(%a1)"); } void sprite8(short x, short y,void *sprite, void * buffer) {      short xo=(x>>3),xb=x%8;   if(xo%2!=0 && xb!=0)xo--,xb+=8;   void *offset = buffer+(y<<5)-(y<<1)+xo;   if(xb>0 && xb<8)   {      sprite8_w(8-xb,sprite,offset);      return;   }   if(xb>8)   {    sprite8_l(24-xb,sprite,offset);return;   }        sprite8_b(sprite,offset);    }
mais maintenant faut que je la fasse en or parce que sa remplace tout zone de l'ecran si on utilise sprite8_w ou l

en tout cas merci infiniment sasume et kevin