Il y a quelques années, j’avais parlé du vinyle du générique de David le Gnome, un dessin animé espagnol. En effet, il contient un jeu pour ZX Spectrum. Mais à l’époque, je n’avais pas réussi à extraire correctement les données et je m’étais rabattu sur la cassette audio. Mais j’avais toujours une interrogation : le programme sur le vinyle était-il identique à celui de la cassette ?
Au lieu de vous mettre tous les articles précédents à chaque fois, je vous renvoie vers la page dédiée, elle explique ce que je fais avec les vinyles et liste toutes les pages qui contiennent les programmes, les explications, etc.
J’ai finalement pu le vérifier. Premièrement, mon vinyle du générique n’était pas en très bon état (il a probablement été trop lu). J’ai donc cherché une copie du Baby Album, une compilation espagnole avec le même programme. Même après avoir réglé la vitesse de ma platine (qui tournait légèrement trop vite), je n’ai pas réussi à obtenir directement le programme, mais j’ai eu une idée qui avait déjà fonctionné : extraire en plusieurs fois.
J’avais une soixantaine de fichiers .WAV extraits des deux disques, et j’ai passé le tout à la moulinette des outils TZXtools. Pour chaque fichier, j’ai tapé la commande suivante.
tzxwav -tlow -Thigh -lshort -o sortie.tzx entrée.wav -v
Elle donne un résultat de ce type, avec les différentes sections détectées et les éventuelles erreurs. Dans l’exemple ci-dessous, il y a une erreur sur le bloc de 174 octets et il manque une section entre les blocs de 6 912 octets et de 40 000 octets.
0:09.008 397280 - 415265: Program: GNOMO (174 bytes)
0:12.261 540726 - 599015: 173 bytes of bogus header, CRC ERROR!
0:24.994 1102259 - 1117126: Bytes: GNOMO (start: 40000, 6912 bytes)
0:26.688 1176959 - 2766386: 6912 bytes of data
1:17.301 3409007 - 12068221: 40000 bytes of data
Mais en effectuant la même chose sur un second fichier, j’ai obtenu les 174 octets sans erreurs, ainsi que le bloc manquant, mais d’autres étaient corrompus.
0:03.226 142299 - 355916: 269 bytes of data, CRC ERROR!
0:10.711 472385 - 524984: 174 bytes of data
0:17.549 773929 - 990981: 506 bytes of data, CRC ERROR!
0:23.433 1033433 - 2471081: 6912 bytes of data
1:03.072 2781501 - 2954262: Bytes: GNOMO (start: 25500, 40000 bytes)
1:08.307 3012350 - 10845132: 39999 bytes of data, CRC ERROR!
Une fois tous les blocs identifiés, il faut utiliser un des outils pour liste les blocs détectés.
tzxls -v fichier.tzx
0 Standard Speed Data Block 269 bytes of data, CRC ERROR!
1 Standard Speed Data Block 174 bytes of data
2 Standard Speed Data Block 506 bytes of data, CRC ERROR!
3 Standard Speed Data Block 6912 bytes of data
4 Standard Speed Data Block Bytes: GNOMO (start: 25500, 40000 bytes)
5 Standard Speed Data Block 39999 bytes of data, CRC ERROR!
Avec le fichier ci-dessus, on peut récupérer le bloc numéro 1, le bloc numéro 3 et le numéro 4. La commande tzxcut est là pour ça. Il faut fournir le fichier de départ, le fichier de sortie et la liste des blocs. Dans les deux exemples suivants, on met le bloc 1 (1:1, pour 1 à 1 inclus) dans un fichier séparé, puis les blocs 3 et 4 (3:4, 3 à 4 inclus) dans un autre. J’ai choisi part2.tzx et part4.tzx parce qu’il y a un part1.tzx qui va contenir le premier bloc (issu d’un autre enregistrement) et la même chose pour le bloc 2.
tzxcut -i entrée.tzx -o part2.tzx 1:1
tzxcut -i entrée.tzx -o part4.tzx 3:4
En faisant la même chose sur plusieurs enregistrements, j’ai récupéré tous les blocs depuis un vinyle. La dernière étape consiste donc à tout unifier. Il faut bien indiquer la sortie, et ensuite les différentes parties.
tzxmerge -o sortie.tzx part1.tzx part2.tzx part3.tzx (etc.)
C’était le même fichier
La bonne nouvelle, c’est que j’ai bien récupéré tous les blocs à partir de plusieurs enregistrements. Le fichier est parfaitement utilisable… et c’est le même jeu. C’était donc un peu vain : le résultat est exactement le même que sur la cassette. Un simple md5 donne exactement le même résultat pour la version issue du vinyle et celle de la cassette. Ce n’est pas totalement systématique : pour New Anatomy, la version issue du CD et celle du vinyle ne sont pas identiques.





