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

Arvester

Citation de: spotting le Lundi 19 Décembre 2016, 11:47:20 AM
Plus sérieusement : les anims sont tellement belles que je trouve dommage de rajouter l'heure, ou alors trouver une animation pour chaque minute, genre des tambours de machine à sous, etc etc...
Lance-toi, ça ne fait que 720 animations d'une minute chacune à réaliser (à doubler pour un format 24h).

f4brice

Oulaaaaa, il y en a qui se lachent ici...  ;D

J'ai (encore) modifié le logiciel pour plaire au plus grand nombre :


  • l'horloge dispose d'un arrière-plan et d'un avant-plan
  • l'horloge dispose de "composants" logiciels :

    • animation (lecture du début à la fin d'une animation)
    • heure (affichage de l'heure pendant une durée paramétrable)
    • date (affichage de la date pendant une durée paramétrable)
    • température (affichage de la température pendant une durée paramétrable)
    • logo (affichage d'un logo fixe pendant une durée paramétrable)
    • rien (affichage de la célèbre oeuvre "Néant" de Kundelitch, pour une durée paramétrable)
  • vous mettez le composant de votre choix sur le plan de votre choix
  • pour le moment, le composant "animation" ne peut pas être à la fois en arrière et en avant-plan, car je pense que ça n'a pas d'utilité

Exemple #1 :

  • arrière-plan : animation
  • avant-plan : heure, rien, date, rien, température, rien, logo, rien
=> on a en sur-impression par-dessus les animations : l'heure, la date, etc...
=> entre 2 affichages d'avant-plan, il y a une pause qui permet de profiter des animations

[youtube=600,450]lbah44mrkDI[/youtube]

Les animations ont été créées avec mame + avconv + gimp :
./mame64 bublbobl.zip -aviwrite bublbobl.avi
avconv -ss 00:00:17.0 -i bublbobl.avi -t 6 -an -vf format=rgb8,format=rgb24 -pix_fmt rgb24 bublbobl.gif

Ensuite, je crop le gif animé en 128x32 avec gimp.

Exemple #2 :

  • arrière-plan : animation, heure, animation, date, animation, température, animation, logo
  • avant-plan : rien
=> on a une animation, puis l'heure, puis une autre animation, etc...
=> l'avant-plan n'est pas utilisé, donc aucune sur-impression, on peut profiter des animations

Pour info, le logiciel fait à l'heure actuelle environ 27.000 lignes de code et 130 fichiers.  :D
Je dois encore écrire toute la partie "setup" et le contenu du serveur web intégré.
Je ne suis pas sûr de maintenir la fonction de serveur web, car il n'apporte pas grand chose par rapport au futur setup intégré. En plus, ça bouffe une quantité de RAM inouïe pour pas grand chose...

Pour le choix non-aléatoire des animations, il m'est difficile de réaliser un tri alphabétique des noms de fichiers, car ça m'oblige à tous les avoir en mémoire lors du tri et à maintenir ces noms en RAM en permanence.
S'il y a 500 fichiers, avec environ 32 octets par nom (c'est très peu), j'ai 16k de RAM rien que pour les noms.
Si on passe à 1.000 fichiers et 64 octets par nom (c'est plus réaliste), ça fait 63k de RAM de noms de fichiers, soit 50% de la RAM du processeur...
Je pense opter pour une solution plus facile : lecture d'un fichier texte présent sur la SD.
Dans ce fichier, 1 ligne = 1 nom de fichier animation ; le fichier est lu ligne par ligne et l'animation demandée est jouée.
Autre avantage, le fichier peut faire 50.000 lignes, ce n'est pas un problème, il n'est lu que ligne par ligne.
Pour générer le fichier, c'est très simple :
find anim -type f -name "*.dmd" | sort > anim.txt

Coté "production", ça restera de l'artisanal made in garage.
Je commanderai les divers composants/organes au fur et à mesure des intentions de commandes manifestées.
L'assemblage n'est vraiment pas long, c'est plus le délai de réception des composants/organes qui l'est.

Coté habillage, je ferai un essai avec du plexi. Ce sera une option avec supplément.
L'idée est d'avoir une plaque avant jolie (fumée ? translucide ? diffusante ?), et une plaque arrière technique qui va permettre l'assemblage mécanique.
Celui qui voudrait un cadre en bois le fera lui-même, car de toute façon il y a 9 chances sur 10 que celui qui soit livré ne plaise pas.  ;D


Alko

De biens belles avancées  ^-^

C'est possible d'avoir un exemple avec l'heure au second plan et l'anim au premier ?

Quand je vois l'anim "Insert coin de la vidéo" j'ai envie que l'heure soit décalée sur la gauche (pis bien centrée dans l'espace vide), c'est possible de paramétrer la position de l'heure (ou température, etc) en fonction de l'animation qui passe ? La taille de la fonte aussi ? (et tout ce qui peut être parametré en fait (la couleur si je me souviens bien))

premier plan / deuxieme plan / poistionTexte (l'heure, la température, etc) / taille texte / couleur texte
Anim1.gif, position(clock, posX, posY), tailleFonte, couleurFonte

Comme ça on cale l'heure bien où il faut sur chaque anim pour qu'elle s'intègre au mieux avec. Ça permet de profiter au mieux de l'anim et de pouvoir capter l'heure au passage.

olschool






:-)=  :-)=  :-)=  :-)=  :-)=  :-)=  :-)=
:-*  :-*  :-*  :-*  :-*  :-* :-*   :-*


