Gamoover

[move]Le staff Gamoover vous souhaite la bienvenue ;)

[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

Bertille

#240
Bonjour,

Effectivement super taf réalisé !
Je suis preneur également d'un exemplaire !
Tu peux me rajouter sur la liste ;+)

SEGA New Astro City
STERN Ghostbusters Premium
Crossbox OpenAir / HfsBox 15K / Rpi2Jamma / Darksoft CPS2 & MVS

squallrs

Je trouve ça top pour le prix !
J'en veux un aussi aller ;)

ZeV

#242
Salut ^^

Comme je l'écrivais sur Neo-arcadia, c'est vraiment top et ça enverrait du bois dans ma "gameroom - salle de jeu des enfants" mais est-il possible d'avoir une chtite explication sur la façon dont il faut procéder pour, par exemple, balancer mes "scoring" extraordinaires de Gokujou Parodius ?

Je les copies sur une sd et il les balance en boucle ??

J'avoue que "Serveur Web intégré pour la gestion des meilleurs scores" me fait plus peur qu'autre chose  :-\ :-\

P.S. : Je le dis quand même... Je suis vraiment admiratif des mecs qui pondent des idées comme ça et qui en plus les concrétisent. Bravo !!!
Marty McFly : Mais merde, où sont-ils ?!
Emmett Brown : Tu devrais plutôt demander : « Mais merde, quand sont-ils ?! »
1er WIP : http://www.gamoover.net/Forums/index.php?topic=31902.0
2ème WIP : http://www.gamoover.net/Forums/index.php?topic=33035.msg545996#new

magicnono

Bonjour,

Quel beau projet et quel bel ouvrage.
Je te félicite d'avoir mené jusqu'au bout ton projet initial pour ce beau résultat.

J'aurai quelques questions/suggestions :

=> est il possible d'ajouter une fonction de désactivation/activation des animations (images, textes, ...etc.) à une heure précise ?
Exemple :
- animation [ON]  : 06:00
- animation [OFF] : 22:00
Ca permettrait d'afficher uniquement l'heure pendant une période définie.

=> pour la sélection des animations, est il envisageable de les gérer par thème avec un sous-dossier par thème (je ne me rappelle plus si la question a été abordée par thème)?
Exemple :
Arborescence :
[Dossier 'Animation']
-[Sous-dossier 'Arcade']
-[Sous-dossier 'Pinball']
-[Sous-dossier 'Marvel']
-[Sous-dossier 'Star Wars']
-...etc

All Animations = [Dossier 'Animation']+ All [Sous-dossiers]
Selection Animation = [Sous-dossier]

=> pour les animations capturées de mame correctement converties sans tramage, tu as développé un logiciel spécifique ou c'est toujours en 'bidouillant' un peu avec 'avconv + gimp'?

=> je sais que c'est la première production mais ça serait top de pouvoir reprendre et d'utiliser le plan que Sunn a donné pour la partie arrière de la plaque qui permet en autre de mieux protéger les composants et d'ailleurs le système d'accroche au mur est plus adapté

=> serait il possible d'avoir une photo ou vidéo avec l'affichage en mono couleur pour se donner une idée?

=> penses tu pouvoir mettre très prochainement à disposition un manuel d'utilisation ?

Encore bravo pour ce travail titanesque et bon courage pour la suite  ;)

fafangus

Yop
Suite au poste d'ElLuigi sur NA, moi aussi je serai preneur d'un exemplaire ^^

Sovietik

Ca commence à faire pas mal d'intéressés. A ce rythme le carnet de commande va exploser... Tu vas arriver à suivre F4brice?

Bertille

Il peux plus répondre il est déjà en train de monter les premières clocks commandées  =:))

SEGA New Astro City
STERN Ghostbusters Premium
Crossbox OpenAir / HfsBox 15K / Rpi2Jamma / Darksoft CPS2 & MVS

eLLuiGi

+1 pour la frame arriere dans la mesure du possible ;-)

Perso je suis chaud chaud cacao pour lancer un chantier animation pour la f4brice clock !

Et oui lorsque je vois un superbe produit (french en plus) je suis obligé d'en parler a la communauté arcade ! @f4brice j'ai fais un peu de pub de ta clock sur mon topic "Déco" sur neo arcadia http://www.neo-arcadia.com/forum/viewtopic.php?f=14&t=45930&start=825 dis moi si cela te va f4brice au besoin je peux supprimer le post.

