60

Ben oui : 24/8=3.
C'est pair.

61

trisofougolconfus
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

62

magic
Je réinvente mes maths... g pas le droit ?
T3 member
TimeToTeam : A new generation of games for TI

63

Au fait Thibaut le matheux : merci pour ta réponse sur mon prob d'asm top
T3 member
TimeToTeam : A new generation of games for TI

64

Bon, bha j'ai donc du me passer de l'aide de Thibaut (sniff)
voici donc mon nouveau source qui semble bien marcher :
put_sprite_8 ; (d1,d2) a0 : screen, a1 : sprite      add.w d2,d2  ; y*2      move.w d2,d4 ;      lsl.w #4,d2  ; y*32      sub.w d4,d2  ; y*32 - y*2 = y*30      moveq.l     #0,d4 ; efface d4      move.w     d1,d4 ; d4=x      and.w     #7,d1 ; d1=x%8      lsr.l     #3,d4   ;d4 = x/8            add.w     d2,d4  ;d4 = y*30 + x/8      add.w     d4,a1     ; on aligne le sprite      moveq     #7,d6 loop      move.b (a0)+,d4  ; load la ligne courante du sprite      lsl     #8,d4      ;      lsr     d1,d4      ; décale du reste      or.b     d4,1(a1)   ;affiche la ligne courante du sprite      lsr     #8,d4      or.b     d4,(a1)      add     #30,a1      dbra     d6,loop      rts

il peut surement être optimisé ( 2 lsn #8 dans une boucle ! )
T3 member
TimeToTeam : A new generation of games for TI

65

Oui.. cela manque un peut d'optimisation smile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

66

heu... pkoi tu fais ces 2 lsr ???
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

67

Sbibi : bha c assez simple.

15: lsl #8,d4 ; je décale à gauche sur 1 word
16: lsr d1,d4 ; décale à droite du reste
17: or.b d4,1(a1) ;affiche la parie droite du sprite
18: lsr #8,d4 ; decale à droite sur 1 byte
19: or.b d4,(a1) ; affiche la partie gauche du sprite

Si qqun peut m'optimiser ca, ca serait sympa wink

T3 member
TimeToTeam : A new generation of games for TI

68

TechNIC a écrit :
Merci bien Sbibi pour la correction. Je testerais ce soir.

KK : pk ROM_CALL Sprite8 n'existe pas !! wink

Sais-tu que tu peux utiliser TIGCCLIB en assembleur?
Il suffit de mettre bsr Sprite8 et d'utiliser le paquet TIGCC (soit l'IDE, soit TIGCC.EXE) pour compiler.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

69

heu... Technic, je te demandais pas a koi ça servait, je te demandais pkoi tu faisais comme ça... ça te sert a rien... tu fé deux or.d alors que tu pourais faire un or.w et tu fais deux lsr alors que tu pourrais en faire qu'un...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

70

TIGCCLIB n'est pas implémenté sous AS...
donc, pas possible smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

71

TechNIC : fart.gif
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

72

 move.w #24,%d0   /*  x.w                                    */  move.w #1,%d1   /*  y.w                                    */  move.l #0x4C00,%a0  lea Teste,%a1  /*                  Calculs de l'offset                    */  add.w %d1,%d1   /* d1.w*2                                  */  move.w %d1,%d2  /* d2.w = d0.w                             */  lsl.w #4,%d1    /* d1.w*2^4                                */  sub.w %d2,%d1   /* on a fait: x= x*2*16-x*2 = x*30         */  move.w %d0,%d2  /* d2.w = d0.w                             */  lsr.w #4,%d0    /* d0.w/2^4                                */  add.w %d0,%d0   /* d0.w*2                                  */  add.w %d0,%d1   /* d0.w + d1.w = d1.w                      */  add.w %d1,%a0   /* a0.l pointe sur  x+/-16                 */  moveq #15,%d0   /* d0.w = 15                               */  and.w %d0,%d2   /* d2.w = reste de la division de d2.w/16  */      moveq #16,%d1       /* d1.l = 16                               */                  sub.w %d2,%d1   /* d2.w - d1.w                             */ Sprite16x16_none:           /* Boucle:                      */  moveq #0,%d2                      /* d2.l = 0                     */   move.w (%a1)+,%d2          /* d2.w = (a1.w) ^  a1.w+       */                 lsl.l %d1,%d2                             /* decalage de la ligne         */  or.l %d2,(%a0)             /* On affiche en OR             */  add.w #30,%a0              /* a0 pointe 30 octets plus loin*/  dbra %d0,Sprite16x16_none  /* on le fait d0.w+1 fois       */
fêtes moi part de vos optimisationssmile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

73

