# Grixel - Retro Tools

>C'est une application de création de structures bitmap destinées à la programmation des ordinateurs Atari 8-bit.
Le programme suppose que l'utilisateur sait ce qu'il fait, donc il ne valide pas les paramètres qui n'ont pas de sens.
Nous pouvons créer des structures d'un seul écran ou plus grandes. La largeur sera toujours ajustée à un multiple d'un octet de données.
Nous pouvons créer en HiRes ou LoRes avec une hauteur de pixel simple ou double dans les lignes d'affichage.
Le programme permet la colorisation via le système de sprites d'Atari (uniquement les joueurs, les missiles ne sont pas encore inclus).
Il est possible de changer la couleur de n'importe quel registre via une interruption DLI. Le DLI prend également en charge la modification de la largeur des sprites.
Le programme gère plusieurs projets à la fois.

---

##### # Projet
>
>Un projet peut être créé/chargé depuis le menu ou la barre de sélection :
![](Assets/Image/fr-FR/grixel_1.png)
`Nom du projet` est informatif afin que l'utilisateur ne s'y perde pas.
`Système TV` détermine quelle palette de couleurs nous allons utiliser.
`Mode Pixel` détermine le mode pour Antic.
`Largeur` pour HiRes est un multiple de 8, et pour LoRes c'est un multiple de 4.
`Hauteur` est "arbitraire".

---

##### # Éditeur

>1. Partie gauche, sélection, palette et outils :
![](Assets/Image/fr-FR/grixel_2.png)
`Sélection` indique quel registre est assigné aux boutons de la souris.
`Palette` contient les registres avec lesquels nous dessinons sur l'image. Un clic de souris assigne le registre au champ `Sélection` approprié. Un double-clic ouvre la sélection de couleur qui sera assignée au registre comme couleur de départ (à partir de la ligne supérieure de l'image). Les registres BG (fond), PF1, PF2 correspondent aux données graphiques, tandis que PM0, PM1, PM2 et PM3 sont des sprites. PM01 est la couleur résultant de la superposition de PM0 et PM1, et de même PM23 pour PM2 et PM3. Un changement de couleur de sprite se fait toujours par paire. Les petits boutons 1, 2 et 4 sous un sprite spécifique indiquent sa largeur de départ.
`Outils` est un ensemble d'outils d'assistance au dessin :
 => Crayon, dessin pixel par pixel, nous pouvons augmenter l'épaisseur et la forme du crayon.
 => Ligne, tracer des lignes, nous commençons en appuyant sur le bouton de la souris et nous terminons en le relâchant. Nous pouvons augmenter l'épaisseur de la ligne et la forme des extrémités.
 => Remplissage, nous remplissons une zone (pas de couleur mais de registre) en choisissant un motif. La couleur blanche sur le motif correspond au Clic Gauche (Bouton Gauche de la Souris) et la noire au Clic Droit.
 => Forme, nous dessinons l'une des trois formes : carré, cercle ou ellipse. Nous pouvons choisir trois variantes : cadre uniquement (couleur du Clic Gauche), remplissage uniquement (Clic Gauche) ou cadre avec remplissage (Clic Gauche, Clic Droit).
 => Texte, nous pouvons insérer du texte depuis le champ de contenu, choisir n'importe quelle police système et taille. La couleur sera sélectionnée en fonction du bouton de couleur utilisé. En maintenant le bouton enfoncé, nous pouvons ajuster sa position et confirmer en le relâchant.
 => Sélection, nous pouvons le déplacer et le copier. Nous confirmons en cliquant en dehors de la zone de sélection ou en appuyant sur "Entrée".

---

##### # Fenêtre de sélection de couleur
>
> 1. Couleur simple.
![](Assets/Image/fr-FR/grixel_3.png)
Ici nous choisissons une couleur simple, indiquée par le marqueur dans le coin inférieur gauche de la fenêtre. La sélection s'effectue avec le bouton gauche de la souris.
> 2. Couleur des sprites.
![](Assets/Image/fr-FR/grixel_4.png)
Ici nous choisissons les couleurs pour le sprite 0, 1 ou 2,3. 0 ou 2 sont sélectionnés avec le bouton gauche de la souris et 1 ou 3 avec le droit. La couleur MIX est mise à jour en temps réel.

---

