1

-

2

Tant qu'à faire, si tu veux vraiment optimiser pour du 80x80, tu peux carrément afficher 32 pixels puis 32 pixels puis 16 pixels à la fois pour chaque ligne.
Sinon, au lieu de faire ror + swap, tu peux faire un rol, ça t'évitera d'avoir à faire le swap...
Et c'est quoi des bits plans ?
Poste toujours ton code, peut-être que des gens trouveront des optimisations de code...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

-

4

-

5

-

6

Ben ça, ça dépend du shift...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

Bon, je n'ai toujours pas réussi à comprendre le format de sprite que tu utilises sad

lsl.w #2,d2 ; *32*4=*128 add.w d2,d1 ; == *160 (une ligne)
Sinon, pour ta routine, j'ai vu que tu peux optimiser le début :	lsl.w	#5,d1		; *32
	move.w	d1,d2		; Y'

Et puis dans ta boucle, quand tu fais tous les and.w dn,(a2), tu devrais mettre (a2)+, et à la fin mettre un subq, ça irait quand même plus vite et ça prendrait moins de place.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

8

-

9

Oui, c'est bien possible que ce soit plus rapide. En tout cas, c'est plus petit.

Pour ce qui est du shift, les valeurs sont comprises entre 0 et 15, ce qui fait que pour un ror.l ou un lsl.l, les temps d'exécution oscillent entre 8 et 38 cycles (plus de 4 fois plus lent), tes instructions ror/lsl sont présentes 50 fois dans ta boucle, elles représentent environ le tiers de tes instructions, il y a un écart de 50*38-50*8=1500 cycles entre le pire des cas et le meilleur. Ce n'est pas rien, je pense. smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

10

-

11

-

12

bein c du preshifting... ya ca aussi sur titongue
Pour ce qui est du shift, les valeurs sont comprises entre 0 et 15, ce qui fait que pour un ror.l ou un lsl.l, les temps d'exécution oscillent entre 8 et 38 cycles (plus de 4 fois plus lent), tes instructions ror/lsl sont présentes 50 fois dans ta boucle, elles représentent environ le tiers de tes instructions, il y a un écart de 50*38-50*8=1500 cycles entre le pire des cas et le meilleur. Ce n'est pas rien, je pense.

... et quand je disais ca je m'en prenai plein la gueule!

13

-