| ★ CODING ★ Apprendre pas à pas la programmation en assembleur Z80 par Roudoudou ★ Sprites en folie! ★ |
| Le double buffer (en finir avec les glitchs!) |
Le double tampon pour éviter les clignotements et les cisaillementsDans l'article précédent, si notre sprite permettait de conserver le fond, la lenteur de la routine faisait que le balayage vidéo pouvait se produire entre la restitution du fond et le nouvel affichage. Pour illuster le double buffer, voici une animation de la mémoire du jeu Dragon Ninja. On voit dans l'explorateur graphique qu'il utilise deux pages pour l'écran. Une page est affichée tandis que l'autreest en cours de (re)construction. Beaucoup de jeux sur Amstrad utilisent cette technique et on réalise à quel point les programmeurs étaient contraints de faire tenir toutes les données de leur jeu dansla mémoire restante, à savoir 32K seulement! Dragon Ninja
On va adapter le source de notre chouette pour éviter les clignottements. Le principe de base est d'avoir les informations de positionnement pour chaque buffer. Ou de conserver à minima un historiquepour savoir quoi effacer avant de réutiliser l'autre écran. Le changement d'écran se fait via le registre 12 du CRTC (voir [Annexe Hardware - CRTC]) ld bc,#BC00+12 : out (c),c : ld a,#30 : inc b : out (c),a ; écran visible en #C000 Jusqu'à présent, nous n'utilisions que la page #C000-#FFFF pour afficher nos dessins ce qui simplifiait les débordements de page. Comme nous allons utiliser une deuxième page graphique,il nous faut une routine qui passe à la ligne suivante quelle que soit la page utilisée. Réécrivons cette routine. |
|
Page créée en 233 millisecondes et consultée 26 fois L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |