Tu es sûr que ça ne posera pas de gros problème de gameplay d'être en 320x200 ? Ca risque d'être chaud, surtout quand on voit à quel point bave l'écran des TI... Surtout que tu n'as pas besoin d'une pure résolution (si tu utilises 2x moins de pixels que sur les shots, c'est tjs très lisible...)
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Thor Le 25/10/2003 à 11:03 Préviens nous dés que tu as une beta
Pour ma part je suis volontaire pour les test sur V200 AMS 2.07 :-)
OK, mais je viens de commencer le projet, donc il faut attendre pour la bêta.
Pour l'instant ça avance bien, j'ai réalisé la gestion des fichiers externe contenant les sprites du jeu et les sons, aujourd'hui je vais m'attaquer au fonctions en assembleur de scrolling et d'affichage de sprites dans une zone de 288x238 pixels, en effet j'ai réflechi et il semble qu'une zone de cette taille soit parfaite.
J'ai un petit souci pour réaliser la fonction capable de copier une partie de 240x128 pixels de l'écran virtuel (288x238 pixels) vers les 2 buffers des niveaux de gris (GetPlane (0) et GetPlane (1)).
Dans ma fonction il faut que je réalise une boucle, j'arrive à me placer au début de l'octet qu'il faut mais comment copier une ligne avec les bon pixels dans les autres buffers à 0,0?
Tu dois pouvoir faire ça avec quelques move.l et lsl.l
Plus précisément, tu obtient l'adresse du word du début de la ligne et l'indice du bit qui correspond au pixel (dans le word bien entendu), que tu transformes en un compteur de décalage.
Ensuite, tu lis un long a l'emplacement actuel dans le buffer, et tu lui appliques lsl.l avec le compteur de décalage calculé précedemment. Il ne te reste plus qu'a faire un swap et un move.w (avec postincrement) vers l'emplacement de destination. Tu incrémentes le pointeur de la source de 2 et tu ansi de suite jusqu'à atteindre la fin de la ligne.
EDIT: post croisé
OK, je veux bien que tu aies cette hauteur, mais c'est énorme quand même... (et c'est bien 238, pas 288 comme tu viens d'écrire ?)

« 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
. »
Tiens, j'ai essayé de faire une fonction de scroll adaptée à ta taille de buffer, je te l'envoie par mail et tu me dis si ça marche correctement ou non (je ne l'ai pas testée et je l'ai écrite rapidement, donc il y a très probablement des erreurs, donc teste sur vti).

« 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
. »
Mon écran virtuel fait 288x238 pixels, ça semble énorme comme hauteur mais c'est la seul que j'ai trouvé petit et adapté, il suffit sur TI92+, de 2 écrans pour scroller tout le jeu. Le gros handicap de l'écran de la TI92+ c'est ça hauteur, la longueur est presque parfaite mais la hauteur est très très faible.
BOn j'ai réussit à trouver le nombre de bit à décaler ainsi que l'octet de début de chaque ligne or je suis bloqué, je dois appliqué ta fonction de décalage sur 32 bits 8 fois par ligne et répéter ça 128 fois pour la hauteur.
Or dans ta routine tu met:
lea 36*238(a0),a2
lea 30*128(a1),a3
Et tu créer 2 masques contenu dans d1 et d2.