Gamoover

[move]Bienvenue sur Gamoover, portail francophone de l'arcade.

[HORODEL] Compatibilié Media GoDMD/Pin2DMD Editor ?

Démarré par Sebinouse, Mercredi 05 Décembre 2018, 11:19:44 AM

Sebinouse

Bonjour a tous !

je découvre votre projet après avoir lu son pendant teton : la GoDMD  <:)

Je ne vous cache que je suis BEAUCOUP plus à l'aise sur Gamoov que sur ce site Allemand ... par contre je suis aussi BEAUCOUP plus FLIPPER qu'Arcade  :o

Ma question est simple : peut-on utiliser les media GoDMD avec l'HORODEL (les deux sont basés sur une STM32F4 Discovery Board / VET6 Board) car cela à l'air super simple pour dumper des Rom de Flip et créer moult séquences cool !

Il utilise Pin2DMD editor pour info.

https://youtu.be/w7PH3JW33OE

https://youtu.be/DRtNnvmVkvg



Aganyte

Il n'y avait pas une option pour sortir un fichier txt sur ce logiciel ?

Sebinouse

je crois (mais je suis vraiment pas sûr) que ça utilise un txt pour les playlist et les transitions.

Pour les animations cela à l'air d'utiliser des *.ani ? on doit pouvoir aussi sortir des GIF qui eux sont gérés par l'HORLODEL

lien vers la doc de Pin2DMD Editor : https://pin2dmd.com/editor/

fennek

Citation de: aganyte le Mercredi 05 Décembre 2018, 16:17:44 PM
Il n'y avait pas une option pour sortir un fichier txt sur ce logiciel ?

Tu veux dire ce genre de chose ?

24_001
--------------------------------
animationId:       0x0001
nStoredFrames:         88
byteOffset:    0x00C35000
nFrameEntries:         112
width:               0x57
height:              0x20
unknowns: 01 02 01 01 01 2E 03 2F 3B 01
  1:105   2: 50   3: 50   4: 50   5: 50   6: 50   7:105   8: 50
  9: 50  10: 50  11: 50  12: 50  13: 50  14: 50  15: 50  16: 50
17: 50  18: 50  19:105  20:105  21: 50  22: 50  23: 50  24: 50
25: 50  26: 50  27: 50  28: 50  29: 50  30:105  31: 50  32: 50
33: 50  34: 50  35: 50  36: 50  37: 50  38: 50  39: 50  40: 50
41: 50  42: 50  43:105  44: 50  45: 50  46: 50  47: 50  48: 50
49: 50  50: 50  51: 50  52: 50  53: 50  54: 50  55: 50  53: 50
54: 50  55: 50  53: 50  54: 50  55: 50  53: 50  54: 50  55: 50
53: 50  54: 50  55: 50  53: 50  54: 50  55: 50  53: 50  54: 50
55: 50  53: 50  54: 50  55: 50  53: 50  54: 50  55: 50  56: 50
57: 50  58: 50  59: 50  60: 50  61: 50  62: 50  63: 50  64: 50
65: 50  66: 50  67: 50  68: 50  69: 50  70: 50  71: 50  72: 50
73: 50  74: 50  75: 50  76: 50  77: 50  78: 50  79: 50  80: 50
81: 50  82: 50  83: 50  84: 50  85: 50  86: 50  87: 50  88:115


24_002
--------------------------------
animationId:       0x0002
nStoredFrames:         44
byteOffset:    0x00C61200
nFrameEntries:         56
width:               0x57
height:              0x20
unknowns: 01 02 01 01 01 5A 0A 01 2C 01
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  9: 50  10: 50  11: 50  12: 50   1: 50   2: 50   3: 50   4: 50
  5: 50   6: 50   7: 50   8: 50   9: 50  10: 50  11: 50  12: 50
13: 50  14: 50  15: 50  16: 50  17: 50  18: 50  19: 50  20: 50
21: 50  22: 50  23: 50  24: 50  25: 50  26: 50  27: 50  28: 50
29: 50  30: 50  31: 50  32: 50  33: 50  34: 50  35: 50  36: 50
37: 50  38: 50  39: 50  40: 50  41: 50  42: 50  43: 50  44: 50


24_003
--------------------------------
animationId:       0x0003
nStoredFrames:         6
byteOffset:    0x00C77400
nFrameEntries:         24
width:               0x29
height:              0x20
unknowns: 01 01 00 00 00 00 00 00 00 00
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   1: 50   2: 50
  3: 50   4: 50   5: 50   6: 50   1: 50   2: 50   3: 50   4: 50
  5: 50   6: 50   1: 50   2: 50   3: 50   4: 50   5: 50   6: 50


24_004
--------------------------------
animationId:       0x0004
nStoredFrames:         10
byteOffset:    0x00C7A600
nFrameEntries:         30
width:               0x22
height:              0x20
unknowns: 01 01 00 00 00 00 00 00 00 00
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  9: 50  10: 50   1: 50   2: 50   3: 50   4: 50   5: 50   6: 50
  7: 50   8: 50   9: 50  10: 50   1: 50   2: 50   3: 50   4: 50
  5: 50   6: 50   7: 50   8: 50   9: 50  10: 50

24_005
--------------------------------
animationId:       0x0005
nStoredFrames:         5
byteOffset:    0x00C7F800
nFrameEntries:         30
width:               0x83
height:              0x20
unknowns: 01 01 00 00 00 00 00 00 00 01
  1: 50   2: 50   3: 50   4: 50   5: 50   1: 50   2: 50   3: 50
  4: 50   5: 50   1: 50   2: 50   3: 50   4: 50   5: 50   1: 50
  2: 50   3: 50   4: 50   5: 50   1: 50   2: 50   3: 50   4: 50
  5: 50   1: 50   2: 50   3: 50   4: 50   5: 50

24_006
--------------------------------
animationId:       0x0006
nStoredFrames:         41
byteOffset:    0x00C82200
nFrameEntries:         41
width:               0x57
height:              0x20
unknowns: 01 02 01 01 01 05 0A 01 29 01
  1:105   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  9: 50  10: 50  11: 50  12: 50  13: 50  14: 50  15: 50  16: 50
17: 50  18: 50  19: 50  20: 50  21: 50  22: 50  23: 50  24: 50
25: 50  26: 50  27: 50  28: 50  29: 50  30: 50  31: 50  32: 50
33: 50  34: 50  35: 50  36: 50  37: 50  38: 50  39: 50  40: 50
41:115

24_007
--------------------------------
animationId:       0x0007
nStoredFrames:         8
byteOffset:    0x00C96C00
nFrameEntries:         48
width:               0xAE
height:              0x20
unknowns: 01 01 00 00 00 00 00 00 00 01
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50


24_008
--------------------------------
animationId:       0x0008
nStoredFrames:         29
byteOffset:    0x00C9AE00
nFrameEntries:         29
width:               0x17
height:              0x1D
unknowns: 01 02 01 01 01 03 0A 01 23 01
  1:105   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  9: 50  10: 50  11:110  12:105  13: 50  14: 50  15: 50  16: 50
17: 50  18: 50  19: 50  20: 50  21:105  22: 50  23: 50  24: 50
25: 50  26: 50  27: 50  28: 50  29:115

24_009
--------------------------------
animationId:       0x0009
nStoredFrames:         63
byteOffset:    0x00CA9800
nFrameEntries:         80
width:               0x57
height:              0x20
unknowns: 01 02 01 01 01 03 0A 01 3F 00
  1: 50   2: 50   3: 50   4: 50   5: 50   6: 50   7: 50   8: 50
  9: 50  10: 50  11: 50  12: 50  13: 50  14: 50  15: 50  16: 50