Pour les fonts il me vient une idée, j'en ai une palanqué des demo makers amiga et atari st ! pourquoi pas ! A test.

Merci pour tout je suis ultra motivé sur cette clock je vois deja le out run, space harrier... ou meme un flashback ou shadow of the beast !!! Je vois bien aussi des mini films a la star wars ou par theme il y a pas mal de choses a faire au niveau anim logo !!! C'est top ! Quid du haut parleur ? allez pourquoi pas un jukebox avec anim, bon je m'emballe un peu là  ^-^

ZeV

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:36:12 PM
je vois deja le out run, space harrier... ou meme un flashback ou shadow of the beast !!! Je vois bien aussi des mini films a la star wars ou par theme il y a pas mal de choses a faire au niveau anim logo !!!

OH YEAH  :-)=
Marty McFly : Mais merde, où sont-ils ?!
Emmett Brown : Tu devrais plutôt demander : « Mais merde, quand sont-ils ?! »
1er WIP : http://www.gamoover.net/Forums/index.php?topic=31902.0
2ème WIP : http://www.gamoover.net/Forums/index.php?topic=33035.msg545996#new

Sunn

demain soir on se fait une pizza avec F4brice, je lui soumettrai l'idée d'une DMD Clock Jacquie et Michel :)


eLLuiGi

Ok on rajoute une section spéciale  "Parental advisory" =:))

Evil Moukin

Énorme taff pour un résultat top !  ^-
Félicitations !!  <:)

f4brice

Bonsoir.

Je vais essayer de répondre aux questions !

Citation de: marcus600 le Dimanche 17 Septembre 2017, 20:32:43 PM
par contre 30 € de port c'est un chronopost ?  ou c'est super lourd ?

Les 30,00 EUR correspondent au port + l'emballage, et c'est très fragile. Je vais devoir blinder les colis et acheter de la matière première pour faire tout ça.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
- y a t il une pile type cr2032 (ou autre astuces) qui sauvegarde les parametres si l'horloge est débranchée afin de conserver en mémoire les parametres wifi, la date, l'heure...

Il existe une pile qui permet de conserver l'heure + 1 réglage à la con quand l'horloge est débranchée.
Les autres réglages sont lus dans un fichier texte sur la SD puis copiés dans une mémoire flash.
Lorsqu'un réglage n'est pas trouvé dans le fichier texte, l'horloge va voir dans sa flash.
Je conseille de laisser le fichier texte des réglages, mais de supprimer la ligne du mot de passe WiFi dès que l'horloge s'est connectée au moins 1 fois.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
- possibilité de changer la font ? (actuellement elle est assez simpliste)

Oui, mais c'est très chiant.
Les fichiers de font ont un format spécifique (pour optimiser leur lecture et utilisation).
On part d'un fichier .png mais il faut dire où se trouve quelle lettre, et quelle largeur elle a.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
- comment faire les animations ? cela se fait facilement ? Quel est le format (gif animées) ?

Je fournis un outil (en Python) qui convertit une GIF animée au format attendu par l'horloge (fichier ".dmd").
Le micro-contrôleur n'a pas assez de RAM pour décompresser une GIF animée en temps réel + convertir le résultat au format vidéo interne nécessaire aux panneaux lumineux.
Il existe de nombreuse librairies Python qui font ça mieux que moi.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
- C'est à nous de les faire ?

Tu peux faire ta propre animation toto.gif, la convertir en toto.dmd et placer le fichier sur la SD.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
Tu en fournis quelques une ?

J'en ai fait 5 ou 6 pour illustrer (Bubble Bobble x 2, Q*Bert, After Burner, 1942, G'n'G, Outrun).

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
cela pourrai être pas mal d'organiser un chantier de création des animations/images histoire d'avoir un set commun à tous ? Qu'en penses tu ?

Pourquoi pas. L'idéal pour l'horloge, c'est d'avoir du 128x32.
Sinon il faut couper ou redimensionner et le résultat est généralement moche.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 08:03:04 AM
PS : dois je te remplir le bon de commande ?

Oui.  ;)

Citation de: ZeV le Mercredi 20 Septembre 2017, 18:59:51 PM
est-il possible d'avoir une chtite explication sur la façon dont il faut procéder pour, par exemple, balancer mes "scoring" extraordinaires de Gokujou Parodius ?