Commande ferme de 1 pour moi.
Tu m'a killé avec le bubble
:D  :D  :D

<:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)  <:)
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

_n3o_

La meme pour moi !! Bubble Bobble m'a fait faire l'ultime craquage !

Je trouve que là c'est vraiment top ^-^



Iro

Tu viens d'achever tout le monde avec cette possibilité de ripper Mame :D

Par contre, c'est dommage d'abandonné le serveur web. Car paramétrer à la souris/clavier, c'est quand même bien plus pratique que des boutons avance/recul/validation.
Et surtout l'horloge peut rester en place pour lors de quelques modifications

En tout cas, c'est super  ^-^
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

Alko

Citation de: Iro le Mardi 20 Décembre 2016, 10:00:54 AM
Tu viens d'achever tout le monde avec cette possibilité de ripper Mame :D

Par contre, c'est dommage d'abandonné le serveur web. Car paramétrer à la souris/clavier, c'est quand même bien plus pratique que des boutons avance/recul/validation.
Et surtout l'horloge peut rester en place pour lors de quelques modifications

En tout cas, c'est super  ^-^

Si, j'ai bien compris on sort la carte mémoire et on travail le fichier pour les réglages. Un AR vers l'horloge pour gagner la moitié de mémoire c'est quand même pas trop cher payé.

spotting

Il y a aussi la possibilité de configurer via le port IR..
:-*

Little_Rabbit

Salut,

C'est génial toutes ces nouvelles possibilités !  ^-^

Là tu contentes tout le monde avec autant de paramètres et réglages disponibles !

Le principe d'une liste d'anim dans un fichier texte plutôt qu'un tri alphabétique est parfait. Je m'étais aussi fait la réflexion de l'espace occupé en mémoire pour cette liste triée... En plus, un tel fichier peut être un moyen aisé de préciser tel ou tel paramètre pour telle ou telle animation :).

Encore bravo !

A+

Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

f4brice

L'animation en 1er plan ne donnera pas grand chose chose car les gifs animés que j'ai ne définissent aucune zone transparente.

Pour positionner l'affichage de l'heure par rapport à l'animation, il faut rester un peu réaliste : les images animées ne sont pas "analysées" pour tenter de déterminer une zone où l'affichage de l'heure gênerait le moins.

Les fontes ont une taille définie au moment où la fonte est créée.
Pour changer de taille, il suffit de changer de fonte.

La modification des réglages se fera sans décrocher l'horloge du mur, grâce à la télécommande IR.
C'est pour ça que le serveur web me semble superflu, surtout qu'il a besoin de beaucoup de RAM et que je ne suis pas sûr d'être capable de réaliser ce qu'exige le client/navigateur (il peut demander qu'on lui transmette les données compressées, chose que je ne ferai pas).

Il ne devrait y avoit besoin d'accéder à l'horloge que pour la SD, pour ajouter/supprimer des animations.

Je ne suis pas satisfait de la conversion en gif de l'enregistrement vidéo fait par mame.
L'outil avconv a inventé des couleurs là où il ne fallait pas et a même fait du tramage.
Il faut que je regarde comment améliorer ça.  ;)

