Commodore 64 - Démos

Il y a quelques années (déjà, gloups :/) Arkaan a fait une remarque comme quoi il était question que je rédige un article digne de ce nom sur les démoscènes. Je doute de pouvoir rédiger un tel document, le sujet est trop vaste. Je vais dédier cet article aux démos C64, cela pourrait faire un bon point de départ.

Ready ?

Commodore 64 Basic V2 - 64K RAM System - 38911 BASIC Bytes free - READY

Le Commodore 64

Brève histoire de la bête

Le Commodore 64 est un micro ordinateur distribué auprès du grand public à partir de 1982. Pour beaucoup, il est l'emblème de la micro-informatique de l'époque. Pour se remettre en situation, c'est deux ans avant le début du projet GNU ou la sortie du Macintosh, et il est loin d'être question de Windows et autres Microsofteries du même acabit. Et il ne sera question de Linux que dans un peu moins de dix ans. Les Unix classiques ont quant à eux à peu un peu plus de dix ans d'histoire, de même que l'Internet, qui avait une allure toute autre que l'idée qu'on s'en fait aujourd'hui (Les BBS, le mail et FTP sont les principales applications, le Web, SSH et autres joyeux protocoles de ce genre ne sont pas envisagés, quant à l'infrastructure, elle est financée entièrement par l'administration américaine pour encore 11 ans).

Le C64 est produit par la société Commodore, qui n'en n'est pas à sa première machine. Il est une évolution du Commodore VIC 20 de 1980. Par ailleurs le Commodore PET est sorti à peu près 5 ans auparavant. Le produit bénificiera d'upgrades matérielles et de composants périphériques optionnels pendant à peu près dix ans. Il restera largement répandu malgré ses évolutions comme le Commodore 128 à cause de, j'ai cru comprendre, son prix abordable par rapport aux autres machines sur le marché.

Spécifications techniques

Le Commodore 64 est équipée d'un processeur 6510 cadencé aux alentours de 1 MHz. Pour référence, un super-calculateur Cray 1S (le genre de matériel utilisé par le CEA à l'époque) utilisait un processeur cadencé à 80 MHz et commençait à être sérieusement dépassé.

À ce processeur est adjoint ce qu'on pourrait appeler un genre de carte accéleratrice graphique. Précisément, la puce VIC-II est un puce génératrice de sprites. Elle permet de décharger le processeur de la tâche consistant à déplacer des images à l'écran. Elle le fait indépendamment des modes d'affichage utilisés pour afficher des images à l'écran.

La machine est également équipée de 64 kio de mémoire vive, dont une partie est utilisée par le BASIC et le Kernal, qui permet de fournir les fonctions de base pour exploiter la machine.

Le son est géré par une puce SID qui permet de produire 3 sons simultanément, sur la base de signaux simples comme une sinusoïde, un signal en dents de scie ou des créneaux. Quelques effets sont également disponibles pour atténuer le son, jouer sur la hauteur de la note, etc....

Plusieurs modes d'affichage graphique sont disponibles. Quand on sait que quel que soit le mode, le nombre de pixels affichés au total à l'écran ne change pas, ça peut paraître bizarre. En fait, par défaut la puce graphique va afficher des caractères. Chaque caractère est contenu dans un bloc de 8×8 pixels. D'un point de vue mémoire, l'affichage graphique est donc géré par blocs. Le Commodore 64 est capable d'afficher 16 couleurs simultanément, mais un bloc ne peut afficher qu'un nombre extrèment restreint de couleur. Selon le mode d'affichage les blocs auront une plus ou moins grande taille et le nombre de couleurs utilisable pour chaque bloc sera plus ou moins élevé. Typiquement, pour afficher une image en haute résolution et réduire les contraintes sur les gros blocs, il est possible de diminuer la taille de ces derniers pour 4×4, mais on sera limité à deux couleurs par bloc au lieu de 4. C'est ce qui rend les images, les scrolls et autres animations en haute résolution aussi impressionnantes sur cette plateforme.

Émulateur de Commodore 64

Logiciels

J'utilise personellement un émulateur VICE, qui permet d'émuler les machines Commodores PET, VIC-20, 64, 128, Plus/4 et CBM-II. Cet émulateur est présent dans la plupart des dépôts de logiciels des diverses distributions GNU/Linux. Par exemple le paquet vice est disponible sous Debian et Ubuntu, j'imagine qu'il doit être possible de le retrouver facilement chez RHEL/Fedora à grand coups de:

yum search vice | grep -i commodore

Archlinux propose le paquet vice dans le dépôt de base, section extra.

Il est probable que j'oublie des ports (est-il bien nécessaire de mentionner le port pour BeOS =°), le dernier que je mentionnerais est le paquet pour Windows. Je n'ai pas eu l'occasion de tester pour voir comment ça marche, mais j'imagine que pas mal de monde aura l'occasion de tester et que ça ne dois pas être bien différent des Unix.

Notez que l'émulateur seul ne fournit que l'émulation matérielle de la machine. Toutefois il manque les ROM qui servent à stocker le système (le fameux Kernal), l'interpréteur de BASIC et un composant pour charger des données à partir d'un volume extérieur.

J'ai eu du mal à me procurer les firmwares, car non libres. Pour éviter qu'ils ne tombent dans l'oubli, une archive est disponible ici.

Pour installer les firmwares, crééez un répertoire .vice dans votre répertoire HOME (si vous êtes sous Windows, il me semble que cette manipulation n'est pas nécessaire, à vérifier dans la doc d'installation de WinVICE). Ensuite désarchivez l'archive dans ce répertoire. En admettant que vous soyez dans le répertoire dans lequel est arrivée l'archive après installation, les commands suivantes devraient faire l'affaire:

mkdir  ~/.vice
mv     vice_firmwares.tar.xz ~/.vice
cd     ~/.vice
tar xf vice_firmwares.tar.xz

Notices techniques

Bien que nombre de personnes ont acheté un Commodore 64 pour les jeux, le manuel utilisateur est accompagné d'une notice technique complète permettant d'apprendre de le langage BASIC embarqué dans la ROM de la machine. Ce manuel était quasiment obligatoire pour tirer pleinement parti de la machine, mais quand on vous vendait un ordinateur, on vous apprenait à programmer. ;-)

Des manuels techniques avancés vous permettaient de tirer parti de toute la puissance de la machine en vous enseignant l'assembleur de 6510.

Petit manuel avant de lancer des démos

Une fois l'émulateur installé, il faut noter deux/trois commandes et manipulations afin de pouvoir en profiter pleinement sans avoir l'impression de bricoler en vain.

Il faut tout d'abord lancer l'émulaterur, soit en trouvant dans les menus l'entrée Commodore 64, soit en lançant le programme x64 éventuellement suivi du nom d'un fichier contenant une image de diskette.

Une fois l'émulateur de Commodore 64 lancé, le chargement d'un diskette de démo se fait en quelques étapes :

Maintenant mesdames et messieurs, enjoy! ;-)

Démos Commodore 64

Le Commodore 64 est probablement la machine qui a provoqué l'âge d'or des démoscènes. Plus de 15000 sont répertoriées sur Pouët.

We are new

We are new

Le groupe Fairlight nous propose une démo fort sympathique dans la veine des démos de la vieille époque avec diverses scènes. Influence des démos modernes oblige (cette démo est de 2010), les transitions sont bien plus travaillées. Il n'y a pas tout à fait de coupure nette (en dehors d'un Please wait... pas vraiment justifié, du changement de diskette et du générique de fin).

Cette démo a été créé en l'honneur de trois membres du groupe décédés. Il y a indénablement une leçon à tirer de cette démo. Voyez le générique de fin. :<

Edge of disgrace

Animation de plasma dans un cadre connexe, mais non concave.

Cette démo du groupe Booze est intéressante dans le sens qu'on (croit qu'on) voit les transitions entre les divers modes d'affichage. Bien sur l'art de la démoscène n'interdit pas de tricher, mais sur ces matériels, on fait des trucs impressionnants ou on ne fait pas grand chose. ;-)

Desert dream & Second reality

Ces deux démoscènes sont des reprises de démos de référence.

Tête d'extraterrestre dans le sable à côté d'une bouteille de Fanta.

Desert dream de Kefrens pour Amiga a bénéficié d'une adaptation extraordinaire. Si on a vu l'original de 1993 de loin, on peut la confondre avec cette reprise de 2007. Merci aux groupes Chorus et Resource pour ce voyage à travers les âges (notez le pluriel ;-).

Second reality

Second Reality est la démo de 1992 déjà mentionnée par Arkaan dans son article. Comme dit, elle a lancé la mode des démos PC, à une époque où les machines dominantes étaient les C64 et les Amigas. Cette reprise datant de 1997 est chronologiquement le plus ancien exemple de port de démo d'une plateforme à une autre que je connaisse, peut-être d'autres m'ont échappé, je ne suis pas spécialiste de la question, contrairement aux apparences.

Post Scriptum

Corrections

22 février 2014, corrections d'une faute de frappe empêchant le téléchargement de We Are New.

Vice ne semble pas démarrer sur Debian 7 amd64 avec carte graphique nVidia sous pilote legacy 304.XX

Je n'ai pas encore résolu le problème. La piste que je suis est de réinstaller le paquet en architecture i386 mais pour l'instant je suis arrêté par des dépendances et des conflits au niveau des bibliothèques OpenGL.

Attention : La gestion des multi-architectures est relativement nouvelle, je me suis servi des commandes suivantes pour essayer de corriger le problème. Ne les exécutez pas à moins de savoir ce que vous faites.

dpkg --add-architecture=i386
apt-get install vice:i386
# La commande pourrait indiquer des dépendances non satisfaites, ayant trait
# entre autres à l'installation des pilotes en mode 32 bits.

Notes historiques à propos de la micro

Notez que les machines Sinclair ZX80 et Acorn Computer sont un peu plus anciennes (début des années 70), mais sont les synonymes de l'entrée de la micro informatique dans les foyers en Grande-Bretagne. En parlant de Sinclair et Acorn, je ne peux que vous encourager à regarder le film Micro Men qui relate, de manière romancée, la création desdites entreprises et leurs rivalités.

Les noms d'Acorn et de Sinclair ne sont peut-être pas parlant, mais si on prend un processeur ARM par exemple (le microprocesseur des ordinophones, à défaut de meilleure appellation), la signification originale en est Acorn RISC Machine.

Sources

C=

[ICO]NameLast modifiedSize
[PARENTDIR]Parent Directory  -
[   ]2ndReality_S1.D642018-12-05 21:29 171K
[   ]2ndReality_S2.D642018-12-05 21:29 171K
[   ]EdgeOfDisgrace_0.d642018-12-05 21:24 171K
[   ]EdgeOfDisgrace_1a.d642018-12-05 21:24 171K
[   ]EdgeOfDisgrace_1b.d642018-12-05 21:24 171K
[IMG]c64_desert_dream.png2018-12-05 21:04 26K
[IMG]c64_edge_of_disgrace.png2018-12-05 21:04 14K
[IMG]c64_ready.png2018-12-05 21:04 2.3K
[IMG]c64_second_reality.png2018-12-05 21:04 7.2K
[IMG]c64_we_are_new.png2018-12-05 21:04 3.4K
[TXT]commodore64.txt2018-12-05 21:12 371K
[IMG]commodore_blue_red.png2018-12-05 21:30 7.5K
[   ]desert_dream_0.d642018-12-05 21:25 171K
[   ]desert_dream_1.d642018-12-05 21:25 171K
[   ]desert_dream_2.d642018-12-05 21:25 171K
[   ]vice_firmwares.tar.xz2018-12-05 21:08 137K
[   ]we_are_new_1.d642018-12-05 21:23 171K
[   ]we_are_new_2.d642018-12-05 21:23 171K

Cet article est paru en premier sur dismorphia.info/~tokamak/ et était daté du dimanche 26 janvier 2014.