Cet article est la version française de cet autre que j'ai écrit suite à une demande d'aide dans le forum System.cfg forum. Je me suis dit que c'était le moment de mettre à plat mes notes, même si du coup cela cassait un peu la progression des articles en français sur l'affichage.
Cela donne un article un peu plus austère que d'habitude, et un peu plus dense.
Pour commencer, le processeur vidéo du VG5000µ est un EF9345. On peut y accéder de deux façons, soit en discutant directement, soit à travers la RAM lorsqu'on utilise le BASIC embarqué dans la machine. La manière directe est plus puissante, la seconde est plus simple.
Le signal de début d'affichage (Blank Start) du processeur vidéo est connecté à la broche d'interruption du Z80. Cela provoque une interruption IRQ qui, dans le mode dans lequel le BASIC initialise le Z80, fait un appel …
Human Resource Machine est un jeu de Tomorrow Corporation de type résolution de défi. Ces défis se présentent tous sous la même formes : une série de chiffres et/ou lettres à transformer en une autre série de chiffres et/ou lettres, en fonction de directives.
Et pour cela, le joueur a à sa disposition une série de commandes. Au début, très peu, leur nombre s'étoffe au fur et à mesure des 42 niveaux de la ligne principale. Ces commandes sont exécutées par l'avatar du joueur, qui va courir d'un bout à l'autre d'une pièce pour prendre des données, les transformer, les ajoutes, les comparer, les stocker...
C'est ici que cela m'intéresse dans le cadre de Triceraprog. Le personnage que contrôle le joueur simule le fonctionnement d'un ordinateur (en parti). Le joueur au fur et à mesure de la résolution des puzzle apprend « tout simplement » un langage d'assemblage.
La dernière fois, j'avais présenté le début d'une idée pour accéder à des pixels « basse définition » sur le VG5000µ en se servant de caractères semi-graphiques.
Avant de continuer sur l'idée, je me demandais ce que donnerais, sans trop de traitement, une image de synthèse en niveau de gris avec une telle technique.
Afin de transformer cette image en niveaux de gris vers du noir et blanc, je fais appel à une technique appelée « Dithering » ou « tramage » en français. Il s'agit de transformer le niveau de lumière en série de points plus ou moins dense.
Plus la résolution est dense, plus le résultat est bon. Forcément, en basse résolution semi-graphique, il ne faut pas s'attendre à des merveilles.
Voici donc deux couples d'images. En premier le rendu en niveau de gris d'une image de synthèse assez simple. Puis un rendu avec du tramage. Il existe de nombreuses techniques de tramages, et …
Après une première campagne Kickstarter manquée, Giacomo M. Vernoni n'a pas baissé les bras et lancé une nouvelle campagne pour l'édition d'un livre entièrement consacré au VIC-20 de Commodore.
Le VIC-20, c'est un peu le grand frêre du beaucoup plus connu Commodore 64, un grand frêre aux capacités bien plus limitées. Mais c'est avant tout pour moi le premier de mes ordinateurs. Pas le premier que j'ai utilisé, ni celui sur lequel j'ai commencé la programmation, mais le premier qui était vraiment à moi.
Alors forcément, la promesse d'un livre consacré à la machine m'a fait de l'oeil, et j'ai embarqué dans ce projet. Quelques mois après, je peux parcourir ce livre compact mais très fourni en détails et illustrations. C'est une très belle édition et je félicite son auteur pour le boulot accompli. Le livre respire le travail bien fait mêlé à la passion.
Lorsque l'on regarde de près la structure des caractères semi-graphiques du VG5000µ, on voit qu'elle a été réfléchie pour être facile à manipuler. Voici quelques observations :
les caractères sont divisés en deux plages, l'une numérotée de 0 à 63, l'autre de 64 à 127.
si on prend un caractère de la première plage, contenant les caractères « quadrillés » et que l'on ajoute 64 à son numéro, on obtient le même caractère en format « plein »
de manière similaire, si on soustrait 64 au numéro d'un caractère plein, on obtient sa forme quadrillée.
Le caractère 127, par exemple, est le caractère complètement rempli. Le caractère 127 - 64, c'est-à-dire 63, est le caractère rempli, quadrillé.
Une observation supplémentaire est plus visible si l'on réarrange les blocs de chaque caractère semi-graphique sur une seule ligne. Pour cela, je prends les deux blocs du haut, puis j'y ajoute les deux blocs du milieu, et enfin les …