Gamoover

Vous êtes nostalgiques des jeux vidéos de votre enfance ? Vous désirez acquérir, ou construire une borne d'arcade ? Vous trouverez ici les réponses a vos questions et une communauté de joueurs passionnés.

[WIP] DMD clock by F4brice - NEW : lecture des GIF animées en natif !

Démarré par f4brice, Dimanche 04 Décembre 2016, 20:19:46 PM

Aganyte

Citation de: f4brice le Dimanche 21 Octobre 2018, 14:28:52 PM
Depuis environ 1 mois, je suis le très très heureux (et occupé) papa d'une petite fille de 2 ans.


FELICITATION  :exclam: :exclam: ^-^ ^-^  :D

funkycochise


STRAPHNIPER

Félicitaion F4brice!!!je comprend j'ai 3 gosses ,mais bon si toute fois tu comptais reprendre la fabrique fait moi signe!.

f4brice

#515
Bonjour à tous.

Il y a 2 ans, une jolie merveille arrivait dans mon foyer :

Citation de: f4brice le Dimanche 21 Octobre 2018, 14:28:52 PM
Depuis environ 1 mois, je suis le très très heureux (et occupé) papa d'une petite fille de 2 ans.

Maintenant, la jolie merveille a grandi, elle est toujours aussi jolie, elle remplit toujours mon ♥ de bonheur et elle occupe bien moins mes soirées et mes nuits que par le passé !
Quel lien avec la DMD clock ? Et bien j'ai à nouveau un peu de temps à y consacrer !  :D

J'ai décidé d'ajouter une fonctionnalité importante au firmware : la prise en charge native des GIF animées.
Il suffit de copier dans le répertoire anim/ de la sd-card directement les fichiers .gif et la DMD clock va les lire.
Fini la nécessité de convertir les .gif en .dmd !

Je me suis arraché les neurones pour implémenter la décompression gif dans le firmware, car ça nécessite assez de RAM et il n'y en a plus beaucoup de disponible.
Mon algo de décompression gif nécessite 18320 17808 octets de RAM, ce qui est plutôt un bel exploit, sachant qu'il faut un dictionnaire de 4096 éléments, et chaque élément est une séquence variable de pixels dont la longueur est variable.

J'ai encore quelques tests à faire, notamment avec certaines gif animées "exotiques", et ensuite je publierai la release du firmware.

marcus600

ahhh , mais ça c'est une très bonne nouvelle !

Merci à toi ! ^-

Maitre_Poulpi

Ah cool, je l'ai déballé du carton la semaine dernière pour lui trouver une place dans la nouvelle maison.
J'hésite encore où la mettre, je ferais une photo quand ça sera fait mais que si y a la mise à jour  :D
May the Gamooforce be with you !
À partir du moment où un fou sait qu'il l'est, peut-on toujours le nommer ainsi ?
Boulot, rétro, dodo... et un peu (beaucoup) de TATC© (Touche A Tout Compulsif)...
Le WIP en slip et le hack Sega en Pijama !

f4brice

Bonsoir.

Les tests sont nickels. Les GIF animées se jouent parfaitement bien.  :-*
La clock gère aussi les GIF "entrelacées", si toutefois ça existe encore.

Avant de faire la release du firmware, je voudrais essayer de résoudre le problème des tirages aléatoires qui ne donnent pas satisfaction.
Aujourd'hui, la clock fait un tirage aléatoire entre 1 et N (N étant le nombre d'animations trouvées sur la SD), mais ça ne convient pas car il est possible de voir de manière rapprochée plusieurs fois la même anim et d'autres moins souvent.
Est-ce que si je change pour un ordre aléatoire ça irait mieux ?
Avec un ordre aléatoire, toutes les anims seront passées, mais dans un ordre aléatoire.
C'est comme un jeu de cartes qui serait mélangé, et on tire carte par carte.

Pour continuer la comparaison avec le jeu de cartes, aujourd'hui la clock tire une carte puis la remet dans le jeu avant d'en tirer une autre, et ce mode de tirage aléatoire ne plaît pas.

olschool

Génial, oui le random me semble plus approprié pour les anims, content d'avoir de tes nouvelles et bravo pour cet avancé  ^-^
Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D

Maitre_Poulpi

Moi je dirais pareil, aléatoire ça semblerait mieux.
Une autre idée pourrait être de laisser la possibilité de diffuser par ordre, par exemple un tri alphabétique et il suffirait de mettre une lettre ou chiffre devant le nom de fichier pour mettre dans l'ordre que l'on veut.
Ou bien les 2, comme ça, aléatoire ou trié. Je ne sais pas si c'est facile à mettre en place (genre une case à cocher en paramétrage).
May the Gamooforce be with you !
À partir du moment où un fou sait qu'il l'est, peut-on toujours le nommer ainsi ?
Boulot, rétro, dodo... et un peu (beaucoup) de TATC© (Touche A Tout Compulsif)...
Le WIP en slip et le hack Sega en Pijama !

marcus600


f4brice

#522
Bonjour.

