Pour ma carte de vœux professionnelle, je voulais faire un truc créatif. Quelque chose de plus jouasse que mon billet. Au départ, je comptait faire un chouette livret papier. Faute de temps, je me suis rabattu sur un hommage graphique à un ordinateur sur lequel j'ai beaucoup appris, mais aussi à sa demoscene (communauté underground artistique). Et non Thomas, cela n'a rien à voir avec un quelconque effet Apple.

En fait, cette page a été créée[1] après avoir vu l'effet Waves sur l'excellent site Chiptune. Site qui rend hommage à l'un des ordinateurs familiaux malheureusement disparus depuis plus de dix ans : L'Amiga.

L'Amiga de Commodore m'a donné mes premiers gros frissons de programmation. Celui qui m'a fait sortir du biberon Basic, et aller beaucoup plus loin dans l'apprentissage que le Pascal. Entre la gestion des bibliothèques systèmes (incroyablement flexibles), celui du matériel... mais aussi la fascination pour sa demoscène extrêmement active et créative.
L'Amiga 500 eut une intense activité logicielle pendant... dix ans ! C'est le temps qu'il a fallut aux coders pour faire définitivement le tour complet de la machine de base (512Ko de mémoire, processeur 7,14MHz et une disquette 800Ko) Un peu comme si l'an dernier on sortait encore des jeux pour la Playstation One avec des nouveautés graphiques et sonores...

Cet ordinateur avait une spécificité[2], il avait un chipset de coprocesseurs (une suite de composants particuliers), principalement dédiés à l'accélération graphique. Ces puces portaient des prénoms féminins, ce qui rendait non seulement l'Amiga (en Espagnol : “petite amie”) encore plus sexy, mais aussi plus ... humain. Un de ces composants était le copper. Il ne possédait que 3 instructions et avait comme rythme de travail le balayage de l'écran. Son rôle consistait à écrire à un moment très précis dans une pseudo adresse mémoire, celle qui commandait l'affichage des sprites, des couleurs, des plans graphiques, des enveloppes sonores et même du multitâche (qui était un système réellement partagé, au lieu des systèmes préemptifs qui dominent encore).

Le copper avait un fonctionnement incroyablement frustre et très lent, mais permettait de gérer le multi-écran. Revenez sur chiptune.com, saisissez la barre blanche en haut et faites-la descendre... L'Amiga était le premier ordinateur en dessous de 50 000 $ à disposer d'un vrai système de multi-écrans virtuels. Ce copper permettait aussi d'obtenir largement plus de couleurs que ne le permettait théoriquement le plan graphique : au lieu d'en afficher que 32, on, pouvait monter à plus de 4000 sur un ordinateur qui datait de 1985 ! Après avoir fait un peu d'assembleur conventionnel avec le MC68000, le jeu était de créer des arc-en-ciels ou des barres horizontales qui rebondissaient en bidouillant la copperlist. Ça coûtait rien au processeur, qui pouvait faire travailler d'autres programmes derrière. Très chicos de faire du traitement de texte, et d'avoir un arc-en-ciel de couleur, face aux copains sur Amstrad CPC ou les richards sur PC à affichage CGA (4 couleurs... les PC étaient horriblement chers et pitoyables à l'époque).

C'est justement le fonctionnement du copper qui est émulé ici. D'abord par l'effet de dégradé de couleur vertical, ensuite par le changement de plan d'affichage pour chaque ligne. C'est ce qui fait faire les oscillations du reflet, tout en n'utilisant qu'une seule image statique.

Le problème, c'est que la technique d'émulation que j'utilise ici passe par de la manipulation DOM, et qu'elle rudoie violemment toute machine qui a plus de 3 ans. Si votre machine est très rapide, l'effet semble fluide. Mais sur un Amiga d'origine, c'est même pas imaginable.

Pour aller plus loin sur les démos Amiga :

L'Amiga Demoscene Archive propose pas mal de screenshots et de vidéos capturées dans une qualité acceptable. Le forum Pouët regroupe beaucoup plus de plateformes. Et on retrouve l'incroyable State of the Art (musique vidéo et code en 800Ko !) qui arrive à saturer le lecteur Dailymotion !

Coucous à Login (ex Amiga Dream) et à Temps Réel par la même occasion...


/*Commentaires*/

↑ [1] cette page a été créée : Entièrement codée en moins de 4 heures, sans même regarder le source de l'original. “Cryptage” du code non compris, qui m'a fait perdre une partie de l'effet pour MSIE6. Le code source intégralement commenté est disponible en ligne pour les amis, je me suis bien éclaté à l'obfusquer. J'allais me lancer dans l'installation d'une musique de fond, mais il était très tard, donc j'ai tiré un trait sur une vrai injection Ajax.

↑ [2] cet ordinateur avait une spécificité : Avant qu'on ne relance le troll (la guéguerre entre les deux plateformes était un classique), la demoscene de l'Atari n'était pas aussi mieux lotie sur leur ordinateur, elle avait plus de mérite à reproduire les mêmes effets.