Sasume :
Ça fait un bon point en plus pour AS
(Post croisé.
)
Mais de toute façon vous n'avez qu'à me demander une bêta, je ne crois pas qu'il y aura quoi que ce soit concernant l'assembleur qui sera changé d'ici à la première beta.


Bah c'est assez vite vu, Pollux l'a dit : Soit tu as un fond statique et pas trop d'objets mouvants sur l'écran, alors un "vrai" scrolling devrait être plus rapide, soit tu as un fond pas toujours statique (tiles animés par exemple) et un nombre conséquent d'objets, et alors il vaut surement mieux tout réafficher.
l'ancienne était bien trop lente
la nouvelle avec les movem me fait gagner 7 fps de plus que l'ancienne mais est optimisable et je ne vois pas comment, j'ai tout apliiqué de ce que tu as dit Pollux
Laquelle? Celle que tu as postée?
Heu, ce que tu as dit Pollux me semble être en contradiction assez radicale avec la nouvelle avec les movem... Tu as essayé sans les movem, mais avec les optimisations dont je t'ai parlé?
;C prototype: void DrawScreen2 (void *sprt, void *dest);
;
;void DrawScreen2 (register long *sprt asm("%a0"),
; register void *dest asm("%a1"));
section ".data"
xdef DrawScreen2
DrawScreen2:
movem.l d3/a2,-(a7)
lea 322(a1),a1
lea 8000(a1),a2
movea.l a0,a3
moveq.l #11,d2
\rep:
moveq.l #15,d3
;Sprite totale
\b0:
move.l (a0)+,d1
moveq.l #5,d0
;Gris clair
\s1:
move.l d1,(a1)+
dbf d0,\s1
;16 pixels
move.b -4(a0),(a1)
move.l (a0)+,d1
moveq.l #5,d0
;Gris foncé
\s2:
move.l d1,(a2)+
dbf d0,\s2
;16 pixels
move.b -4(a0),(a2)
lea 16(a1),a1
lea 16(a2),a2
dbf d3,\b0
movea.l a3,a0
dbf d2,\rep
movem.l (a7)+,d3/a2
rtsmoveq.l #5,d0 ;Gris clair \s1: move.l d1,(a1)+ dbf d0,\s1
move.l d1,(a1)+ move.l d1,(a1)+ move.l d1,(a1)+ move.l d1,(a1)+ move.l d1,(a1)+ move.l d1,(a1)+



;C prototype: void DrawScreen2 (void *sprt, void *dest);
;
;void DrawScreen2 (register long *sprt asm("%a0"),
; register void *dest asm("%a1"));
section ".data"
xdef DrawScreen2
DrawScreen2:
lea 322(a1),a1
moveq.l #5,d2
\rep:
moveq.l #31,d0
;Sprite totale
\b0:
;Gris clair
move.l (a0)+,d1
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
;16 pixels
move.b -4(a0),(a1)
lea 8000-24(a1),a1
;Gris foncé
move.l (a0)+,d1
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
move.l d1,(a1)+
;16 pixels
move.b -4(a0),(a1)
lea 16-8000(a1),a1
dbf d0,\b0
lea -32*8(a0),a0
dbf d2,\rep
rts
depuis le dernier test de fps, j'arrive à 60 fps, ce que je voulais, de plus je suis motivé pour bosser sur les autres fonctions. 
)
Un phénomène bizarre apparait mais logique, avec le scrolling je ne suis jamais à 60 fps, c'est une moyenne, je peut aller de 78 fps à 58 fps et quand une zone est fixe je suis toujours à 63 fps.
