Borne d'arcade
Une borne d'arcade est un meuble contenant un jeu vidéo payant dit « jeu vidéo d'arcade ». Dans notre cas ce sera entièrement gratuit !
Le projet est une reprise partielle de l'ancien projet de borne d'arcade.
Vue d'ensemble
Système et programmes
- Ubuntu 16.04 LTS : le système d'exploitation.
- Attract Mode : Le front-end, qui s'occupe de l'affichage du menu de sélection des jeux.
Organisation du /home
/home/ginfo/mame/roms
: contient les dossiers des roms des jeux sous forme d'archives zip pour Mame
Hardware
Les touches sont de simples interrupteurs qu'on relie à une carte programmable émulant un clavier. La carte en question est une carte I-PAC.
La borne est constitué d'un ordinateur (gracieusement donné par le CRI), d'un écran (qu'il faut acheter).
Le Pad de bouton, constitué de 20 boutons et 2 joysticks, est relier en USB au PC, et reconnu comme un clavier.
Pour cela, on a utilisé un vieux clavier, et connecter les boutons à leurs touches.
Le Clavier, pour utiliser moins de bouton virtuellement, utilise plusieurs “masses”, ainsi, chaque touche du clavier est une combinaisons de partie positif et de “masses”
Installation
Système d'exploitation
On fait bien attention à installer Ubuntu 16.04 LTS pour pouvoir installer facilement Attract Mode
On installe avec les paramètres par défaut, le nom d'utilisateur ginfo et le nom de la machine arcade.
Installation de Attract Mode
Le logiciel ne fait pas parti des dépôts par défaut de Ubuntu, il est sur un dépôt privé qu'on doit ajouter manuellement : https://launchpad.net/~daveg/+archive/ubuntu/attract
$> sudo add-apt-repository ppa:daveg/attract $> sudo apt-get update
Une fois le dépôt ajouté on peut installer le logiciel :
$> sudo apt-get install attract
L'installation devrait être assez rapide, pour vérifier que tout se lance bien, on lance la commande attract
$> attract
Le front-end devrait apparaître, mais il est actuellement vide : Il faut installer les émulateurs !
Installation des émulateurs
On se contente dans un premier temps d'installer uniquement Mame, qui est l'émulateur principal pour les jeux d'arcade.
$> sudo apt-get install mame
L’exécutable de mame est situé à /usr/games/mame
, il faudra le spécifier dans la configuration de Attract.
Installation du thème du front end
On installe le thème flat_blue du front-end. Pour le télécharger, se rendre ici : http://www.onyxarcade.com/flat_blue.html
Une fois téléchargé, on le décompresse et on place le dossier flat_blue dans /usr/share/attract/layouts
. Ce dossier appartient normalement à root, on va donc copier en console.
$> cp -R flat_blue /usr/share/attract/layouts
Rectification d'un bug du thème
Une fois ceci fait, il faut renommer tous les scripts dans le dossier scripts du thème pour qu'ils soient en minuscule. En effet le thème a été fait pour Windows où le système de fichier est insensible à la casse, mais sur linux c'est différent…
$> cd /usr/share/attract/layouts/flat_blue/scripts $> sudo find . -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Modification du thème
Il reste maintenant pour finir ces modifications l'ajout du logo du GInfo et de l'UAECM (conformément à l'AAP pour financer la borne).
Pour cela on fait une image de 180×600 contenant les deux logos en colonne, on l'appelle logos.png
et on la met dans le dossier /usr/share/attract/layouts/flat_blue/images/
.
On va modifier un des scripts pour ajouter l'affichage. Plus précisément le fichier /usr/share/attract/layouts/flat_blue/scripts/infopanel.nut
On commence par trouver ces lignes :
- /usr/share/attract/layouts/flat_blue/scripts/infopanel.nut
fe.add_image(settings.filter_image, settings.filter_pos.x, settings.filter_pos.y, settings.filter_dimensions.w, settings.filter_dimensions.h); fe.add_image(settings.game_image, settings.game_pos.x, settings.game_pos.y, settings.game_dimensions.w, settings.game_dimensions.h);
Et on ajoute notre 3ème ligne en dessous pour ajouter notre image :
- /usr/share/attract/layouts/flat_blue/scripts/infopanel.nut
fe.add_image(settings.filter_image, settings.filter_pos.x, settings.filter_pos.y, settings.filter_dimensions.w, settings.filter_dimensions.h); fe.add_image(settings.game_image, settings.game_pos.x, settings.game_pos.y, settings.game_dimensions.w, settings.game_dimensions.h); fe.add_image("images/logos.png", settings.game_pos.x, settings.game_pos.y-600, settings.game_dimensions.w, 600);