yuk c horrible tous ces % devant les regs pt1 on voit rien! ce vert fluo est dégeulasse...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

74

squale92 a écrit :
TIGCCLIB n'est pas implémenté sous AS...
donc, pas possible smile

Solution: on prend Sprite8.s (généré à partir de Sprite8.c par GCC), on convertit de la syntaxe GNU as à la syntaxe A68k utilisée par AS de Nitro, on en fait un 89t/9xt et on l'envoie à la calculatrice.

Et Nitro devra enfin nous faire le support pour les librairies statiques. Après, il ne resterait plus qu'à convertir TIGCCLIB, et on pourrait se passer de l'astuce ci-dessus.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

75

Kevin> oué, c vrai...
reste à saoir si j'attend que ça soit implémenté ds AS, ou si je repompe le code direct smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

76

TiMad> heu... un truc comme ça?
PutSprite16 macro    moveq.l #0,d4    move.w (a0)+,d4    lsl.l d1,d4    or.l d4,1(a1)  endm put_sprite_16x16 ;a0=sprite, a1=LCD_MEM, d1=x ,d2=y  add.w d2,d2  move.w d2,d4  lsl.w #4,d2  sub.w d4,d2  move.w d1,d4  not.w d1  andi.w #$f,d1  lsr.w #4,d4  add.w d4,d4  add.w d2,d4  adda.w d4,a1    PutSprite16 0    PutSprite16 30    PutSprite16 60    PutSprite16 90    PutSprite16 120    PutSprite16 150    PutSprite16 180    PutSprite16 210    PutSprite16 240    PutSprite16 270    PutSprite16 300    PutSprite16 330    PutSprite16 360    PutSprite16 390    PutSprite16 420    PutSprite16 450  rts
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

77

Il y a beaucoup mieux smile (enfin je pense...)
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

78

bah peut être, ms t'as demandé d'optimiser TA routine, pas de changer d'algo grin
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

79

Change l'algosmile

par exemple:
tu rajoute une redirection vers:
Sprite16x16x32:
movem.l (a1)+,d0-d7
or.w d0,60*0(a0)
or.w d1,60*1(a0)
or.w d2,60*2(a0)
or.w d3,60*3(a0)
or.w d4,60*4(a0)
or.w d5,60*5(a0)
or.w d6,60*6(a0)
or.w d7,60*7(a0)
swap d0
swap d1
swap d2
swap d3
swap d4
swap d5
swap d6
swap d7
or.w d0,60*0+30(a0)
or.w d1,60*1+30(a0)
or.w d2,60*2+30(a0)
or.w d3,60*3+30(a0)
or.w d4,60*4+30(a0)
or.w d5,60*5+30(a0)
or.w d6,60*6+30(a0)
or.w d7,60*7+30(a0)
rts

NB: c'est juste une idee vagabondesmile il peut y avoir des erreurs
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

80

je ne suis pas sur que ça marche ça...
bah d'abord il faut un long entier pour un seul .w de sprite, sinon on peut pas le bouger pixel par pixel et on a un fantômé de la ligne suivante (ou précédente) qui s'affichera aussi... ça ça marcherait avec un sprite 8*8, ms pas 16*16... fin bon v essayer quand même...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

81

nan amarch pas...
par contre on peut utiliser un truc du genre si on fait une concession pour le sprite...
si on met:

dc.b %11111111,%11111111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11111111,%11111111,%00000000,%00000000
dc.b %11111111,%11111111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11100111,%11100111,%00000000,%00000000
dc.b %11111111,%11111111,%00000000,%00000000

pour le sprite au lieu de :

dc.b %11111111,%11111111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11111111,%11111111
dc.b %11111111,%11111111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11100111,%11100111
dc.b %11111111,%11111111

on peut virer tous les moveq et mettre des movem...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

82

???
je me suis mis d'en l'hypothèse! x%16=0 donc j'ai pas besoin d'effacer la partie basse puisque c'est un or.w
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

83

okok smile j'av pas compris que tu voulais faire un cas particulier smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

84

