Projet : Flipper - Réflexions

Genèse

Après avoir construit une borne d'arcade avec les enfants, il semble que l'étape suivante soit le flipper (ou plus communément appelé le pincab, flipper étant le nom du dauphin de la série télé éponyme). Il faut tous d'abord (je pense) avoir un retour sur l'historique de ces machines, pour cela il y a le lien suivant : https://www.multibille.fr/wiki/Histoire_du_flipper.

Les flippers deviennent de nos jours de plus en plus virtuel... on appel cela les 'virtual pinball'. Et heureusement car fabriquer un 'vrai' flipper demande une technique, un historique et des compétences qui.... me sont inconnus et même inaccessibles.

Attention le monde du flipper n'est pas celui de l'arcade, les tables ne sont pas mises en pack comme les anciens jeux d'arcade. Certaines tables sont d'ailleurs mises a jour régulièrement. Les site pour les trouver :

  • https://www.vpforums.org
  • https://vpuniverse.com

L'ensemble des sites (en anglais) demandent de s'enregistrer... dommage cela aurait été plus simple d'avoir une liste et de télécharger l'ensemble (par theme/ période / constructeur, etc...). Il existe cependant des sites regroupant les tables par catégories mais ce n'est absolument pas la philosophie du pincab. Certaines tables ont meme ete interdites par les sociétés de flippers car trop proche de la table de flipper originale (cf. ghostbuster dite "la table interdite")

Réflexions et recherches

La terminologie

Commençons par les éléments constitutif du meuble du flipper :

  • Playfield c'est l'espace principal de jeu, la ou la/les bille(s) roulent
  • Backglass c'est l'élément du fond du flipper, affichant historiquement les scores, et sur les flippers récents ils affichent images et/ou vidéos
  • DMD c'est le petit écran en bas du backglass (zone appelé la grille) sur les flippers récents on l'on trouve une animation et/ou les scores, c'est un écran au format matrice de points
  • Topper c'est le ou les éléments situé complément au dessus du backglass généralement des objets lié au thème du flipper, certains rajoutent un écran !
  • Backboard c'est l'espace situé entre le playfield et le DMD. Les gens y installent généralement un mur de led ou des stroboscopes

Système et logiciel

Il semble que pour les flippers, les logiciels soient entièrement développé avec directX et donc Windows. De la même façon que l'arcade, il existe des programmes dit de 'frontend' permettant de lancer les émulateurs. Le mieux est de tester les différents logiciels sur un pc existant avant de se lancer complément dans un projet qui peut coûter quand même pas loin de 5000€/10000€. Surprenant qu'il n'y ai pas de distributions dédié tournant sous linux façon retroarch ou lakka... une idée a creuser et a proposer...

Matériel informatique

Afin de mettre en place un flipper moderne virtuelle, il faut :

  • 2 ou 3 écrans (1 pour le playfield, 1 pour le backglass, 1 pour le dmd)
  • 1 PC sous windows avec une carte graphique faisant de la 3D (ATI radeon ou Nvidia) et permettant de brancher 2 ou 3 écrans

J'ai essayé avec virtualbox afin de simuler 3 écrans, mais les performances lié à la 3D sont trop pourri (pourtant pc à base de ryzen7/disqueM2/Nvidia GTX1650). Donc a oublier. Attaquons nous aux émulateurs....enfin.... plus des éditeurs 3D de tables de flippers...

Les logiciels

Pour tous les logiciels testé, les fichiers des Tables doivent être placé dans le répertoire Tables respectif. On peux placer chaque Table de flippers dans son propre répertoire. Attention alors il faudra peut être y placer certains fichiers lié a la table et a la configuration de l'affichage de celle-ci. certaines ont besoins de rom 'mame' (avec tous ce que cela implique de dependances entres-elles, comme dans le monde de l'arcade), d'autres de musiques type wav/mp3...

Future Pinball

FuturePinball

Il semble que ce logiciel ne soit plus développé depuis 2010 ! mais il semble encore fonctionnel avec windows 10 On le télécharge, on installe. Ensuite on télécharge une table, on lance le logiciel, check des menus, check des préférences d'affichages...et paf... cela ne marche pas :-) les flippers ne fonctionnent pas, les lampes ne clignotent pas.... enfin bref rien ne fonctionne comme il devrait a se dire que le soft est complètement bugué...
Bon bref après plusieurs tentatives et quelques recherches il faut lancer le programme en mode administrateur (clic droit sur l’exécutable et choisir lancer en tant qu'administrateur). Seul problème la table d'exemple du site n'est pas centré (et y'a une belle erreur lorsque l'on veux lancer la bille). Et la pour résoudre ce problème intervient le logiciel BAM

Par défaut :

  • Pour Lancer la table : F5
  • Pour Sortir de la table : Echap
  • Les flips sont actionné par les touches 'shift' gauche et droite
  • Le tire-bille est lui actif avec la touche 'enter'
BAM

BAM (Better Arcade Mode - ou meuilleur mode d'arcade) est le complément indispensable a FuturePinball. Il va permettre de configurer l'affichage de Future Pinball de manière beaucoup plus simple que de rentrer dans les fichiers de configuration. Il faut lancer le programme FPLoader.exe (en administrateur) en lieu et place de FuturePinball. L’intégration à Future Pinball est très simple, un nouveau Menu s’affichera en appuyant sur la touche « Q » quand on se trouvera sur une table en jeux. A noter que celui-ci évolue toujours donc a vérifier si de nouvelles versions existe..

Pour les pc ancien, la dernière version a supporter OpenGL2 est la version 1.2. toutes les autres aurons besoin d'une carte video supportant opengl3 et plus...

Future DMD

C'est un logiciel permettant de régler la position de l’affichage de l’ensemble des dmd de chacune des tables de Future pinball quand ceux-ci en possèdent. La configuration s'effectue en une seule opération.

Les fichiers sont a mettre dans le répertoire de FuturePinball, il faut juste ensuite lancer l’exécutable et cliquer droit sur la fenêtre noir qui apparait pour redimensionner et placer correctement le DMD virtuel que l'on peut du coup placer sur le 3eme écran a la bonne place et dans les dimensions voulu. Le programme se lance de manière autonome et avant BAM (le mieux étant de configurer le lancement et l'arret du programme via un script).

Visual Pinball

Logiciel dont les sources sont disponibles et qui continue d'être développé. L'installeur se trouve sur le site https://github.com/vpinball/vpinball bon une fois téléchargé l'archive se décompresse et lorsqu'on lance le logiciel il y a une table de démo qui se lance en plein écran mais.... qui fonctionne :) c'est déjà ca ! On se lance donc dans la recherche d'une table au hasard.. je prend la table star-trek bally de 1979 mais la au moment de charger boom erreur... il semble manquer un fichier. En effet il semble que cette table fonctionne avec MAME.... qui dit MAME dit fichier ROM... héhé bon bah il va falloir trouver le fichier zip de la ROM pour la bonne version de la table que l'on va vouloir...

Visual Pinmame est un programme Windows qui émule le fonctionnement des flippers par le biais des 'roms'. Visual Pinmame est basé sur le programme DOS Pinmame. Il s'agit d'un supplément ('add-on') au code source du programme MAME. En association avec Visual Pinball, Visual Pinmame émule le fonctionnement interne du flipper (comme par exemple le fonctionnement des circuits électroniques, le ou les afficheurs, Dot Matrix, DMD….etc) et Visual Pinball se charge de représenter graphiquement le fonctionnement des objets ou éléments du flipper crées sur la table. l'interaction entre les 2 logiciels s'effectue par un systeme dans windows appelé 'COM object' permetant a 2 programmes distinct d'interragir entre eux.

Depuis le setup de visualPinmame il est possible (je dirai meme obligatoire !) de tester les fichiers roms afin de verifier si le fichier que l'on a téléchargé et mis dans le repertoire 'rom' est fonctionnel. Il est possible aussi d'activer le dmd et des extentions a cet endroit.

Une fois trouvé il faut placer le fichier .vpx dans le répertoire 'Tables' et le fichier .zip de la rom dans le répertoire "VPinMAME/roms". une fois fait on lance la table (Fichier->ouvrir) et hop ca semble fonctionner sauf que....

Avec un seul écran, VP10 affiche le playfield, avec 2 écrans, il faut lui indiquer sur quel écran affiché le backglass et le dmd (ces 2 derniers étant placé sur le second écran. La intervient 2 logiciels (oui ca serait trop simple de le faire dans le logiciel de base..). Par defaut visualPinballX active le B2S. on peux le desactiver dans les options. (A noter également que les tables sont initialisé via un script visualBasic intégré dans le fichier.vpx. celui-ci peut etre modifie afin d'activer ou non le B2S. Le backglass est géré ici par un fichier .directB2S qu'il faut mettre avec le fichier .vpx de la table (le fichier doit avoir exactement le meme nom que le fichier vpx). Une fois réalisé il faut lancer le fichier Tables/B2S_Setup.exe qui va permettre de générer un fichier ScreenRes.txt de configuration des écrans 1, 2 et placement du DMD via taille et décalage par rapport a la résolution total des 2 premiers écrans...

Pour que tous fonctionne correctement dans windows les écrans doivent-etre mis de gauche a droite et bien aligné par le coin supérieur gauche, comme l'image ci-dessous : pour cela les ecrans sont numéroté dans la configuration windows, dans le drivers mais aussi dans la base de registre windows... il est TRES important au premier demarrage de windows de laissé branché l'écran n°1 représentant le playfield, puis de brancher les suivants dans l'ordre.

un petit programme permet d'effectuer un reset de la numérotation dans la base de registre si les écrans viennent à évoluer....TODO: rajouter le lien

Pour la gestion des DMD lorsque l'on a 2 ou 3 écran, il faut passer par un autre logiciel logiciel (visualPinMAME gérant d'une facon basique le dmd). Il existe different programmes pour gerer l'affichage des dmds dans les tables :

  • UltraDMD
  • setDMD
  • flexDMD

ce dernier etant fonctionnel et toujours en developpement nous le choisirons pour l'installer dans le pincab. flexdmd permet de gerer les dmd de pinmame et d'ultradmd en meme temps.

Nous telechargerons donc la derniere version ici : https://github.com/vbousquet/flexdmd/releases . c'est un fichier zip a decompresser dans le repertoire de VPinMAME. Il faut ensuite telecharger l'interface de flexdmd avec vpinmame, cette interface permet d'utiliser flexdmd mais aussi de vrai dalles dmd. : https://github.com/freezy/dmd-extensions/releases (decompresser les version 32 et 64 bits et placer les fichiers dans le répertoire VPinMAME également). FlexDMDUI.exe permet de tester et placer correctement le DMD sur le bon écran au bon endroit. il permet aussi de redimensionner le dmd au besoin. Une fois fait le DMD est place pour l'ensemble des tables.

Afin de pouvoir l'utiliser il faut enregistrer les dll dans windows afin que celles-ci soit utilisable et reconnu par vPinMAME en tant que 'COM object'. Une fois enregistre, on peut lancer le test d'une rom depuis le setup.exe de vpinmame. Par defaut flexdmd ne sera pas utiliser pour l'utiliser il faut l'activer dans VPinMAME (voir du coté des options, dmddevice.dll doit etre coché).

a tester et a compléter

PinballFX2 et 3

Logiciel payant... on oublie

Pinball Arcade

Logiciel payant... on oublie

Les Front-end

PinballX

Il s'agit ici je pense du frontend qui reviens le plus sur les différents tuto que l'on peut trouver sur Internet. Il s'installe facilement et se configure aisément également :

Celui-ci semble gérer plusieurs logiciels différents pour pouvoir lancer les tables de flippers. plutôt pas mal à première vue. Rien de bien compliqué dans l'installation et la configuration de ce logiciel.

Pinballx-setup

PinUP Popper

Pour ce front-end ca se passe ici : https://www.nailbuster.com/wikipinup/doku.php?id=start un peu (beaucoup !) plus compliqué en terme de prise de main et d'installation. Pas de doc en francais (mais des tutos sont disponibles en cherchant bien).

L'installation et la configuration de ce logiciel se passe en 2 étapes, télécharger d'abord la partie player (fichier zip). Cette partie permettra d'animer les backglass des tables, de lancer des vidéos pendant les parties, etc...La partie front-end a proprement dit s'installe en second point avec un autre fichier zip. Une fois le 1er zip décompresser dans un répertoire genre "C:\PinupSystem" il faut lancer le fichier permettant de placer les différents éléments d'affichage par rapport aux écrans que nous avons.

Pour Visual Pinball 10 :

  • Dans le répertoire Tables il faut créer le répertoire 'plugins' et mettre un lien vers le répertoire PinUPPlayerB2SDriver de Pinup.
  • Les fichiers dans PinUPPlayerVPinMame doivent etre copié dans VisualPinball\VPinMAME\ et il faut ensuite lancer le .bat copié (en admin)

Pour la seconde partie, une fois la seconde archive zip décompressé dans le même répertoire que la premiere, il faut lancer le fichier PinUpMenuSetup.exe pour la configuration de tous l'ensemble, il y a pas mal d'éléments a configurer et il faut bien passer sur tous les écrans. Une fois réalisé il suffit de lancer PinUPMenu.exe et on se retrouve sur le front-end.... c'est ce programme qu'il faudra lancer automatiquement au démarrage de windows..

Conclusion sur la partie logiciel

Donc il existe une floppé de logiciel qui gère leur propre format de table de flipper et selon les tables l'affichage des DMD et Backglass est variable et géré avec des logiciels différents... une hérésie et rien de bien centralisé ou standardisé si ce n'est les noms des éléments....les tables de vpx sont également configurable en partie dans des scripts visuabasic, et donc selon la configuration que l'on a il faut allez modifier des valeurs dans les scripts...Attention donc a la simplicité apparante de la chose mais qui peux rapidement je pense devenir un enfer pour celui qui n'a aucune notion de coding informatique !

Haut de page