A la racine de la SD, il existe un répertoire nommé "hiscores".
Dans ce répertoire, on place des fichiers avec l'extension ".dlg" (logo, c'est à dire une simple image fixe couleur.
Ces fichiers ne servent que pour afficher le logo du jeu. Aucun score n'est lu ou enregistré sur la SD.
L'horloge choisit l'un de ces fichiers (soit aléatoirement, soit selon une liste que tu as établi dans un fichier de config) et affiche l'image comme "introduction" au high-scores de ce jeu.
Elle va ensuite chercher dans sa mémoire flash les 5 meilleurs scores qui correspondent à ce jeu (elle se base sur le nom du fichier sans l'extension) et les affiche.

Exemple : tu places le fichier "outrun.dlg" dans le répertoire "hiscores".
Quand c'est le moment de montrer des scores, l'horloge affiche à l'écran l'image contenue dans "outrun.dlg" et cherche le jeu "outrun" dans sa mémoire flash.
Si le jeu existe, elle affiche les 5 meilleurs scores qu'elle a trouvés.
Si le jeu n'existe pas en flash, ou qu'aucun score n'a été ajouté pour ce jeu, elle affiche "No score".

Pour ajouter un nouveau high score (par exemple "ZeV a fait 123456 à outrun"), il faut :

  • se connecter au serveur web de l'horloge
  • cliquer sur "High-scores", puis "Add high-score"
  • dans le formulaire, choisir le nom du jeu (l'horloge a scanné sa flash pour vous donner la liste des jeux qu'elle connait)
  • saisir le nom du joueur et son score
  • valider

Avant de pouvoir ajouter des scores à un jeu, il faut "créer" le jeu :

  • choisir un nom (le nom du romset Mame est une bonne idée) - par exemple "toto"
  • créer une image "toto.png" en 128x32
  • la convertir en "toto.dlg" grâce à un script Python fourni
  • copier le fichier "toto.dlg" dans le répertoire "hiscores" de la SD
  • se connecter au serveur web intégré à l'horloge
  • aller dans "High-scores", puis "Add game"
  • saisir "toto" comme nom de nouveau jeu et valider

Note 1 : il est possible d'avoir un fichier "hiscores/truc.dlg" existant sans que le score ne soit créé en flash => l'horloge pourra choisir ce jeu, affichera alors l'image et "no score"
Note 2 : il est possible d'avoir un jeu existant en flash mais qui n'a pas/plus son fichier .dlg => l'horloge ne choisira jamais ce jeu, faute d'image pour annoncer le jeu avant d'afficher ses scores.

En résumé :
1. choix (aléatoire ou controlé) d'un fichier .dlg dans le répertoire hiscores
2. affichage de l'image contenue dans le fichier
3. affichage des scores trouvé en flash

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> est il possible d'ajouter une fonction de désactivation/activation des animations (images, textes, ...etc.) à une heure précise ?

Je déconseille fortement de laisser l'horloge allumée 24h/24, tout comme je pense tu ne laisses pas tes bornes allumées 24h/24.
Je ne sais pas dire si les panneaux lumineux supporteront ça longtemps.
Le fabriquant chinois annonce un MTBF de plusieurs milliers d'heures, mais je ne peux pas le vérifier.

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> pour la sélection des animations, est il envisageable de les gérer par thème avec un sous-dossier par thème (je ne me rappelle plus si la question a été abordée par thème)?

Les animations sont trouvées dans le répertoire "anim" placée à la racine de la SD.
Il est possible de créer des sous-répertoires, et des sous-répertoires dans les sous-répertoires (4 niveaux maxi).
Ensuite, soit elle en prend un au pif (tirage aléatoire), soit elle suit à la lettre un fichier que j'appelle "script" qui lui dit ligne par ligne quel fichier elle doit jouer.
Ce fichier est un simple fichier texte, avec 1 ligne = 1 nom de fichier.

Dans ce fichier script, tu ordonnes les animations comme du veux.
Quand elle arrive à la dernière ligne du script, elle reprend au début.
Si le fichier script n'existe pas sur la SD, elle procède à un tirage aléatoire pour choisir l'animation à lire.

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> pour les animations capturées de mame correctement converties sans tramage, tu as développé un logiciel spécifique ou c'est toujours en 'bidouillant' un peu avec 'avconv + gimp'?

Pourquoi ré-écrire quand ça existe déja ? ;)
Mame fait son travail d'émulation et d'enregistrement video.
avconv fait son travail de conversion vidéo. Il faut juste lui demander correctement.

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> je sais que c'est la première production mais ça serait top de pouvoir reprendre et d'utiliser le plan que Sunn a donné pour la partie arrière de la plaque qui permet en autre de mieux protéger les composants et d'ailleurs le système d'accroche au mur est plus adapté