##### # Calques
>
>Le programme prend en charge les calques.
![](Assets/Image/fr-FR/grixel_5.png)
Nous dessinons sur le calque actif. Nous pouvons les ajouter, les supprimer, les déplacer et les fusionner.
Vous pouvez utiliser le calque de référence. Il sera visible comme arrière-plan de l'image. Il se trouve dans la partie inférieure du panneau des calques. Sa visibilité peut être activée ou désactivée avec la barre d'espace.

---

##### # Barres de contrôle d'image
>
>![](Assets/Image/fr-FR/grixel_6.png)

1. Barre DLI montre les changements de couleur pour le registre sélectionné avec le Clic Gauche. Pour changer la couleur, cliquez avec le bouton gauche de la souris sur cette barre à l'endroit souhaité. La fenêtre de sélection de couleur s'ouvrira. En partant du haut, la première couleur provient des paramètres de départ sur le côté gauche de la fenêtre dans l'objet "Palette".
Si nous voulons modifier la plage de couleurs, déplacer son début vers une autre ligne, pointez le curseur sur la barre dans cette plage et utilisez la molette de la souris. Cela s'applique exclusivement aux débuts des plages.
Si nous voulons supprimer une plage de changement de couleur, cliquez dessus avec le bouton central de la souris.
Si nous voulons modifier la couleur de la plage, faites un clic droit sur cette plage.
2. Barre de largeur montre la largeur des registres de sprites appariés, c'est-à-dire PM0 et PM1 ou PM2 et PM3. Naturellement, uniquement lorsque l'un d'eux est assigné au Clic Gauche. La barre est conçue de manière à comporter trois lignes verticales pour un registre : la première verte signifie que dans cette ligne d'image le sprite aura une largeur simple, la deuxième jaune signifie une largeur double, et la troisième rouge signifie une largeur quadruple. Pour changer la largeur, cliquez sur cette barre pour le registre respectif, et la largeur changera de manière cyclique selon la séquence 1,2,4,1,2... etc. Ici, n'oubliez pas que le changement affecte toute la hauteur restante à partir de la ligne cliquée.
3. Barre de validation. En dessinant avec des registres de sprites, nous devons strictement respecter les règles régissant l'affichage des sprites sur Atari. Si nous les violons, une ligne horizontale aux couleurs rouge et/ou jaune sera dessinée sur l'image dans la ligne où l'erreur se produit. Cette ligne fait 4 pixels de large, un pour chaque registre de sprite. Si un pixel est rouge, cela signifie que ce registre a dépassé les règles dans cette ligne. Une telle ligne peut être sélectionnée en cliquant sur cette barre pour faciliter la recherche du problème.

---

##### # Règles pour les sprites

1. Avec une largeur simple, la largeur du sprite est de 8 pixels LoRes. Cela signifie que les pixels extrêmes pour un registre de sprite donné ne peuvent pas être séparés de plus de 8 pixels dans une ligne d'image. Dans chaque ligne d'image suivante, la règle est naturellement la même mais sa position d'utilisation peut varier. Le code d'interruption DLI approprié sera ajouté lors de l'exportation.
2. Avec une largeur double, le pixel du sprite fait 2 pixels LoRes de large. Lors du dessin, vous devez en tenir compte car un seul pixel générera toujours une erreur. Ici aussi, nous avons donc 8 pixels de sprite, mais ils ont une largeur double, vous permettant de couvrir 16 pixels LoRes sur l'image.
3. Avec une largeur quadruple, le pixel du sprite fait 4 pixels LoRes de large, et vous pouvez couvrir 32 pixels LoRes. N'oubliez pas la cohérence du pixel du sprite.
4. C'est légèrement différent en HiRes car les pixels de données sont plus petits que le pixel du sprite. Dessiner avec un registre normal fait un petit pixel HiRes, mais le sprite utilise un pixel standard LoRes. Le reste des règles reste inchangé.

---

##### # HiRes
>
>Contrairement au LoRes où l'on dessine avec tous les registres réguliers, en HiRes on ne dessine qu'avec PF1 (teinte uniquement) et PF2 (couleur et teinte). La sélection d'une couleur pour les deux registres définit la couleur dans les deux registres. Cependant, nous devons sélectionner la luminosité individuellement.

---

##### # Export
>
>Si l'image tient sur un écran d'Atari, l'export contiendra le code complet pour lancer et afficher l'image. Dans le cas contraire, il générera des données brutes.