Voilà, la release 1.2.4 qui prend en charge la lecture native des GIF animées va bien bientôt sortir.  :)
J'en ai profité pour ajouter une fonctionnalité discrète, mais qui devrait simplifier pas mal les futures mise à jour...
Donc en plus de lire les GIF animées, la version 1.2.4 permet de flasher la DMD-clock à partir d'un fichier de mise à jour présent sur la micro-SD.
Le fichier ".dfu" (device firmware update, une sous-partie de la norme USB) est placé à la racine de la micro-SD, on démarre normalement la clock, on lui montre le fichier et elle se met à jour !

Voici la manip en images.
Ma clock est en version 1.2.4, et j'ai généré une future version 1.2.5.
J'ai copié le fichier "dmd_clock-1.2.5.dfu" à la racine de la micro-SD.
La clock démarre normalement, elle est en version 1.2.4, celle qui va bientôt être dispo :


Dans le menu SETUP, je vais dans la partie "ABOUT" :


Là, il y a maintenant une nouvelle option "FIRMWARE UPDATE" :


Quand on rentre dans ce menu, la clock demande de choisir l'un des fichiers .dfu présents à la racine de la micro-SD :


Je valide le fichier "dmd_clock-1.2.5.dfu" (cette release n'existe pas encore, c'est pour montrer le fonctionnement), et la clock le charge et vérifie qu'il n'est pas corrompu :


Une fois le fichier chargé et vérifié, la clock indique ce qu'elle a trouvé dans le fichier et demande une confirmation pour la mise à jour :


Si on valide "YES", la clock éteint l'affichage, procède à la mise à jour de son firmware et redémarre avec le nouveau firmware :




Quand on va dans le menu SETUP, on voit qu'elle est bien passée en version 1.2.5 :


ATTENTION 1/2 : cette fonction de mise à jour n'existe qu'à partir de la release 1.2.4.
Pour mettre à jour les releases précédentes (1.2.3 ou avant), il faut utiliser la manip décrite dans le mode d'emploi : utilisation d'un PC + câble USB + manipulation du jumper.
ENSUITE, une fois la release 1.2.4 dans la clock, les mises à jour suivantes seront simplifiées (donc mise à jour vers une future release 1.2.5 ou suivante).

ATTENTION 2/2 : durant la mise à jour (quand on valide "YES"), il ne faut pas débrancher l'alim de la clock sinon la mise à jour va foirer et elle ne démarrera plus.
Si ça devait arriver, on peut recommencer avec la procédure PC + câble USB + manip du jumper

J'ai encore quelques tests à faire sur la release 1.2.4, et ensuite je la diffuserai.

f4brice

La version 1.2.4 est disponible !

Voici le lien pour télécharger le firmware 1.2.4 : firmware 1.2.4 (lien Google Drive)
Voici le lien pour télécharger le mode d'emploi (format PDF) : mode d'emploi (lien Google Drive)

Nouveautés apportées par la version 1.2.4 :

  • lecture native des GIF animées ; plus besoin de les convertir au format .dmd
  • mise à jour du firmware par la clock elle-même, depuis un fichier ".dfu" placé à la racine de la micro-SD
  • le nom de l'animation à lire n'est plus choisi aléatoirement ; elles sont maintenant toutes lues une par une, mais dans un ordre aléatoire
  • correction d'un bug avec la synchro NTP : si le serveur ne répondait pas dès la 1ère demande, la clock ne retentait jamais

Quelques remarques sur l'ordre aléatoire de lecture des animations :
c'est assez consommateur de RAM, donc pour permettre cette fonction sans utiliser toute la RAM de la carte, j'ai fait la manip suivante :

  • les animations sont groupées par lots de 1024 fichiers
  • le lot de 1024 fichiers est ordonné aléatoirement en utilisant l'algo de Fisher-Yates
  • les 1024 animations du lot sont lues, dans l'ordre aléatoire issu de l'algo de Fisher-Yates
  • on continue avec le lot suivant
Donc si vous avez 3.000 animations, les 1024 premières sont lues dans un ordre aléatoire, puis les 1024 suivantes dans un ordre aléatoire, puis les 952 restantes dans un ordre aléatoire.
Voilà, j'espère que cet algo de lecture des animations plairat !  :)

N'hésitez pas à me faire part de vos commentaires !

olschool

Winner's Don't Use Drug mais ça aide quand même pour finir Ghost & Goblins.



Citation de: ducatman1098 le Lundi 05 Novembre 2018, 22:45:37 PM
En rentrant le camion au garage,  je me suis aperçu que j avais récupérer une after burner  ;D

marcus600

top ! je test bientot aussi ,

a mon avis on aura aussi un bien meilleurs rendu dans les couleurs  ^-

marcus600

j'ai testé ca fonctionne trés bien ,

par contre j'ai l'horloge qui apparait en Second plan devant les animations alors que j'ai bien mis que j'en voulais pas dans dmd.list

f4brice

Tu pourrais faire un copier-coller ici du contenu de ton fichier dmd.lst qui est dans le répertoire settings de la sd ?