Alko

Citation de: f4brice le Mardi 20 Décembre 2016, 13:44:42 PM
L'animation en 1er plan ne donnera pas grand chose chose car les gifs animés que j'ai ne définissent aucune zone transparente.

Mais avec un gif avec un fond transparent ça fonctionnerait ?

Citation de: f4brice le Mardi 20 Décembre 2016, 13:44:42 PM
Pour positionner l'affichage de l'heure par rapport à l'animation, il faut rester un peu réaliste : les images animées ne sont pas "analysées" pour tenter de déterminer une zone où l'affichage de l'heure gênerait le moins.
Je parlais de le faire à la mano (enfin à l'oeil) pour chaque anim.

Ici pour celle-ci :



On a 42 px pour l'horloge et 32 (+8 de marge à droite) pour l'anim.
Sur 128px de large moi l'horloge je la ferais se positionner à (128-(32+8)-42) / 2 = 23px -> au 24ème pixel en partant de la gauche.
Ça ferait 23px(transparent) 42px(heure) 23px(transparent) 40px(anim), ce qui pour moi est beaucoup mieux intégré.

Je serais même du genre à pousser encore plus loin à avoir la même anim mais avec un panneau vide (ou plein), et faire afficher l'heure dedans au moment où le panneau est de face (et la faire disparaitre quand il n'y est plus) avec une fonte de moitié de celle visible sur la vidéo, càd 4x5px + 1 d'espace, mais je sais pas si le rendu en mode lumineux est bien).


Citation de: f4brice le Mardi 20 Décembre 2016, 13:44:42 PM
Les fontes ont une taille définie au moment où la fonte est créée.
Pour changer de taille, il suffit de changer de fonte.
Si c'est paramètrable par anim c'est cool.

Qui a dit perfectionniste ?  :P

Iro

#91
Citation de: Alko le Mardi 20 Décembre 2016, 12:02:18 PM
Si, j'ai bien compris on sort la carte mémoire et on travail le fichier pour les réglages. Un AR vers l'horloge pour gagner la moitié de mémoire c'est quand même pas trop cher payé.
Tous dépend où est placée ton horloge.

Citation de: f4brice le Mardi 20 Décembre 2016, 13:44:42 PM
La modification des réglages se fera sans décrocher l'horloge du mur, grâce à la télécommande IR.
Alors il faudrait peut être limiter les réglages. Parce que régler le freeplay sur mon flipper est à chaque fois une plaie :D
J'ai l'impression qu'il sera possible de régler au petits oignons un cycle d'affichage. Alors avec 3 boutons, j'ai du mal a voir comment cela pourrait être ergonomique  :-\  :)

C'est tout aussi gourmand d'externaliser cette partie ? On fait la configuration en offline et on l'upload une fois finie
:)
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

ian57

Super cette horloge à base de matrice de LED ... je vais lire ce topic du début ;)

Bravo F4brice
"Après faut pas te flageller pour notre debilisme :D" Sushy18 à ian57









gottlieb

A la maison  ;)
bornes: racecab speed up Gaelco et Ridge racer, table cocktail Taito SI part II ,cockpit Sega Space tactics, 1 borne Karateco, 3 bornes Jeutel, tactile megatouch , Naomi 1, Naomi 2, title fight sega, Time crisis 2 et 3 DX, HOTD2 et 1 mini borne enfant
flipper: silver slugger, pin bot, Whitewater,Indianapolis 500 Earth wind and fire
Billard: superleague diplomat
dart: Lowen royaldarts ...
Pashislot: Hokuto no ken
Jukebox jupiter mirage 120 et Atari Hit Parade 144
babyfoot Roberto sport
Ma gaming room :-*

Sunn

F4brice, au prochain bgs je sens que beaucoup vont vouloir partager ta chambre... il va falloir être ouvert d'esprit   :P

Stek

Ya pas que de l'esprit qu'il va falloir être ouvert  :-\