17: 50  18: 50  19: 50  20: 50  21: 50  22: 50  23: 50  24: 50
25: 50  26: 50  27: 50  28: 50  29: 50  30: 50  31: 50  32: 50
33: 50  34: 50  35: 50  36: 50  37: 50  38: 50  39: 50  40: 50
41: 50  42: 50  43: 50  44: 50  45: 50  46: 50  47: 50  48: 50
49: 50  50: 50  51: 50  52: 50  53: 50  54: 50  55: 50  56: 50
57: 50  58: 50  59: 50  60: 50  61: 50  62: 50  63: 50  47: 50
48: 50  49: 50  50: 50  51: 50  52: 50  53: 50  54: 50  55: 50
56: 50  57: 50  58: 50  59: 50  60: 50  61: 50  62: 50  63: 50



Aganyte

Non, de mémoire ça ressemblait à 32 lignes de 128 chiffres, on arrivait à discerner les images.

fennek

Zut, si jamais qq'un sait comment ça se lit je veux bien comprendre ...

Sebinouse

#6
dans le lien de la doc de Pin2DMD Editor, ils parlent de :

CitationThis files holds one or more animations and its frame data. It is the ,,native" format for the editor. All numbers are stored in "BIG_ENDIAN" order, that means most significat byte first.

Structure of the file:

4 Byte Header: ANIM
2 Byte Version: 00 01
2 Byte Anzahl der Animationen: 00 02
N Byte Name der Animation in modified UTF-8
   first 2 Byte gives length of string incl 2 byte length header
2 Byte: cycles
2 Byte: hold
2 Byte: clockFrom
1 Byte: clock small
1 Byte: clock in front
2 Byte: xoffset for small clock
2 Byte: yoffset for small clock
2 Byte: refresh delay in millis
1 Byte: Animation Type (not relevant)
1 Byte: fsk tag
2 Byte: frame set count


each frame consists of 2 or 3 planes and optionally a mask plane
each plane is tagged with its type 0,1,2 for normal bitplanes in
grayscale animations or M ( for mask, the order is always m,0,1,2
where m and 2 are optional

foreach frame:
    2 Byte: plane size in Byte. normally 512 byte
    2 Byte: frame duration in ms
    1 Byte: number of planes
    foreach plane:
        1 Byte: type of plane, m,0,1,2 see above
        plane size Byte frame data: 1 Bit = 1 Pixel
        Bit 7 is pixel on the left (BIG_ENDIAN)
    end
end

je ne sais pas si toi ça te parle  ;D

Mais si ça sort un gif, c'est gagné non ?

EDIT :

bon en fait il suffit d'utiliser une version spéciale de VPinMAME (dispo ICI) qui après avoir créé un dossier c:/tmp/ va enregistrer la session dans un fichier .txt (format visuel dont tu parles, voir à 2 minutes 30 secondes de cette video qu'il faut ensuite compresser pour pouvoir l'exploiter dans Pin2DMD qui va créer les fameux *.ani et qui devrait pouvoir aussi sortit des *.gif ...

Aganyte

Oui, c'est bien ça, même si je n'ai jamais réussi à faire fonctionner cette version qui sort un txt dans le répertoire tmp. Je dois pouvoir voir avec Iro pour faire un convertisseur txt vers l'horlodel.

Sebinouse

Cool !

Bon je commande le Matos ... et je m'y colle dès que j'ai fini l'assemblage  :-)=

Lonewolf

J'ai desesperement cherché a choper des gif des derniers stern (metallica et acdc entre autres) sans jamais y parvenir. Ça serait jouable finalement?

Sebinouse

#10
Non seulement c'est jouable mais c'est super simple !  =:))

1. Avoir une version récente de VPinMAMe (2.8 et plus je crois et laisser tomber la version citée précédemment)
2. dans le dossier de VPinMame créer un dossier "DmdDump"
3. Lancer VPX et faire une petite partie tranquillou avec les options "Use external DMD" et "ShowDMD" activées dans le menu VPinMame de la table (touche F1 pour l'afficher, si elles ne sont pas cochées ... les cocher ... fermer complètement VPX et relancer la table)
4. un dump NomDeLaROM.txt est créé dans le dossier "DmdDump"
5. le compresser en .gz
6. Téléchager Pin2DMD Editor : https://bintray.com/sker65/pin2dmd
7. Le lancer, charger la scene .gz, faire la selection et exporter en gif ...

Voila

5 minutes max  ^-^

GIF dot size 1


GIF dot size 10
mtl_164_10dot.gif

TXT.GZ
mtl_164.txt.gz

ANI
mtl_164.ani

Aganyte

dès que j'ai 5 minutes, je fais un petit script en python pour convertir les txt pour l'horlodel  ;)

Edit: J'ai téléchargé ton txt pour m'en servir de base d'essai.

moviemaniac52

#12
Tiens, je viens de faire imprimer des pcb go dmd, dès que j'ai tout je vais tester tout ça...wifi, mise a l'heure automatique, temperature exterieur, telecommande, detecteur de mouvement , telecommande, et ambilight....je vais tester tout ça et je vous ferez mon retour :) dailleurs il me.restera 9 pcb si il y a des interesses...

fennek


Sebinouse

#14
Citation de: moviemaniac52 le Jeudi 06 Décembre 2018, 18:15:36 PM
Tiens, je viens de faire imprimer des pcb go dmd, dès que j'ai tout je vais tester tout ça...wifi, mise a l'heure automatique, temperature exterieur, telecommande, detecteur de mouvement , telecommande, et ambilight....je vais tester tout ça et je vous ferez mon retour :) dailleurs il me.restera 9 pcb si il y a des interesses...

Et bien oui grave ! Je t'en prends deux ! Tu les fais à combien ?
Et si tu as la liste du matos a commander je suis preneur aussi ... je vais faire chauffer aliexpress !

Citation de: fennek le Jeudi 06 Décembre 2018, 21:58:14 PM
J'en ai 70 à mettre à disposition dans ce genre

acd_168_dump.txt.gz
afm_113b_dump.txt.gz
apollo13_dump.txt.gz
austin_dump.txt.gz

...

On met en commun ?

Grave ! J'en ai aucun perso c'était juste un essai ... :o
Mais je compléterai avec plaisir au fur et à mesure de l'avancement de mon pincab ...

Aganyte

Citation de: Sebinouse le Jeudi 06 Décembre 2018, 14:51:20 PM
Non seulement c'est jouable mais c'est super simple !  =:))

1. Avoir une version récente de VPinMAMe (2.8 et plus je crois et laisser tomber la version citée précédemment)
2. dans le dossier de VPinMame créer un dossier "DmdDump"
3. Lancer VPX et faire une petite partie tranquillou avec les options "Use external DMD" et "ShowDMD" activées dans le menu VPinMame de la table (touche F1 pour l'afficher, si elles ne sont pas cochées ... les cocher ... fermer complètement VPX et relancer la table)
4. un dump NomDeLaROM.txt est créé dans le dossier "DmdDump"
5. le compresser en .gz
6. Téléchager Pin2DMD Editor : https://bintray.com/sker65/pin2dmd
7. Le lancer, charger la scene .gz, faire la selection et exporter en gif ...

Voila

5 minutes max  ^-^

GIF dot size 1


GIF dot size 10
mtl_164_10dot.gif

TXT.GZ
mtl_164.txt.gz

ANI
mtl_164.ani

Bon voila, j'ai codé un petit bout de script en python pour passer d'un .txt à un .bin compatible avec l'horlodel (et le scripteur d'Iro)....Idéalement, il faudrait voir avec Iro pour l'intégrer au scripteur.

Pour le moment, je n'ai fait qu'un script pour le rouge. Je ferais également un script pour le vert et un pour le bleu (attention avec le bleu car il n'aura que 4 nuances contre 8 pour le rouge et le vert)

le résultat en rouge avec le fichier que vous m'avez donné

https://www.youtube.com/watch?v=VjCEjLLMS3I

Il faudra régler la vitesse depuis le scripteur  ;)