Ce plan ne m'appartient pas et de toute façon est inadaptée à mes horloges.
En plus, je suis un peu "concurrent" de son auteur et je n'ai aucunement l'intention de le voler.
Il est toujours possible d'améliorer la partie boîtier, mais pas au prix que je fais.
Le travail du plexy coûte un bras.

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> serait il possible d'avoir une photo ou vidéo avec l'affichage en mono couleur pour se donner une idée?

Je ne suis pas sûr de comprendre.
Tu veux voir une photo ou vidéo d'une animation en monochrome ?
Si c'est bien ça, alors voilà : photo.

Citation de: magicnono le Mercredi 20 Septembre 2017, 19:11:35 PM
=> penses tu pouvoir mettre très prochainement à disposition un manuel d'utilisation ?

C'est prévu, mais je suis carrément à la bourre.  :-[

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:36:12 PM
+1 pour la frame arriere dans la mesure du possible ;-)

Possible, mais pas à 250,00 EUR ! Le panneau en plexy coûte un bras. :'(

En plus, ce n'est pas une bonne idée pour l'arrière. Le plexy aime l'électricité statique et ce n'est pas bon pour l'électronique.
Le support arrière est en bois car ça ne coûte pas cher et c'est électriquement inerte.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:36:12 PM
@f4brice j'ai fais un peu de pub de ta clock sur mon topic "Déco" sur neo arcadia http://www.neo-arcadia.com/forum/viewtopic.php?f=14&t=45930&start=825 dis moi si cela te va f4brice au besoin je peux supprimer le post.

Non ça me va, merci !  <:)
J'ai quand même bien fait de flouter des zones avant de poster mon flyer et mon bon de commande !  ;)

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:36:12 PM
Pour les fonts il me vient une idée, j'en ai une palanqué des demo makers amiga et atari st ! pourquoi pas ! A test.

J'avais essayé mais le rendu n'était pas top. Mais ça vaut le coup de retenter.

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:36:12 PM
Quid du haut parleur ?

Pour le moment, il a un rôle secondaire.

  • il joue une musique (au format interne à l'horloge, merci le script Python) quand un nouveau high score est ajouté depuis l'interface web
  • il fait "carillon" si vous le souhaitez : ça sonne à chaque heure plein !  ;D

Citation de: Sovietik le Mercredi 20 Septembre 2017, 20:23:35 PM
Ca commence à faire pas mal d'intéressés. A ce rythme le carnet de commande va exploser... Tu vas arriver à suivre F4brice?

J'ai une vie privée et aussi un WAF.
Je limiterai les ventes si nécessaire, car je gagne mieux ma vie en exerçant mon métier plutôt qu'en assemblant des horloges !
L'idée n'est pas d'en faire un business, mais d'en faire profiter les copains tout en payant mon matériel électronique (oscillo, etc...).

A propos de commande, merci à ceux qui ne passent pas au BGS et qui souhaitent commander de réaliser la manip indiquée >>> là <<< (partie "les commandes sont ouvertes").

Citation de: eLLuiGi le Mercredi 20 Septembre 2017, 20:54:16 PM
Ok on rajoute une section spéciale  "Parental advisory" =:))

Je peux vous refaire le cryptage Canal+ si ça vous rappelle des "bons" moments !  :D

supercarotte

Besançon est définitivement une ville d'horlogerie de luxe!  :)
Bornes: Out Run DX, Super Hang On DX, ThunderBlade DX, Enduro Racer DX, RoadBlasters DX, Space Invaders, Discs of Tron, SuperSprint, Hang On, Pacmania, Rolling Thunder, Marble Madness, Blasteroids, Super Off Road, Rampage, NBA Jam TE, Operation Thunderbolt, Power Drift, Street Fighter, twin Sega Rally, CrazyTaxi, Harley Davidson + Aero City, Jaleco Pony // Cocktails : Missile Command, Galaxian, Nintendo DK // Flip : Creature FTBL, Revenge from Mars, Funhouse, The Machine BOP, Elvira ATPM, Swords of Fury, Xenon

