Projet en cours : SDLEP File Manager

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Projet en cours : SDLEP File Manager

Message par Falkor »

Salut à tous,

Ouverture d'un sujet pour parler d'un projet perso en cours : un petit utilitaire pour gérer efficacement le contenu d'une carte SD destinée à être utilisée avec un module SDLEP.

L'idée est de ne pas gérer directement le renommage des fichiers en genre "0100110.lep" mais laisser le soft tout faire. :)

Concrètement, on vient créer une liste de programmes, en indiquant le nom du jeu, la machine, un numéro d'index, un fichier LEP de base...
L'utilitaire se charge ensuite de copier/renommer vos fichiers LEP selon l'index choisi. On peut également exporter une fiche résumé du contenu de la carte pour pouvoir régler les switchs du module sans avoir le logiciel sous la main.

Voici une première copie d'écran :
ManagerV1.jpg
ManagerV1.jpg (179.08 Kio) Consulté 4646 fois
Par la suite, je pense intégrer la conversion wav <-> lep pour plus de flexibilité. Je pensais pouvoir utiliser le logiciel directement sur la carte SD, mais j'ai peur que les cycles d'écriture répétés ne soient pas très bons pour la lecture des fichiers LEP qui ne doivent pas être fragmentés. A tester...

Le soft effectue une lecture du fichier LEP pour déterminer la durée. Il recherche aussi les doublons d'index. Toute la configuration des programmes est stockée dans un fichier CSV, pouvant être facilement édité à la main si nécessaire.

Voilà pour la présentation. Je pense sortir une première version dans quelques jours... Je serai preneur de retour et d'idées !
BDCIron
Messages : 91
Inscription : 24 juil. 2018 23:39
Localisation : Calvados, région de Villers Bocage

Re: Projet en cours : SDLEP File Manager

Message par BDCIron »

C'est quoi un SDLEP ?
Xavier_AL

Re: Projet en cours : SDLEP File Manager

Message par Xavier_AL »

Super ton idée !

J'ai honte de ne pas l'avoir eu...
:oops:

Par contre, est-il possible de 'tagger' les fichiers LEP en fin de fichier avec un octet (0-xx) pour identifier la machine de destination ?

Comme pour le TZX: https://www.worldofspectrum.org/TZXform ... #HWINFOREF

Caché dans un silence de taille variable, en toute fin de fichier...

Toujours du VB ? ...
Dernière modification par Xavier_AL le 13 août 2018 16:17, modifié 2 fois.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Projet en cours : SDLEP File Manager

Message par Falkor »

@BDCIron : C'est un dispositif qui permet de remplacer une liaison magnétophone pour un grand nombre d'anciennes machines :

https://forum.system-cfg.com/viewtopic.php?f=18&t=7700

J'ai également réalisé un PCB pour ce même outil :

https://forum.system-cfg.com/viewtopic.php?f=18&t=8164

Et le logiciel proposé permet de gérer efficacement le contenu de la carte SD, à savoir les fichiers images de cassettes. :)
Dernière modification par Falkor le 13 août 2018 16:08, modifié 1 fois.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Projet en cours : SDLEP File Manager

Message par hlide »

@BCDIron
C'est ce qui était proposé avant SDDRIVE : un émulateur de cassette initialement pour les Thomson avant de s'ouvrir à d'autres machines. Fait une recherche avec "SDLEP-READER" et tu auras des liens très informatifs.

Daniel a défini un format appelé LEP qui compresse les périodes des créneaux hauts et bas d'un fréquence depuis un fichier WAV sous forme d'un octet signé (positif -> signal haut, négatif signal bas) dont la valeur absolue s'exprime en unité de 50 µs. Cela conserve la structure particulière d'enregistrement d'un programme spécifique à une machine (y compris les mécanismes anti-piratages) sans que le lecteur de fichier LEP en ait le besoin d'en connaître (fameuse expression des thalèsiens qui travaillaient pour la DGA) et, accéssoirement, réduit la taille du fichier comparé au fichier WAV d'orgine. Cela fonctionne a priori avec n'importe quelle machine pour peu que l'on ait les connectiques adaptées.

Le principal défaut que je lui trouve personnellement est qu'il n'accepte pas la fragmentation dans la FAT du SD et qu'il ne peut pas gérer l'ajoût d'une interface IHM *PENDANT* la lecture et qu'il faut utiliser le piano pour choisir parmi les 128 fichiers LEP que tu veux charger puis appuyer sur le bouton RESET pour lancer la chargement.

Le logiciel en question dans ce post vient à point nommé pour faciliter la gestion des ces 128 fichiers avec les codes binaires du piano. Belle initiative Falkor !
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Projet en cours : SDLEP File Manager

Message par Falkor »

Xavier_AL a écrit : 13 août 2018 15:58 Par contre, est-il possible de 'tagger' les fichiers LEP en fin de fichier avec un octet (0-xx) pour identifier la machine de destination ?
Alors à priori pas directement. L'utilitaire ne fait que gérer la copie des fichiers LEP, rien de plus. Je ne touche pas au contenu du fichier (si ce n'est une analyse pour déterminer la durée de lecture)

L'idée de cet octet en plus serait de faire du filtrage ?

L'autre souci est de faire en sorte que cet octet ne soit pas "lu" par le montage... Mettre après un silence, pourquoi pas effectivement.
Xavier_AL a écrit : 13 août 2018 15:58 Toujours du VB ? ...
Nan, du Qt C++ pour changer un peu ! J'apprends ce langage à mon travail, et je me fait la main le weekend sur des projets perso.

