| ★ CODING ★ Apprendre pas à pas la programmation en assembleur Z80 ★ Scrollings en folie! ★ |
| Introduction à la série d'articles sur les scrollings |
|
; à faire en BASIC |

Et là, on remarque rapidement deux choses :
- Les octets "libres" non affichés, sur une longueur de 24 caractères (soit 48 octets de long)
- Un trait bleu en bas de l'image matérialisant le rebouclage de la ligne de bloc
Quézaquo le rebouclage de ligne de bloc?
Comme vous le voyez sur la capture, c'est l'endroit le plus PENIBLE de la mémoire affichée car à cet endroit, le CRTC ne se contente pas d'incrémenter l'adresse physique. Son compteur interne ne peut pas dépasser 2047. L'adresse passe donc de #C7FF à #C000. Ce n'est pas grand chose à gérer un rebouclage de bloc, mais si on doit le faire à chaque octet affiché, ça fini par devenir très coûteux en CPU!
Le trait rouge pointillé reste bien aligné, on ne change pas de ligne de bloc lors de l'affichage d'une ligne graphique.
Quand on utilise comme nous jusqu'à présent un écran fixe, ON S'EN FOUT! Mais dans le cas d'un scrolling hard, ce point de rupture va rapidement venir dans la zone visible! Cette animation va parcourir les 1024 positions possibles de scrolling d'un CPC de base. (Modifications du registre 12 et 13 du CRTC)

Avec un écran reformaté à 64 octets de large
De nombreux jeux vidéos utilisent un écran moins large avec 64 octets seulement. C'est à la fois hérité des speccy-porcs et aussi une technique pour optimiser les changements de ligne. Si on n'utilise pas
de scrolling hard, on voit que les changements de poids forts (traits verticaux rouges) sont TOUS sur le côté droit de l'écran, toutes les 4 lignes.
On voit aussi que le rebouclage des lignes de bloc se passe à la toute fin de la zone visible (trait bleu) et qu'il n'y a pas d'octets de la page graphique, non visibles.

Ainsi, afficher un sprite peut se faire avec des incréments simples qui sont deux fois plus rapides que les incréments 16 bits.
Cependant, dès lors qu'on scrolle l'écran horizontalement (verticalement ça passe ^_^), toutes ces optimisations ne peuvent plus être réalisées, comme on le voit sur la capture avec un décalage arbitraire.

Tout au plus on pourra déterminer facilement si le sprite qu'on va afficher se trouve sur une zone de chevauchement ou non (je ne sais pas quand on parlera de ce genre d'optimisations, mais c'est pas pour tout de suite...)
Les bases étant posées, nous allons pouvoir commencer à faire scroller notre écran en tenant compte de toutes les contraintes évoquées. Rendez-vous dans l'article sur [mon premier scrolling hard]
|
Page créée en 388 millisecondes et consultée 11 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. |