les écras home et IO, on peut les utiliser ?
pour les avoir, je suppose qu'on fait un DispHome (ou un truc equivalent), et qu'on recupere l'adresse de qqc ?
Empiler ou passer en paramètre prend du temps supplémentaire aussi.
un lea x(an),am prend 8 cycles.
un move.l d(pc),an en prend 16...
un pea d(pc) 16

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
sans parler de les dépiler après bien sûr si on passe pas par registre

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
J'ai calculé, Kevin, et il me semble que c'est un poil plus rapide et plus court de n'avoir qu'un gros buffe qui contient deux plans de 3840 octets chacun :
Si on passe l'adresse de chaque plan à la fonction : on a 3 registres d'adresses utilisés (adresse du sprite + adresse de chaque plan), donc on aura au moins un regsitre à "clobberer" (je ne connais pas le terme français), ce qui prend 24 cycles d'horloge. Ensuite, quand on calculera l'offset, on aura deux registres à incrémenter au lieu d'un (donc ça rajoute 8 cycles).
Après pour ce qui est de la boucle d'affichage, on gagne quelques petits cycles (4) parce qu'on fait un or.l dn,(a1) au lieu d'un or.l dn,3840(a0), mais on les perd tout de suite après quand il s'agit de pointer sur la ligne suivante de l'écran : un seul lea.l 30(a0),a0 suffit dans le cas de figure où on utilise un seul buffer, tandis qu'il en faut 2 (un pour chaque plan) dans l'autre cas. Cette instruction prend 8 cycles.
Donc au total, on perd 32 cycles en dehors de la boucle + 4 cycles par ligne de sprite (sauf si on déroule un peu la boucle : dans ce cas, on perd moins), donc pour un sprite 16x16 (la taille la plus fréquente) : 32+4*16 = 96 cycles.
Ce n'est pas très important, mais ça fait une petite différence quand même.
si Kevin, quand tu dois dessiner massivement dans les buffers, et que quasiment tout ce qu'il y a dans les boucles critiques sert a modifier les pointeurs sur les plans, tu peut gagner beaucoup en ayant les deux plans colles l'un a l'autre en mem.
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
Et puis les fonctions d'affichage de sprite pourront être plus petites, donc ça compensera légèrement les 30 octets de plus.
trust Le 01/05/2003 à 14:36 beinsur!
apres pour compenser, je peux faire un dbf par 2 au lieu de 4 (il me semble...)
donc le gain c'est 1 Ko en moins minimum!
Et d'ailleurs, si tu traffiques nos routines de gris, il ne faut pas t'étonner que tes routines soient rejetées pour l'intégration à TIGCCLIB (et qu'ExtGraph est choisie à la place, comme prévu depuis le départ de toute façon).
trust Le 02/05/2003 à 18:49 Non! il est tout a fait possible de recuperer les 3840 pour HW1!
je ne voit pas ce qui pose probleme...
Et pour XLib oui je le reconnais, mais theoriquement dans 4 semaines se devrait etre mieux (si ce n'est pas reporter pour 1 ans..)
Il est peut-être possible de les récupèrer dans certains cas, mais ça fait du travail supplémentaire au programmeur, et donc il ne le fera probablement pas. Il est beaucoup plus pratique de les utiliser dans la routine de niveaux de gris.
trust Le 02/05/2003 à 19:04 bof.. je proposerait un sauvescreen personalisé en fonction du hard comme ca plus de probleme
Tu n'as pas encore plus compliqué? Le code de démarrage est censé être le plus simple et compact possible. Il n'est pas censé dépendre de l'utilisation ou non des niveaux de gris, de la version matérielle, ... Et puis, la solution que tu proposes va foirer à coup sûr si un programme utilise en partie des niveaux de gris, et en partie du blanc&noir (comme par exemple Backgammon). Donc c'est non.
trust Le 02/05/2003 à 19:30 ce sera oui... et puis je vois pas pourquoi revenir en mode b&W.. il suffit de l'emuler avec XLib...
trust Le 02/05/2003 à 19:46 bien oui, mais vu que l'equipe tigcc ne veux pas s'adapter aux routines graphique, je vais faire mes modification pour XLib... et ceci parce que vous ne voulez pas change 2/3 lignes de code.
Je respecte votre decision, mais je doti modifier mon code!
Oui, tu dois modifier ton code, pas le nôtre!
trust Le 03/05/2003 à 15:52 Avec le preprocesseur je vais juste faire qqc dans le genre:
#ifdef SAVE_SCREEN
#error [XLib __Xversion__ ] :: Remove #define SAVE_SCREEN.
tout simplement, est-ce que mettre un
#undef SAVE_SCREEN
ne fonctionnerait pas ?
trust Le 03/05/2003 à 16:05 ouai mais faut prevenir quand meme non?
je trouve que c'est plus sympat de prevenir le gas qu'il utilise pas la routine TIGCC et que par consequent si il y a un bug, c'est pas TIGCC qui est responsable, mais la XTeam
Si c'est pour prévenir, un utilise un #warning, pas un #error!
trust Le 03/05/2003 à 17:12 non parce que sinonil sauvegradera 2 fois le lcd ce qui est vraiment pas utile...
donc un error s'impose..
BiHi Le 03/05/2003 à 17:18 Si tu ne veux pas que ça soit possible d'utiliser SAVE_SCREEN et en même temps prévenir, il y a 2 choix:
#ifdef SAVE_SCREEN
#undef SAVE_SCREEN
#warning "blabla"
#endif
#ifdef SAVE_SCREEN
#error "blabla"
#endif
Le premier désactivera SAVE_SCREEN en prévenant, le 2è demandera à l'utilisateur de le désactiver lui-même...

;)
Il y a aussi_
#ifdef SAVE_SCREEN
#warning "blabla"
#endif
qui est ce qu'il faut faire. Oui, XLib sauvegarde aussi l'écran, mais seulement à l'intérieur de XLib! Rien ne te dit que l'utilisateur n'utilise pas en partie XLib et en partie du blanc&noir standard, ou des niveaux de gris de TIGCCLIB (8 niveaux de gris par exemple)!