EDIT : hlide à bien résumé. :)
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Projet en cours : SDLEP File Manager

Message par hlide »

J'imagine que tu vas permettre l'impression de la liste des programmes avec le code binaire du piano ? histoire de l'avoir en main au moment du choix.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Projet en cours : SDLEP File Manager

Message par Falkor »

hlide a écrit : 13 août 2018 16:13 J'imagine que tu vas permettre l'impression de la liste des programmes avec le code binaire du piano ? histoire de l'avoir en main au moment du choix.
C'est exactement ça ! On va pouvoir sortir un fichier HTML ou PDF qui résume tout, avec possibilité de filtrer par machine. :P

J'avais un tableau papier similaire que je remplissais manuellement lors de mes premiers essais du module, mais au delà d'un certain nombre de fichiers j'avais quelques difficultés...
Xavier_AL

Re: Projet en cours : SDLEP File Manager

Message par Xavier_AL »

... On peut lire les CRC des fichiers LEP, et associer le jeu à un titre... automatiquement, par rapport à une base de donnée... cf mon 'Zxcollector' (qui utilise le csv de la db tosec RomCenter)

L'idée serait de lire le tag, et faire un tri de fichiers par machine.
avec les Bits fort réservés à l'id machine, et 6bits pour l'adressage fichier.

id machine (1/2bits): 4 machines
v
00 000000 < Id fichier (64fichiers ou 128 avec 2 machines)

En l'état il faut une BD externe pour associer les LEPs aux noms de fichiers...pour éviter de rentrer tous les noms à la main.

Avoir une feuille A4 avec tous les programmes dispo, serai super.
Bravo.
Xavier_AL

Re: Projet en cours : SDLEP File Manager

Message par Xavier_AL »

L'autre souci est de faire en sorte que cet octet ne soit pas "lu" par le montage... Mettre après un silence, pourquoi pas effectivement.
Ou "en" silence... après le fichier. (niveau $80 pour une durée de 1,2,3... unités d'échantillonnage)
à la lecture, pas de modifications tangibles, car le temps de silence sera très court.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Projet en cours : SDLEP File Manager

Message par hlide »

Techniquement, on peut mettre autant d'octet à la fin si on part du principe que seule la machine sait ce qu'elle a besoin de lire (d'en connaître, hein!). Le mieux, ce serait d'avoir en dernier octet la taille du pied du fichier (lol je prends mon pied - je ne sais pas comment dire l'opposé d'une entête autrement) et de lire à rebrousse poil les données (machine, résolution de l'unité - autre que 50 µs, taille effectif en octet du binaire, temps de lecture, etc.). Quoique de lire à rebrousse poil n'est pas necessaire : la taille du pied peut suffire à assurer le versionning et quite à être complet le premier octet du pied peut contenir la version du pied (grec, égyptien... bon là je digresse).

EDIT: AVANT d'avoir la taille, il faudrait une signature EXPLICITE de présence d'un pied précédé par la taille du pied. Le maître mot est la possibilité de reconnaître la présence d'un pied et de son évolution.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Projet en cours : SDLEP File Manager

Message par jasz »

hlide a écrit : 13 août 2018 16:54 (lol je prends mon pied - je ne sais pas comment dire l'opposé d'une entête autrement)
Footer ;)
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Projet en cours : SDLEP File Manager

Message par Falkor »

Ok je vois mieux...

Pour l'instant je vais rester sur quelque chose de plus simple : le nom du programme est simplement tiré du nom du fichier LEP initial. La petite bibliothèque de fichiers LEP que je possède est rangée avec un dossier par machine. Quand j'ajoute un fichier LEP dans l'utilitaire, j'indique manuellement la machine cible tandis que le nom du programme est récupéré avec le nom de fichier.

Vos idées sont pertinentes, mais ça remet en cause trop d'éléments du format LEP pour être implémentées dans l'immédiat. :P
Xavier_AL

Re: Projet en cours : SDLEP File Manager

Message par Xavier_AL »

:D
Effectivement, c'est le pieds.

Mais, il faut se placer du côté du lecteur, qui va lire "bêtement" le pied, comme un fichier son, car le LEP doit rester compatible avec la programmation du µc actuelle.

On va se retrouver avec les harmoniques parasites, et en cas de fichiers ZX, CPC... suite à un loader par exemple, ces machines s'arrêtent sur des erreurs de chargement, et c'est pour cela qu'il faut du silence en fin de bande.
Il est possible de coder les infos en périodes de silences, en petits indiens (ou pas petits) et un tag de silence de 0 pour marquer la fin des infos.

On parle de pieds, mais un ajout de séquences en début de programme ne changera pas non plus la lecture!
Tag début: silence de taille nulle, pour le manager, puis silence de chr$(pitchs), silence de chr$(pitchs)...silence de taille nulle pour la clôture du header, pour le LEPreader on a que du silence sur une courte période.

Mais, en pieds, l'ajout de ces silences passerons plus inaperçu, tout dépend du nombre d'infos.
Enfin, un silence nul plante peut-être le µc !
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Projet en cours : SDLEP File Manager

Message par hlide »

Mais le lecteur va débiter des parasites à qui ? certainement pas à la machine puisqu'elle a obtenu ce qu'elle voulait, ce qui reste derrière ne sera même pas lu, donc ajouter des octets à la fin n'a strictement aucune conséquence sur la lecture par la machine (elle n'attendra pas la fin de la lecture pour lancer le programme). certes le lecteur continuera à débiter dans le vide mais quelle importance ?
Répondre