Bon une autre idée.... juste comme casmile
Sprite16x16:  add.w d1,d1  move.w d1,d2  lsl.w #4,d1  sub.w d2,d1  move.w d0,d7  lsr.w #3,d0  add.w d0,d1  add.w d1,a0  move.w d7,d0  and.w #16,d7  lsl.w #2,d0  move.l HDL_Sprite16x16(pc,d0.w),a2;   jmp (a2)     HDL_Sprite16x16:  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15  dc.l #Sprite16x16_32x,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_9inf,#Sprite16x16_8,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_8sup,#Sprite16x16_15             Sprite16x16_32x:  move.l (a1)+,d0-d7  or.w d0,60*0(a0)  or.w d1,60*1(a0)  or.w d2,60*2(a0)  or.w d3,60*3(a0)  or.w d4,60*4(a0)  or.w d5,60*5(a0)  or.w d6,60*6(a0)  or.w d7,60*7(a0)  swap d0  swap d1  swap d2  swap d3  swap d4  swap d5  swap d6  swap d7  or.w d0,60*0+30(a0)  or.w d1,60*1+30(a0)  or.w d2,60*2+30(a0)  or.w d3,60*3+30(a0)  or.w d4,60*4+30(a0)  or.w d5,60*5+30(a0)  or.w d6,60*6+30(a0)  or.w d7,60*7+30(a0)  rts   Sprite16x16_8sup:  moveq #16,d0  subq  d7,d0  moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  moveq #0,d7   movem.w (a1)+,d1-d7  lsl.l d0,d1  lsl.l d0,d2  lsl.l d0,d3  lsl.l d0,d4  lsl.l d0,d5  lsl.l d0,d6  lsl.l d0,d7  or.l d1,30*0(a0)        or.l d2,30*1(a0)        or.l d3,30*2(a0)        or.l d4,30*3(a0)        or.l d5,30*4(a0)        or.l d6,30*5(a0)        or.l d7,30*6(a0)        moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  moveq #0,d7  movem.w (a1)+,d1-d7  lsl.l d0,d1  lsl.l d0,d2  lsl.l d0,d3  lsl.l d0,d4  lsl.l d0,d5  lsl.l d0,d6  lsl.l d0,d7  or.l d1,30*7(a0)        or.l d2,30*8(a0)        or.l d3,30*9(a0)        or.l d4,30*10(a0)        or.l d5,30*11(a0)        or.l d6,30*12(a0)  or.l d7,30*13(a0)        moveq #0,d1  moveq #0,d2  move.w (a1)+,d1  move.w (a1),d2  lsl.l d0,d1  lsl.l d0,d2  or.l d1,30*14(a0)        or.l d2,30*15(a0)        rts           Sprite16x16_9inf:  subq  #4,a0  moveq #0,d0   moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  movem.w (a1)+,d0-d6  swap d0  swap d1  swap d2  swap d3  swap d4  swap d5  swap d6  lsr.l d7,d0  lsr.l d7,d1  lsr.l d7,d2  lsr.l d7,d3  lsr.l d7,d4  lsr.l d7,d5  lsr.l d7,d6  or.l d0,30*0(a0)        or.l d1,30*1(a0)        or.l d2,30*2(a0)        or.l d3,30*3(a0)        or.l d4,30*4(a0)        or.l d5,30*5(a0)        or.l d6,30*6(a0)        moveq #0,d0   moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  movem.w (a1)+,d0-d6  swap d0  swap d1  swap d2  swap d3  swap d4  swap d5  swap d6  lsr.l d7,d0  lsr.l d7,d1  lsr.l d7,d2  lsr.l d7,d3  lsr.l d7,d4  lsr.l d7,d5  lsr.l d7,d6  or.l d0,30*7(a0)        or.l d1,30*8(a0)        or.l d2,30*9(a0)        or.l d3,30*10(a0)        or.l d4,30*11(a0)        or.l d5,30*12(a0)        or.l d6,30*13(a0)  moveq #0,d0  moveq #0,d1  move.w (a1)+,d0  move.w (a1),d1  swap d0  swap d1  lsr.l d7,d0  lsr.l d7,d1  or.l d0,30*14(a0)        or.l d1,30*15(a0)        rts   Sprite16x16_8:  subq #2,a0  movem.b (a1)+,d0-d7   /* ?? existe? pas de presence dans le timing.txt */  or.b d0,(a0)+  or.b d1,(a0)  or.b d2,30*1(a0)  or.b d3,30*1+1(a0)  or.b d4,30*2(a0)  or.b d5,30*2+1(a0)  or.b d6,30*3(a0)  or.b d7,30*3+1(a0)  movem.b (a1)+,d0-d7   /* ?? existe? pas de presence dans le timing.txt */  or.b d0,30*4(a0)  or.b d1,30*4+1(a0)  or.b d2,30*5(a0)  or.b d3,30*5+1(a0)  or.b d4,30*6(a0)  or.b d5,30*6+1(a0)  or.b d6,30*7(a0)  or.b d7,30*7+1(a0)  movem.b (a1)+,d0-d7   /* ?? existe? pas de presence dans le timing.txt */  or.b d0,30*8(a0)  or.b d1,30*8+1(a0)  or.b d2,30*9(a0)  or.b d3,30*9+1(a0)  or.b d4,30*10(a0)  or.b d5,30*10+1(a0)  or.b d6,30*11(a0)  or.b d7,30*11+1(a0)  movem.b (a1)+,d0-d7   /* ?? existe? pas de presence dans le timing.txt */  or.b d0,30*12(a0)  or.b d1,30*12+1(a0)  or.b d2,30*13(a0)  or.b d3,30*13+1(a0)  or.b d4,30*14(a0)  or.b d5,30*14+1(a0)  or.b d6,30*15(a0)  or.b d7,30*15+1(a0)  rts Sprite16x16_15:  moveq #0,d0  moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  moveq #0,d7   movem.w (a1)+,d0-d7  add.l d0,d0  add.l d1,d1  add.l d2,d2  add.l d3,d3  add.l d4,d4  add.l d5,d5  add.l d6,d6  add.l d7,d7  or.l d0,30*0(a0)        or.l d1,30*1(a0)        or.l d2,30*2(a0)        or.l d3,30*3(a0)        or.l d4,30*4(a0)        or.l d5,30*5(a0)        or.l d6,30*6(a0)        or.l d7,30*7(a0)        moveq #0,d0   moveq #0,d1   moveq #0,d2  moveq #0,d3  moveq #0,d4  moveq #0,d5  moveq #0,d6  moveq #0,d7  movem.w (a1)+,d0-d7  add.l d0,d0  add.l d1,d1  add.l d2,d2  add.l d3,d3  add.l d4,d4  add.l d5,d5  add.l d6,d6  add.l d7,d7  or.l d0,30*8(a0)        or.l d1,30*9(a0)        or.l d2,30*10(a0)        or.l d3,30*11(a0)        or.l d4,30*12(a0)        or.l d5,30*13(a0)        or.l d6,30*14(a0)  or.l d7,30*15(a0)        rts  
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

