BlixTerm apporte une vidéo YouTube à pleine vitesse au Commodore PET

Si vous avez déjà utilisé un ordinateur personnel de la fin des années 1970 ou du début des années 1980, vous connaissez sans aucun doute la lenteur de leurs interfaces utilisateur. Même la liste du contenu d’un programme BASIC à partir de la RAM pouvait prendre plusieurs secondes, l’écran mettant à jour une ligne à la fois. Les jeux vidéo étaient complètement optimisés pour la vitesse, mais ne pouvaient encore gérer que quelques objets se déplaçant lentement en même temps. Il est clair qu’il serait absolument impossible de lire quoi que ce soit ressemblant à de la vidéo en plein écran sur du matériel de cette époque – du moins c’est ce que vous pourriez penser.

En réalité, [Thorbjörn Jemander] a réussi à persuader un Commodore PET de lire des vidéos YouTube à une vitesse tout à fait raisonnable de 30 images par seconde. Il décrit le processus de conception du matériel et du logiciel « BlixTerm » dans sa vidéo (intégrée ci-dessous), ainsi que de nombreuses informations utiles sur la façon de pousser les systèmes numériques à leurs limites absolues.

Une vidéo d'une voiture à la dérive, rendue par un écran Commodore PETNaturellement, le PET a besoin d’un peu d’aide du matériel moderne, dans ce cas un Raspberry Pi Zero 2 W connecté au port d’extension « User ». Le Pi se connecte à YouTube via WiFi et charge la vidéo demandée, puis la convertit en un flux de niveaux de gris 640 × 200 et transforme chaque image en une grille de caractères 80 × 25, en utilisant ceux de la ROM du PET qui ressemblent le plus au motif nécessaire.

Bien qu’il ait fallu pas mal d’efforts pour extraire suffisamment de performances du Pi pour faire tout cela en temps réel, le plus délicat était d’obtenir assez rapidement le flux de caractères résultant dans la mémoire vidéo du PET. Pour faire ça, [Thorbjörn] a conçu une carte d’interface spéciale avec 2 Ko de SRAM à double port, qui permettait au Pi de stocker ses images vidéo dès qu’elles étaient prêtes d’un côté, et au PET de les charger à son rythme de l’autre côté. Avec seulement seize microsecondes disponibles pour traiter chaque octet, le processeur du PET ne peut exécuter que quatre ou cinq instructions de code machine ; à peine assez pour charger et stocker un seul caractère et passer à l’adresse mémoire suivante.

Le résultat final, comme vous pouvez le voir dans la vidéo, est vraiment impressionnant. Même dans les limites du jeu de caractères Commodore, l’image résultante est clairement reconnaissable, tandis que la fréquence d’images semble défier les limites du matériel.

Si vous êtes un aficionado de Commodore et que vous vous demandez ce qu’est cet étrange modèle PET 600, [Thorbjörn] fait une vidéo à ce sujet aussi; c’est un 8296 rebadgé destiné au marché suédois. Nous avons déjà vu un projet visant à générer une vidéo en direct sur le PET, bien qu’à une fréquence d’images beaucoup plus faible. Merci pour le conseil, [Keith Olson]!