Encoder proprement un programme pour Commodore 64 avec le lecteur original en USB

Dans mes essais avec les programmes sur vinyle (et parfois DVD, cassettes ou CD), un ordinateur précis m’a souvent bloqué : le Commodore 64. Une des raisons vient de la façon de transférer l’audio vers l’ordinateur : Commodore avait choisi une voie atypique.

Dans une bonne partie des ordinosaures, la conversion s’effectuait dans l’ordinateur lui-même : il était possible de brancher une platine sur l’entrée audio de l’ordinateur pour directement décoder l’audio. Avec le Commodore 64, ce n’est pas le cas : il n’a pas d’entrée audio, mais une prise numérique pour son propre lecteur de cassettes. Et c’est le lecteur qui effectue la conversion de l’audio analogique vers le numérique. A l’époque, ce choix rendait les manipulations compliquées : il fallair d’abord enregistrer le vinyle sur une cassette, avant de lire la cassette dans le lecteur propriétaire de Commodore.

En 2024, en théorie, on peut faire plus simple : enregistrer le contenu du vinyle et le traiter logiciellement pour extraire le code. Sauf que ça fonctionne mal. J’ai parlé d’un DVD qui m’a posé des soucis (j’en reparle plus bas), tout comme un vinyle, une cassette, un MiniDisc (je n’ai jamais réussi), un autre vinyle. J’ai aussi deux brouillons d’articles avec des programmes pour Commodore 64 parce que la méthode classique ne fonctionne pas, même avec des dizaines d’essais.

Le problème principal, c’est que le filtrage logiciel ne fonctionne pas nécessairement aussi bien qu’une conversion matérielle dans le lecteur. Mais il y a une solution, qui demande du matériel. Premièrement, il faut un lecteur de Commodore 64, le Datasette, dans sa version 1530 (avec une prise plate). La page Wikipedia explique bien le fonctionnement du lecteur, mais en gros il va effectuer la conversion de l’analogique vers le numérique pour le Commodore 64.

Mon lecteur Commodore 64 et une cassette

Deuxièmement, il faut un adaptateur USB pour relier ce lecteur à un PC moderne. Et je dis bien PC : l’adaptateur que j’ai (le 1530USB) ne fonctionne pas sous macOS. C’est une petit boîtier USB qui va permettre de générer de l’audio à partir de ce que le lecteur Commodore fournit, pour une conversion logicielle.

L’adaptateur USB


Il se glisse dans la prise propriétaire, avec un détrompeur

Troisièmement, il faut aussi un magnétophone quelconque avec une entrée. J’ai essayé d’enregistrer directement sur le Datasette, sans succès. Enfin, il faut évidemment une cassette audio. Tout ça n’est pas gratuit, il faut compter entre 10 et 30 € pour un Datasette en bon état (à la grosse louche), quelques euros pour un magnétophones et une cassette (2 € sur leboncoin pour moi) et 30 £ pour l’adaptateur USB (le plus cher), soit environ 35 €.

Un magnétophone trouvé sur leboncoin

Un petit exemple

Je vais prendre l’exemple du DVD de Welle: Erdball, qui m’avait bloqué après des dizaines d’essais. J’ai commencé par simplement lire le DVD avec VLC en forçant un peu le volume (200 %) et en enregistrant le tout sur une cassette audio avec le magnétophone (avec un simple câble jack depuis mon Mac mini).

Ensuite, j’ai mis la cassette dans le Datasette, branché le tout en USB à une machine virtuelle sous Windows 10 et relu la cassette audio en enregistrant avec Audacity. J’ai sauvé le tout en WAV (mono, 48 kHz). Ces deux étapes peuvent être un peu fastidieuses, mais c’est souvent le cas aussi avec les vinyles : il faut enregistrer au départ ce qu’il y a sur le disque. Ici, on a une étape de plus, c’est tout. Attention, il y a quelques réglages à faire sous Windows pour éviter que les pilotes de l’OS de Redmond saccagent l’audio, tout est expliqué là.

Il faut lancer mmsys.cpl


Décocher l’AGC dans les propriétés d’enregistrement


Bien mettre en mono, 48 kHz.


Si vous envoyez vers le lecteur, il faut désactiver l’audio spatial


Et toutes les options d’améliorations

Ça peut sembler paradoxal, mais maintenant il faut repasser sur les outils classiques. Le programme de base est Audiotap. Il contient deux exécutables : un qui permet de convertir le fichier WAV en fichier TAP (une représentation différente du flux audio) et un qui permet de tenter de transformer directement le fichier WAV ou le fichier TAP en un programme utilisable dans un émulateur. Il est moyennement efficace et il faut vraiment un enregistrement de bonne qualité pour qu’il fonctionne directement, mais c’est à tenter. Attention, il faut bien cocher Inverted waveform dans les options (et si ça ne fonctionne pas, tester sans).

S’il ne fonctionne pas, il y a deux solutions efficaces : FinalTap (pas tout neuf, mais efficace) ou TAPClean Front End (qui a l’avantage d’avoir une interface graphique). Dans les deux cas, il faut ouvrir le fichier TAP, espérer qu’il arrive à le décoder et choisir l’option Clean. Il y a quelques explications (en anglais) sur la méthode pour le Vic-20, mais c’est la même chose pour le Commodore 64.

Pour le DVD, je n’avais pas réussi à extraire les données après pas loin d’une centaine d’essais, et ça a fonctionné presque littéralement du premier coup, avec TAPClean Front End : j’ai obtenu mon programme. La principale différence vient réellement des filtres et autres conversions effectuées dans le lecteur lui-même, que les programmes ne prennent visiblement pas bien en charge.

Une solution un peu onéreuse

Bon, c’est une solution un peu onéreuse, surtout quand une bonne partie de la logithèque du Commodore 64 se trouve en ligne assez facilement. Mais dans mon cas, j’ai de temps en temps des programmes qui ne se trouvent pas en ligne et cette solution semble plus efficace. La prochaine étape va évidemment être de l’appliquer sur les deux vinyles qui me résistaient et je vais probablement aussi en profiter pour réessayer avec le MiniDisc cité plus haut.