85

c ta journée des idées aujourd'hui gringringrin
bon, en attendant de faire des cas particuliers, vala la dernière version que j'ai codée...

avec les sprites spéciaux ayant un word à 0 a la fin de chacune de leur lignes... smile
put_sprite_16x16 ;a0=sprite, a1=LCD_MEM, d1=x ,d2=y  lea spriteS(pc),a0 ;8  add.w d2,d2        ;4  move.w d2,d4       ;4  lsl.w #4,d2        ;14  sub.w d4,d2        ;4  move.w d1,d4       ;4  andi.w #$f,d1      ;8  lsr.w #4,d4        ;14  add.w d4,d4        ;4  add.w d2,d4        ;4  adda.w d4,a1       ;6  movem.l (a0)+,d0/d2-d7  lsr.l d1,d0  lsr.l d1,d2  lsr.l d1,d3  lsr.l d1,d4  lsr.l d1,d5  lsr.l d1,d6  lsr.l d1,d7  or.l d0,(a1)  or.l d2,30(a1)  or.l d3,30*2(a1)  or.l d4,30*3(a1)  or.l d5,30*4(a1)  or.l d6,30*5(a1)  or.l d7,30*6(a1)  move.l (a0)+,d7  lsr.l d1,d7  or.l d7,30*7(a1)  movem.l (a0)+,d0/d2-d7  lsr.l d1,d0  lsr.l d1,d2  lsr.l d1,d3  lsr.l d1,d4  lsr.l d1,d5  lsr.l d1,d6  lsr.l d1,d7  or.l d0,30*8(a1)  or.l d2,30*9(a1)  or.l d3,30*10(a1)  or.l d4,30*11(a1)  or.l d5,30*12(a1)  or.l d6,30*13(a1)  or.l d7,30*14(a1)  move.l (a0)+,d7  lsr.l d1,d7  or.l d7,30*15(a1)  rts
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

86

hum.. juste une question...
est-ce que ça vaut le coup de garder ce format de sprite: ?
(où "x" sont les données du sprite...)
sprite       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000       dc.b %xxxxxxxx,%xxxxxxxx,%00000000,%00000000

edit: erf, c horrible en vert fluo... fodrait que yAro change cette couleur pisseuse, ça serait bien...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

87

movem: t
r>m 8 - 8 12 14 12 16 - -
t pour un w
et 2t pour un long

moveq : 4

C'est moins rapide que ma derniere routine.. (je pense on?)
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

88

je sais pas... ta dernière routine a 16 moveq qui font chacuns 4 cycles...
atta je compte...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

89

non... c'est la mienne la plus rapide comme ça...
sur les 8 premières lignes, l'ensemble moveq+movem.w+move.w fait 8*4+12+7+8 soit 59 pour toi, et l'équivalent pour moi fait 12+2*7+12 soit 38 cycles...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

90

et, au fait, je viens de voir tes movem.b... ça n'existe PAS...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina