| ★ CODING ★ Apprendre pas à pas la programmation en assembleur Z80 par Roudoudou ★ Fusion de quelques briques élémentaires pour créer un petit jeu ★ |
| Color cycling avancé |
Color cycling et utilisation de la mémoire étendue![]() L'Amstrad CPC n'est capable d'afficher que les données présentes dans la mémoire centrale. Il ne sait pas afficher ce qui est dans la mémoire étendue. En conséquence de quoi il peut être intéressant d'exécuter du code depuis la mémoire étendue, tandis que l'intégralité de la mémoire centrale est remplie par des graphismes. L'effet du jour (sur proposition discord de MacDeath) nécessite 16 images de 16K
Comme je vous l'ai dit, toute donnée qui doit être affichée doit être en mémoire centrale. La copie serait trop lente, il faut ruser. Comme le motif est noir et blanc, on peut diviser le nombre d'images nécessaires par deux et passer de 16 à 8 en inversant les couleurs. Il suffit d'afficher normalement les 8 premières images avec la palette à Noir et Blanc, puis de réafficher les mêmes images avec la palette à Blanc et Noir.
Il nous reste quand même deux fois trop d'images pour notre mémoire centrale! La résolution choisie est le mode 1 qui n'est pas monochrome mais une résolution à 4 couleurs. On peut donc fusionner nos images et jouer à nouveau avec les couleurs. Les couleurs de l'image 0 seront dans les bits du bas, les couleurs de l'image 1 seront dans les bits du haut. L'exploitation de notre palette change : Et pour l'inversion au bout de 8 affichages? Rien de plus simple, il suffit toujours de permuter le noir et le blanc.
ENFIN! Nous n'avons plus que 4 images de 16K qui vont rentrer pile dans la mémoire centrale. Reste à changer la résolution écran via les registres 1,2,6 et 7 du CRTC. Dans cet exemple, je les précharge dans le snapshot et le chargement des 64K en mémoire centrale est éludé. Si vous voulez voir comment il est possible de charger l'ensemble de la mémoire centrale de façon conventionnelle (sans utiliser la facilité des snapshots), vous pouvez consulter [ cet article ]. L'idée ici était de prouver qu'on peut faire des choses spectaculaires avec "pas grand chose" :) Il vous faudra télécharger le [ Pack de 4 images ] CPC pour assembler ce source buildsna |
|
Page créée en 132 millisecondes et consultée 28 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. |