f4brice

Pour illustrer la config de l'horloge, voici un copier-coller du contenu du fichier "settings/settings.cfg".
Ce fichier contient la config générale de l'horloge.

wifi_ap        = mon_wifi_chez_moi
wifi_password  = cracboumhue
ntp_server     = 192.168.1.44
ntp_port       = 123
ntp_period     = 36000
timezone       = 3600
auto_dst       = 1
webserver_port = 80

time_font      = pinball_small.dfn
time_color     = plasma
time_position  = middle-center
time_format    = hh!mm!ss

date_font      = pinball_small.dfn
date_color     = plasma
date_position  = middle-center
date_format    = dd/MM/yyyy

temp_font      = pinball_small.dfn
temp_color     = plasma
temp_position  = middle-center

chime_sound    = smb_coin.dau
chime_repeat   = 1
chime_hours    = 8,9,10,11,12,13,14,15,16,17,18,19,20,21
chime_volume   = 50

hiscore_sound  = smb_world_clear.dau
hiscore_volume = 100

scroller_font  = pinball_small.dfn
scroller_color = plasma
scroller_speed = 3


Voici le contenu du fichier "settings/dmd.lst".
Ce fichier contient le scénario de fonctionnement de l'horloge.
C'est à dire quand elle affiche une animation, la date, un message, etc...
L'horloge dispose de 2 plans graphique "bg" et "fg" et peut faire 2 trucs en même temps.
Dans la pratique, les superposition (l'heure par-dessus une anim) ça gâche un peu alors le scénario par défaut que je fournis évite ça.
Dans ce fichier, une ligne qui commence par "#" est ignorée.

# Plan background : passer en pause le plan foreground et attendre que ce soit fait
bg pause fg
# Plan background : jouer 1 animation, au pif ou celle du script des animations s'il existe
bg animation *
# Plan background : montrer les scores d'1 jeu, au pif ou celui du script des jeux s'il existe
bg hiscores *
# Plan background : afficher 1 message, au pif ou celui du script des messages s'il existe
bg scroller *
# Plan background : afficher 1 logo, au pif ou celui du script des logos s'il existe
bg logo * 5
# Plan background : autoriser le plan foreground à fonctionner à nouveau
bg resume fg

# Plan foreground : afficher l'heure pendant 3 secondes
fg time 3
# Plan foreground : afficher la date pendant 3 secondes
fg date 3
# Plan foreground : afficher la température pendant 3 secondes
fg temperature 3


Les commandes "pause" et "resume" sont des commandes de synchro entre plans graphiques.
Ca permet à un plan d'attendre que l'autre ait fini son taf pour continuer, de le bloquer, et ensuite de le remettre en route.


Pour finir, voici le contenu du fichier "settings/anim.lst".
Ce fichier est le script qui contient la liste (et donc l'ordre) des animations à jouer.
Le simple fait que ce fichier soit présent va faire que l'horloge va s'en servir.
S'il n'est pas là, une animation est choisie au pif.
1 ligne = 1 nom de fichier. On ne précise pas le répertoire "anim" car c'est implicite.
Si le fichier est dans un sous-répertoire qui lui même est dans le répertoire anim, alors il faudrait préciser ce sous répertoire (la ligne "toto/titi.dmd" va chercher le fichier "anim/toto/titi.dmd").

1942.dmd
afterburner.dmd
bobble.dmd
bubble.dmd
cadillac.dmd
defender.dmd
donkeykong.dmd
lemmings.dmd
metal_slug_marco_death.dmd
metal_slug_marco_ill.dmd
metal_slug_monkey.dmd
metal_slug_plant.dmd
metal_slug_tank.dmd
outrun.dmd
pacman.dmd
qbert.dmd
rtype.dmd

Bertille

F4brice je t'ai envoyé un MP mais je n'ai rien dans ma boite d'envois, tu le confirmes l'avoir reçu ?

Merci !

SEGA New Astro City
STERN Ghostbusters Premium
Crossbox OpenAir / HfsBox 15K / Rpi2Jamma / Darksoft CPS2 & MVS