Accueil > Arcade > Borne Arcade MAME : MAMECAB

Borne Arcade MAME : MAMECAB

dimanche 7 octobre 2012, par Yann

 La vidéo de la restauration

 ScoobyCab : Avant/Après

Une petite photo avant après pour donner une idée du travail accompli.

 Modélisation : La ScoobyCab avec Blender

Un long weekend, toutes les pièces pour restaurer la borne jeutel sont là... mais il fait moche et impossible d’attaquer la peinture ! Alors zou, une petite modélisation Blender de la future borne. Enfin surtout comme j’aimerais la réaliser...

Petite vidéo de présentation en HD svp ;-)

Encore plus fort, le modèle blender directement dans la page web :-)

.blend sur Blendswap .blend local

Capture de Blender pendant la modélisation :

et le résultat :

 Partie Software : Retrouvez la démarche complète dans Linux Pratique 76

Mamecab Retro gaming : http://www.ed-diamond.com/feuille_l... pages 42-49

 Quelques précisions par rapport à l’article

Dans mon article j’utilise une Nvidia 7950. Cette dernière est supportée par les pilotes « nvidia-current » (en fait nvidia-304) de la distribution 12.04 cf. http://www.nvidia.com/object/linux-.... Cependant si votre carte est plus ancienne il faudra utiliser d’autres pilotes :

On peut télécharger ces pilotes à l’adresse : http://www.nvidia.com/object/unix.html

 Logiciel pour la borne

MAME sera au cœur de notre borne. Il sera utilisé avec Wah !Cade pour permettre de piloter Mame à l’aide du panel (joystick + boutons) de la borne.

Cette petite vidéo montre MAME avec l’effet tube cathodique en utilisant QMC2 :

Voici une petite vidéo pour montrer comment Wah !cade fonctionne.

Pour la partie logiciel, un PC sous Ubuntu 12.04 est configuré pour démarrer directement sur Wah !Cade.

J’ai ensuite réalisé un thème « Mystery Machine » pour que l’interface graphique corresponde avec le thème de la borne. Pour cela j’ai utiliser pas mal de ressource sur internet dont :

Ce thème est fait pour une interface en 1280*1024 :

et un fond d’écran :

et sa version svg :

Version SVG du fond d’écran

 Petits scripts utiles

Ce petit script permet de pallier le problème de plantage de Wah !cade. Si cela n’est pas très important sur un pc équipé d’un clavier/souris, dans le cas d’une borne c’est beaucoup plus génant ! Ce script permet de tuer le processus Qjoypad en mémoire (pour pouvoir le relancer ensuite) et de relancer récursivement le .xsession. Comme cela en cas de plantage de Wah !cade, l’interface graphique redémarre complètement et indéfiniement.

#! /bin/bash
nvidia-settings -l #charge la config nvidia et c'est tout
/usr/games/qjoypad -notray & # charge qjoypad convenablement et en arrière plan
/usr/bin/wahcade -f #wahcade en fullscreen
killall qjoypad
/home/xarcade/.xsession

Suivant la puissance de votre machine, vous serez amené à utiliser « sleep » pour faire attendre un peu les commandes pour laisser le temps à la commande précédente de bien se terminer :

#! /bin/bash
nvidia-settings -l #charge la config nvidia et c'est tout
/usr/games/qjoypad -notray & # charge qjoypad convenablement et en arrière plan
sleep 2
/usr/bin/wahcade -f #wahcade en fullscreen
killall qjoypad
sleep 2
/home/xarcade/.xsession

 Gestion du volume en .xsession

Le son dans les sessions gnome est géré par gnome-settings-deamon. Bien sur dans notre cas, il n’est pas chargé puisque nous n’avons pas de ssions gnome. Si vous tenté de l’ajouter dans le fichier « .xsession » cela ne fonctionnera pas. Impossible donc de coupler des raccourcis à l’augmentation/diminution de volume et mute/unmute.

On peut commencer par fixer les valeurs de volumes grâce à « amixer »

#! /bin/bash
nvidia-settings -l #charge la config nvidia et c'est tout
/usr/bin/amixer set Master 20%
/usr/bin/amixer set PCM 20%
#/usr/bin/amixer set Front 20%
/usr/bin/wahcade -f #wahcade en fullscreen
/home/xarcade/.xsession

Dans mon cas, avec l’utilisation d’une sblive 5.1, Master, PCM et Front agissent sur le controle de volume. Si j’utilise seulement l’un d’entre eux, je n’arrive pas augmenter au max et a dimunuer jusqu’à zéro. Il faut une combinaison des 3.

De même l’action de « Mute » sur « Master » mute aussi PCM !

J’ai donc créer les scripts suivants :

#! /bin/bash
/usr/bin/amixer set Master 1%+
/usr/bin/amixer set PCM 1%+
/usr/bin/amixer set Front 1%+
#! /bin/bash
/usr/bin/amixer set Master 1%-
/usr/bin/amixer set PCM 1%-
/usr/bin/amixer set Front 1%-
#! /bin/bash
/usr/bin/amixer set Master mute
/usr/bin/amixer set PCM mute
#! /bin/bash
/usr/bin/amixer set Master unmute
/usr/bin/amixer set PCM unmute

Ensuite il faudra utiliser le programme keyid pour intercepter les touches de raccourcis que l’on aura choisies pour les contrôle de volume (cf. Doc de keysid

On pourra récupérer les « scancodes » des touches grêce au programme « showkey »

$ sudo -s
# showkey --scancodes
&0x02 
0x82 
é0x03 
0x83 
"0x04 
0x84 
'0x05 
0x85 

 Effet Scanline

Pour avoir le rendu des écrans cathodiques d’antan sur un LCD (ou un cathodique PC), on a deux solutions :

L’option utilisant les shaders est bien sur la meilleure et donne un très bon rendu. Cependant elle ne fonctionne pas sur les cartes graphiques anciennes. Vous devrez alors vous rabattre sur l’effet « scanlines ».

Sur l’image suivante on remarque que les coins de l’écran sont très arrondis et qu’il y a un grande courbure. De plus sur certains jeux, l’affichage des scores étaient tronqués.

J’ai modifié le shader pour avoir l’image complète, plus de courbures d’écran (et plus d’asymétrie) et des arrondis de coins moins marqués. Voici le fichier CRT-geom.vsh modifié.

  //overscan = vec2(1.01,1.01);
  overscan = vec2(1.0,1.0);
  // aspect ratio
  //aspect = vec2(1.0, 0.75);
  aspect = vec2(1.0, 1.0);
  // radius of curvature
  R = 20.0;//1.5; //with 20.0 no curvature of the image
  // tilt angle in radians
  // (behavior might be a bit wrong if both components are nonzero)
  //const vec2 angle = vec2(0.0,-0.15);
  const vec2 angle = vec2(0.0,0.0);
  // size of curved corners
  //cornersize = 0.001; //no curved corners
  cornersize = 0.03;

Il s’agit exclusivement de modification de valeur de variables.

/*  CRT shader
 *
 *  Copyright (C) 2010-2012 cgwg, Themaister and DOLLS
 *
 *  This program is free software; you can redistribute it and/or modify it
 *  under the terms of the GNU General Public License as published by the Free
 *  Software Foundation; either version 2 of the License, or (at your option)
 *  any later version.
 */

varying float CRTgamma;
varying float monitorgamma;
varying vec2 overscan;
varying vec2 aspect;
varying float d;
varying float R;
varying float cornersize;
varying float cornersmooth;

varying vec3 stretch;
varying vec2 sinangle;
varying vec2 cosangle;

uniform vec2 color_texture_sz;
uniform vec2 color_texture_pow2_sz;

varying vec2 texCoord;
varying vec2 one;

#define FIX(c) max(abs(c), 1e-5);

float intersect(vec2 xy)
{
  float A = dot(xy,xy)+d*d;
  float B = 2.0*(R*(dot(xy,sinangle)-d*cosangle.x*cosangle.y)-d*d);
  float C = d*d + 2*R*d*cosangle.x*cosangle.y;
  return (-B-sqrt(B*B-4.0*A*C))/(2.0*A);
}

vec2 bkwtrans(vec2 xy)
{
  float c = intersect(xy);
  vec2 point = vec2(c)*xy;
  point -= vec2(-R)*sinangle;
  point /= vec2(R);
  vec2 tang = sinangle/cosangle;
  vec2 poc = point/cosangle;
  float A = dot(tang,tang)+1.0;
  float B = -2.0*dot(poc,tang);
  float C = dot(poc,poc)-1.0;
  float a = (-B+sqrt(B*B-4.0*A*C))/(2.0*A);
  vec2 uv = (point-a*sinangle)/cosangle;
  float r = R*acos(a);
  return uv*r/sin(r/R);
}

vec2 fwtrans(vec2 uv)
{
  float r = FIX(sqrt(dot(uv,uv)));
  uv *= sin(r/R)/r;
  float x = 1.0-cos(r/R);
  float D = d/R + x*cosangle.x*cosangle.y+dot(uv,sinangle);
  return d*(uv*cosangle-x*sinangle)/D;
}

vec3 maxscale()
{
  vec2 c = bkwtrans(-R * sinangle / (1.0 + R/d*cosangle.x*cosangle.y));
  vec2 a = vec2(0.5,0.5)*aspect;
  vec2 lo = vec2(fwtrans(vec2(-a.x,c.y)).x,
		 fwtrans(vec2(c.x,-a.y)).y)/aspect;
  vec2 hi = vec2(fwtrans(vec2(+a.x,c.y)).x,
		 fwtrans(vec2(c.x,+a.y)).y)/aspect;
  return vec3((hi+lo)*aspect*0.5,max(hi.x-lo.x,hi.y-lo.y));
}


void main()
{

  // START of parameters

  // gamma of simulated CRT
  CRTgamma = 2.4;
  // gamma of display monitor (typically 2.2 is correct)
  monitorgamma = 2.2;
  // overscan (e.g. 1.02 for 2% overscan)
  //overscan = vec2(1.01,1.01);
  overscan = vec2(1.0,1.0);
  // aspect ratio
  //aspect = vec2(1.0, 0.75);
  aspect = vec2(1.0, 1.0);
  // lengths are measured in units of (approximately) the width of the monitor
  // simulated distance from viewer to monitor
  d = 2.0;
  // radius of curvature
  R = 20.0;//1.5; //with 20.0 no curvature of the image
  // tilt angle in radians
  // (behavior might be a bit wrong if both components are nonzero)
  //const vec2 angle = vec2(0.0,-0.15);
  const vec2 angle = vec2(0.0,0.0);
  // size of curved corners
  //cornersize = 0.001; //no curved corners
  cornersize = 0.03;
  // border smoothness parameter
  // decrease if borders are too aliased
  cornersmooth = 1000.0;

  // END of parameters

  // Do the standard vertex processing.
  gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;

  // Precalculate a bunch of useful values we'll need in the fragment
  // shader.
  sinangle = sin(angle);
  cosangle = cos(angle);
  stretch = maxscale();

  // Texture coords.
  texCoord = gl_MultiTexCoord0.xy;

  // The size of one texel, in texture-coordinates.
  one = 1.0 / color_texture_pow2_sz;
}

Ensuite il faut modifier le fichier mame.ini pour la configurer le support de GLSL

#
# CORE CONFIGURATION OPTIONS
#
readconfig                1
writeconfig               0

#
# CORE SEARCH PATH OPTIONS
#
rompath                   $HOME/.mame/roms;/usr/local/share/games/mame/roms;/usr/share/games/mame/roms
hashpath                  /usr/share/games/mame/hash
samplepath                $HOME/.mame/samples;/usr/local/share/games/mame/samples;/usr/share/games/mame/samples
artpath                   $HOME/.mame/artwork;/usr/local/share/games/mame/artwork;/usr/share/games/mame/artwork
ctrlrpath                 $HOME/.mame/ctrlr;/etc/mame/ctrlr
inipath                   $HOME/.mame;/etc/mame
fontpath                  /tmp
cheatpath                 $HOME/.mame/cheat;$HOME/.mame/cheat/cheat;/usr/local/share/games/mame/cheat;/usr/local/share/games/mame/cheat/cheat;/usr/share/games/mame/cheat;/usr/share/games/mame/cheat/cheat
crosshairpath             $HOME/.mame/crosshair;/usr/local/share/games/mame/crosshair;/usr/share/games/mame/crosshair

#
# CORE OUTPUT DIRECTORY OPTIONS
#
cfg_directory             $HOME/.mame/cfg
nvram_directory           $HOME/.mame/nvram
memcard_directory         $HOME/.mame/memcard
input_directory           $HOME/.mame/inp
state_directory           $HOME/.mame/sta
snapshot_directory        $HOME/.mame/snap
diff_directory            $HOME/.mame/diff
comment_directory         $HOME/.mame/comments

#

paddle_device keyboard
adstick_device keyboard
pedal_device keyboard
dial_device keyboard
trackball_device keyboard
lightgun_device keyboard
positional_device keyboard
mouse_device mouse
readconfig 1
writeconfig 0
bios 
cheat 0
skip_gameinfo 1
uifont default
ramsize 
confirm_quit 0
log 0
oslog 0
verbose 0
update_in_pause 0
debug 0
debugscript 
debug_internal 0
watchdog 0
brightness 1
contrast 1
gamma 1
pause_brightness 0.65
state 
autosave 0
playback 
record 
mngwrite 
aviwrite 
wavwrite 
snapname %g/%i
snapsize auto
snapview internal
burnin 0
screen auto
aspect auto
resolution auto
view auto
screen0 auto
aspect0 auto
resolution0 auto
view0 auto
screen1 auto
aspect1 auto
resolution1 auto
view1 auto
screen2 auto
aspect2 auto
resolution2 auto
view2 auto
screen3 auto
aspect3 auto
resolution3 auto
view3 auto
artwork_crop 0
use_backdrops 1
use_overlays 1
use_bezels 1
use_cpanels 1
use_marquees 1
keymap 1
#keymap_file /usr/share/games/mame/keymaps/km-fr.txt #changed with updates
keymap_file /usr/share/games/mess/keymaps/km-fr.txt
uimodekey SCRLOCK
joy_idx1 auto
joy_idx2 auto
joy_idx3 auto
joy_idx4 auto
joy_idx5 auto
joy_idx6 auto
joy_idx7 auto
joy_idx8 auto
sixaxis 0
filter 1
prescale 1
gl_forcepow2texture 0
gl_notexturerect 0
gl_vbo 1
gl_pbo 1
gl_glsl 1
gl_glsl_filter 1
gl_glsl_vid_attr 1
glsl_shader_mame0 /home/xarcade/.mame/shader/glsl_plain
glsl_shader_mame1 /home/xarcade/.mame/shader/CRT-geom
glsl_shader_mame2 none
glsl_shader_mame3 none
glsl_shader_mame4 none
glsl_shader_mame5 none
glsl_shader_mame6 none
glsl_shader_mame7 none
glsl_shader_mame8 none
glsl_shader_mame9 none
glsl_shader_screen0 none
glsl_shader_screen1 none
glsl_shader_screen2 none
glsl_shader_screen3 none
glsl_shader_screen4 none
glsl_shader_screen5 none
glsl_shader_screen6 none
glsl_shader_screen7 none
glsl_shader_screen8 none
glsl_shader_screen9 none
video opengl
videodriver x11
audiodriver alsa
gl_lib /usr/lib/nvidia-current/libGL.so
autoframeskip 0
frameskip 0
seconds_to_run 0
throttle 1
sleep 1
speed 1
refreshspeed 0
multithreading 1
sdlvideofps 0
numprocessors auto
bench 0
switchres 0
useallheads 0
coin_lockout 1
ctrlr 
mouse 0
joystick 1
lightgun 0
multikeyboard 0
multimouse 0
steadykey 0
offscreen_reload 0
joystick_map auto
joystick_deadzone 0.3
joystick_saturation 0.85
natural 0
joystick_contradictory 0
coin_impulse 0
antialias 1
beam 1
flicker 0
rotate 1
ror 0
rol 0
autoror 0
autorol 0
flipx 0
flipy 0
rompath /home/xarcade/.mame/roms
hashpath hash
samplepath /home/xarcade/.mame/samples
artpath artwork
ctrlrpath ctrlr
inipath $HOME/.mame;.;ini
fontpath .
cheatpath cheat
crosshairpath crosshair
cfg_directory cfg
nvram_directory nvram
memcard_directory memcard
input_directory inp
state_directory sta
snapshot_directory snap
diff_directory diff
comment_directory comments
sound 1
samplerate 48000
samples 1
volume 0
audio_latency 0
video opengl
numscreens 1
window 0
maximize 1
keepaspect 1
unevenstretch 1
# nvidia GEForce 2 -> driver nvidia-96
# nvidia 6200 -> driver nvidia-173
# nvidia 7920 et + -> driver nvidia-current
# nvidia 6200 ne fonctionne pas avec l'effet glsl, il faut des 7000 et plus
# dans ce cas on utlise l'effet scanline (fichier scanlines.png) en modifiant
# effect scanlines
#il ne faut pas oublier de désactiver glsl 
# gl_glsl 0
# ensuite dans la config de wah!cade on modifie la ligne ligne qui lance mame an ajoutant l'option -artpath
#[mame] -artpath $HOME/.mame/artwork
# qui contient les fichiers d'effets
effect none
centerh 1
centerv 1
waitvsync 1
scalemode none
syncrefresh 0

 Partie Hardware : Projet de borne Arcade MAME

des infos sur Jeutel

Cet article présente la transformation d’une borne Arcade Jeutel en MAMECAB : c’est à dire une borne arcade embarquant un PC sous linux équipé de l’émulateur MAME.

J’utiliserai, le frontal graphique Wah !Cade pour la sélection des jeux. J’ai flashé sur ce projet et décidé de la reproduire : une Scooby Borne.

 Matériel pour la borne

Le matériel a été acheté sur 4 sites :

Liste de matériel chez Ultimarc :

Product Code Name Quantity Price Each Item Total
CBCGL01YEL GoldLeaf Pushbuttons.
Color : Yellow 2 €1.72 €3.44
CBGL01BLA GoldLeaf Pushbuttons.
Color : Black 2 €1.72 €3.44
CBGL01BLU GoldLeaf Pushbuttons.
Color : Lt Blue 2 €1.72 €3.44
CBGL01RED GoldLeaf Pushbuttons.
Color : Red 2 €1.72 €3.44
CBGL01GRN GoldLeaf Pushbuttons.
Color : Green 2 €1.72 €3.44
CBGL01WHT GoldLeaf Pushbuttons.
Color : White 2 €1.72 €3.44
CBGL01ORN GoldLeaf Pushbuttons.
Color : Orange 2 €1.72 €3.44
PIPAC2+LU01 I-PAC 2 Interface.
Cable Type : USB Cable 1 €37.84 €37.84
CJMP01RED Mag-Stik Plus
Color : Red 2 €30.80 €61.60
CPLAMP1 Marquee Illuminator
Marquee Illuminator 1 €14.96 €14.96
CBCL01ST1 Start Logo Pushbuttons White.
Logo : Start 1 1 €2.55 €2.55
CBCL01ST2 Start Logo Pushbuttons White.
Logo : Start2 1 €2.55 €2.55
CBUT01RED Ultralux Translucent Illuminated Pushbuttons. Includes LED.
Color : Red 1 €3.48 €3.48
Goods Total €147.06
Shipping Total (DHL) €23.76
Tax Total €34.11
Order Total €204.93

Chez Smallcab :

Nom Prix TTC
10 x T-Molding 18mm Vert 25.00EUR
1 x Panel JEUTEL à percer 34.90EUR

Seconde commande chez Smallcab

1 x Panel JEUTEL 6 trous 54.90EUR
1 x Overlay pour panel JEUTEL 20 pouces 19.90EUR
1 x Câblage JAMMA 1.4m (cosses 2,8mm) 10.90EUR
2 x Grille de haut parleur 7.80EUR
30 x Cosse femelle 4.8mm 4.80EUR
1 x Connecteur JAMMA male 28 broches 1.50EUR

Voici tout le petit monde (sans le panel Jeutel). J’ai aussi commencé à poncer et repeindre certaine pièces : charnière du panel et bouton On/Off de la borne, grilles d’aération.

 Graphisme pour la borne

J’ai un peu modifié les graphismes de la borne http://vectorlib2.free.fr/ScoobyBorne/

autre source de graphismes http://www.arcadeartwork.org/

Marquee de laborne
Panneau gauche
Overlay pour le panel
Image de fond au dessus de l’ecran
Image de la dalle en verre

Tous les fichiers svg ayant servis à créer les graphismes :

Tous les fichiers au format SVG

Pour ceux que ça intéresse, voici les machines qui ont imprimé les différents stickers et marquee.

En vidéo :

 Récupération de la borne Jeutel

Un bassiste, passionné de flipper et Borne Arcade que je connais, m’a dégoté une borne jeutel des années 80-90 pour une somme modique.

Cependant cette dernière a subit les outrages du temps de de l’humidité pendant son stockage. La bas de la caisse est pourri et la borne s’est affaissée sur elle même.

 Le trésor de la borne

Lors du démontage des parties devenues inutiles, j’ai découvert un petit trésor : 2 pièces de 1FF :-)

 Rénovation de la borne

Il est nécessaire de s’équiper un peu pour refaire le bas de la borne. Perceuse, scie sauteuse, colle à bois, pâte à bois, cheville. Il faut aussi des panneaux d’aggloméré à la bonne épaisseur, ou encore du médium qui se travaille plus facilement.

Le fond de caisse après démontage de toute l’électronique :

Ensuite après rénovation :

Voici une vue rapprochée des coins arrières rénovés. Ils étaient complètement pourris :

J’en profite pour renforcer avec des équerres les différentes parties, car la caisse a perdu de sa rigidité :

Réfection de la porte arrière de la borne :

 Du mono au stéréo

La borne était initialement sonorisée en mono. Mais avec le PC, j’ai du Stéréo, voir même un kit 5.1 avec la carte son SoundBlaster Live 5.1. SDU coup, il faut passer la borne au moins en 2.1.

Perçage de 2 nouveaux emplacements dans le fronton de la borne et rebouchage de l’ancien emplacement : les trous ayant la même dimension, j’ai utilisé une des chutes pour reboucher l’ancien trou.

Ensuite pour le matériel :

ou alors récupérer une paire d’enceinte PC amplifiées, les décoquer, tout en conservant la partie amplification et les installer. C’est bien moins cher.

 les arrondis et le passage du T-Molding

Lors de la rénovation, j’ai rebouché par endroit le passage du T-Molding, rien de tel qu’un petit coup de disque à découper Dremel pour refaire la passage en toute simplicité.

Reste encore las arrondis a refaire à la pâte à bois. Encore du ponçage en perspective.

 La suite : ponçage

Voila, il ne reste plus qu’à boucher quelques trous à la pâte à bois, et refaire les rainures dans les deux panneaux latéraux et on peut passer à la suite : Poncer toutes les surfaces puis apprêter à l’aide d’une base blanche spécial support lisse, pour que la peinture accroche mieux.

 Préparation des surfaces

Les surfaces lisses et noires de la borne sont poncées avec du papier gros grains (80, 50) afin de faire de belle rayures pour permettre l’accroche de la couche de base blanche.

Après avoir aspirer les copeaux de bois, dépoussiéré et lavé la borne pour enlever toutes les impuretés, on peut passer à la première phase de peinture.

 Mise en peinture : couche de base

Pour cela j’ai utilisé un base blanche à l’eau pour supports spéciaux trouvée chez Leroy-Merlin : 15€ les 500ml (j’en ai pris 2).

J’ai décidé aussi de mettre à la peinture au pistolet :

pour cela, il ne faut pas oublier de s’équiper afin de ne pas avaler trop de particules de peinture !

Ah j’oubliais, l’erreur de débutant ! vouloir aller trop vite en essayant de recouvrir en une seule fois et mettre trop de peinture et donc faire des coulures.... si ce n’est pas trop grave que la couche de base, pour la peinture finale, il faudra faire très attention ! On fait donc de petite passe avec peu de matière, on attend que cela sèche et on repasse, on repasse, on repasse....

et hop

 Mise en peinture : couche de couleur

Le pistolet c’est bien, mais la perte en peinture est importante. Pour la suite j’ai utilisé un rouleau à laquer et un pinceau....

les couleurs sont là issues du nuancier Ripolin 2011. vert éphémère pour le fond et vert sumatra pour les bandes.

Voici après 2 couches de vert éphémère...

Maintenant, il va falloir tracer les bandes dans l’autre ton.

On prépare convenablement les bandes de couleurs à l’aide de scotch cache jaune.

Ensuite on passe à la peinture des bornes à l’aide du pinceau et rouleau à laquer.

Une seconde couche est appliquée, on laisse bien sécher avant d’enlever les bandes autocollantes. Voici le résultat :

Ensuite, on va appliquer un vernis (toujours à l’eau, on évite de mixer les produits à l’eau et le produit à base de solvant). Un minimum de 3 couches sera nécessaire.

Bon finalement j’en ai mis 5 ! Ca devrait aller je pense.

 Montage du panel

Hier, j’ai récupéré mon sticker pour le panel... Ce matin opération collage et montage des boutons et joysticks.

J’ai un peu galéré avec les Joys. En effet les trous de fixation ne correspondaient pas tout a fait avec les emplacements des vis du Panel Jeutel envoyé par Erwan de SmallCab. Pas de soucis, dremel, lime et hop tout est rentré dans l’ordre.

Voici pour le découpage et préparation avant la pose du sticker.

Sticker posé. Je l’ai un peu trop étiré lors de la pose et du coup, 2/3 heures après, une bulle s’est formée dans la partie concave de la tole pliée. Rien de grave cependant. Mon sticker est vraiment de bonne qualité, j’ai decollé, enlevé la bulle et repositionné et hop, ni vu ni connu.

Les trous des boutons 1/2 joueurs sont un peu décalés par rapport à ce que j’avais prévu.

 Montage des boutons et joysticks

Le panel est terminé. il reste cependant le câblage de tout ce petit monde.

Et en position sur la borne

 Remontage de la porte arrière

Ce matin, agrafage des grilles sur la porte arrière, repose des glissières plastiques, du verrou et aussi des poignées-aérateurs, de la grille du toit de la borne et de interrupteur Marche/Arrêt.

 Montage des haut-parleur

Les hauts-parleurs sont de récupération. Cependant pour être sur que le son soit assez fort (la sortie du PC même amplifiée risque d’être un peu limite) j’ai ajouté un ampli stéréo 2x10W alimenté en 12V. Je l’ai dégotté chez Comelec pour 12€ tout monté.

Avec les grilles en position.

 Montage du rétroéclairage du Marquee

Pose du T-Molding

La pose du T-molding n’a pas posé de soucis particulier. J’ai utilisé un maillet en caoutchouc blanc afin de en pas laisser de trace. Sur les forts arrondis, j’ai adouci le t-molding en chauffant un peu à l’aide d’un décapeur thermique. Attention à ne pas bruler le plastique ou les peintures de la borne.

Finalement j’ai vissé la bande sous la borne pour un fixation plus sure.

 Marquee

Décapage de la vitre du marquee avec du décapant standard Leroy-Merlin. Ensuite pose sur la borne avec les réglettes de maintien. Il ne reste plus qu’à poser le sticker « Mystery Machine ».

 Repose du monnayeur

Après quelques couches de peinture et de vernis, remise en place du monnayeur.

 Mise en place définitive du panel

Avant de remettre en place le panel, je l’ai recouvert d’un film plastique transparent afin de protéger le sticker imprimé. La pose ne s’est pas trop mal déroulée, mais il y a eu quelques bulles tout de même ;-).

il ne reste plus qu’a remonter les boutons et joysticks.

Ensuite, à l’aide de rivet « pop », j’ai fixé le panel sur la charnière qui vient se fixer sur la borne par l’intermédiaire de 2 vis à ailettes. J’ai ensuite remonté les loquets qui verrouillent le panel en position.

Faites bien attention à ce que la tension soit raisonnable, car j’ai cassé une des vis de fixation du crochet qui est en prise avec le loquet. Faites des essais, et n’hésitez pas à mettre des rondelles pour régler la bonne tension.

Vue de face, panel et monnayeur montés

Vue de 3/4 du panel terminé

Vue de dessus du panel terminé

Petit détail : la visserie inox a aussi été peinte aux tons de la borne pour ne pas dépareiller.

 Mise en place de l’écran

Afin de ne pas être embêter avec la mise en place du 15Hz sur mon linux et ma carte graphique, je n’utiliserai pas un écran de TV, mais un moniteur de PC. J’ai récupéré un 22" Viewsonic g220f.

Afin de le monter dans la borne, j’ai du le dé-coquer complètement, puis modifier le cadre métallique pour la mise en place dans la jeutel.

Pour cela je me suis aider du manuel de réparation suivant qui précise les opérations à effectuer pour la dépose de tous les éléments.

Après fixation dans le cadre, je l’ai reposé dans la borne.

Puis un petit test de fonctionnement avec le pc qui prendra place dans la Jeutel.

avec la vitre initiale de la borne.... c’est pas joli hein !

 Sticker de la vitre principale

Impossible décaper la peinture de la vitre initiale de la borne. J’ai donc acheté un morceau de verre blanc à Castorama en dimension 51x56 pour 12€.

Ensuite, j’ai bien galéré pour poser le sticker. J’ai opéré en 2 temps. Pose du sticker rectangulaire et ensuite découpe de partie intérieur blanche pour laisser apparaître la vitre. Voici le résultat

Ensuite, on va recouvrir le sticker avec un film protecteur transparent.

Au départ je pensais pouvoir le laisser sur toute la surface de la vitre, mais, cette couche supplémentaire, opacifie un peu la vitre, et tout est un peu flou lorsqu’on regarde à travers. On enlève donc la partie centrale :

Voici la vitre terminée :

et une petite vue d’ensemble avant la phase de câblage.

Et si c’était les clés du bonheur ....

 Repositionnement de l’écran

J’ai décidé de repositionner l’écran 22". En effet, sur son cadre, la surface de la dalle est quelques centimètres en dessous des lattes e, bois qui servent de guides au cadre. Du coup, l’habillement autour de l’écran sera plus difficile à faire. Je vais donc remonter l’écran de 3/4 cm, pour que la dalle arrive juste au dessus des lattes de bois. Ainsi, je pourrai facilement poser un placage en bois tout autour de l’écran.

On re dépose l’écran (pfff c’est du lourd) :

Puis on réalise des entretoises à la bonne longueur : ici en tube cuivre de tuyauterie (récup) :

On positionne le tout dans la borne à nouveau :

On voit bien que la dalle arrive juste au dessus des guides de bois. Et voici une vue de face :

Ensuite il faut fixer convenablement la carte électronique de l’écran dans la borne. En effet pour l’instant elle ne tient que par les câbles qui la lient au tube cathodique ! Ce n’est pas très sérieux !

Pour cela on va faire une peu de menuiserie. J’ai utilisé des chevilles plastiques coupées pour faire les pieds de la carte électronique afin de la fixer sur une plaque de bois.

Puis encore une peu de menuiserie pour réaliser les supports en triangle. On pose des équerres pour rigidifier le tout et c’est terminé.

Un petit test pour voir si tout fonctionne correctement :

 Câblage Marquee et Audio

On passe maintenant au câblage électrique du rétro-éclairage du marquee et de l’amplificateur audio. Dans un premier temps, j’ai tiré un 12v de l’alimentation du PC pour alimenter les 2 en même temps. Si cela fonctionne correctement pour l’éclairage, il faut oublier pour l’audio. On récupère tous les parasites électriques de la tour PC !!!! On entend toutes les activités de la machine dans les enceintes : disque dur, molette souris etc...

Il faut donc séparer ces deux alimentations. J’ai tenté avec une seconde alimentation PC, rien à faire, j’ai encore des parasites issus de l’alimentation à découpage. Il faut opter pour un bête transformateur Alternatif-Continu en respectant les tensions d’alimentation de l’ampli et aussi sa puissance. Si le transfo est trop faible en puissance, vous ne pourrez pas monter le son de vos enceintes sans avoir une grosse dégradation.

J’ai fait des tests avec un câblage « domino » avant de souder tout cela proprement.

Reste, encore la câblage de l’alimentation générale de la borne via son interrupteur et une autre grosse partie.... le câblage du panel.... le plus important pour pourvoir jouer.

 Câble de l’alimentation électrique

Pour cela j’ai repris le schéma issu de http://www.starcab.net/newsdesk_inf...

Puis j’ai amené l’alimentation sur une quintuplette.

Ensuite j’ai rempli le bas de la borne avec le PC :

Il me reste à régler le pb du volume sonore : pour l’instant j’ai des soucis avec gnome-settings-manager... parfois il ne se lance pas bien. (j’ai utilisé https://wiki.ubuntu.com/CustomXSession).

et voila avec la porte fermée :

Habillage du tour de l’écran

L’écran est positionné, mais il faut habillé le tour pour ne plus voir l’intérieur de la borne et les câbles.

J’ai acheté du médium de 3mm d’épais. La découpe se fait au cutter ! Attention c’est assez physique tout de même. Ensuite j’ai passé 2 couches d’apprêt blanc, puis 2 couches de couleur verte et enfin 3 couches de vernis. Voici le résultat :

 Réglage volume sonore par potentiomètre

Finalement j’ai opté pour une réglage manuel du volume sonore de la borne. Pour cela j’ai suivi le site http://www.sonelec-musique.com/electronique_realisations_ajout_pot_volume.html pour savoir comment faire.

D’après les forums, pour la sortie d’une carte son, il faut utiliser un potentiomètre logarithmique de 50KOhm. j’ai acheter celui là http://www.audiophonics.fr/potentiometre-commute-stereo-resistances-cms-50k-axe-meplat-p-7359.html

Tout est maintenant soudé, il ne reste plus qu’à l’essayer.

 Marquee Plexi imprimé

Chouette chouette, je viens de récupérer mon marquee imprimé sur du plexiglass de 3mm. Reste plus qu’à le découper aux bonnes dimensions...

Mon imprimeur a essayé à la manière du verre : pré-découpe au cutter puis flexion -> casse... grosse erreur ... ça casse mais pas au bon endroit... du coup il a fallu trouver une autre solution.

Une petite scie circulaire pour la découpe de circuit imprimé fonctionne parfaitement. Il ne faut pas être pressé et enlever régulièrement les copeaux de plexi fondu !

et voila :

Reste à percer le trou pour le potentiomètre de volume et poser le tout sur la borne.

 Marquee en place

Le potentiomètre est testé, tout est ok. Je peux maintenant régler le volume rapidement à l’aide de ce dernier. Reste à percer le marquee pour passer la tête du potentiomètre.

Le marquee rétro-éclairé avec le bouton de volume

Idem avec vue sur l’écran de choix de jeux

Vue globale de la borne...

Bon ben là, j’peux plus reculer.. faut câbler le panel et on est pas loin de la fin....

 Câblage IPAC2

Il faut maintenant relier le panel au PC, pour pouvoir jouer. Afin de me simplfier la vie au niveau du câblage, j’ai opté pour un faisceau de câblage JAMMA pour 11€. J’ai pris aussi un connecteur JAMMA sur lequel j’ai soudé les fils necessaires à l’IPAC2.

Je me suis aidé du schéma de câble ge disponible sur le site Starcab pour faire correspondre les connexions JAMMA avec les connexions e l’IPAC.

Tout ce qui concerne le son, la vidéo et les alimentations n’a pas été câblé. Le standard JAMMA ne possédant le support que pour 3 boutons, j’ai utilisé les broches 25, 26 et 27 pour les 3 boutons restants (il faut donc supprimer une masse) .

Voici ce que cela donne en image

puis

 IPAC2 et panel

L’IPAC2 est vendu avec une configuration pré-programmée de la table de correspondance touches <-> boutons/joysticks. Cette dernière correspond aux codes utilisés par défaut par MAME. On va donc utiliser celle ci afin de ne pas être obliger de reprogrammer.

Il reste cependant un soucis, elle est prévue pour un clavier qwerty et chez nous c’est de l’azerty. Il va falloir imposer à xorg de charger un clavier anglais à la place du français. La cas échéant, le panel ne fonctionnera pas convenablement, le mappage des touches n’étant pas le bon.

Pour cela il suffit d’ajouter le ligne :

setxkbmap us

dans notre fichier .xsession, ce qui donne :

#! /bin/bash
nvidia-settings -l #charge la config nvidia et c'est tout
setxkbmap us
/usr/bin/amixer set Master 80%
/usr/bin/amixer set PCM 80%
/usr/bin/wahcade -f #wahcade en fullscreen
/home/xarcade/.xsession

Si vous désirez le programmer, il vous faudra installer différents utilitaires.

Dans un premier temps il s’agit de faire reconnaître l’IPAC sous Linux. Pour cela, il est nécessaire de télécharger et d’installer les logiciels suivants depuis l’adresse IPAC download :

ipacutil_0_7-tar.gz

(code source)

ipacgui_0-3_i386.deb

(paquet debian)

ipacgui_0_3-tar.gz

(archive)

Il faut installer ipacutil avant ipacgui. Il faut satisfaire les dépendances en installant « libusb-dev »

sudo apt-get install libusb-dev

ensuite on décompresse l’archive

tar xzf ipacutil_0_7.tar.gz

Puis on compile

make

et finalement on installe

sudo make install

Pour vérifier que l’IPAC est bien détecté, vous pouvez lancer

ipacutil --detect

Cependant, même si ce dernier n’est pas bien détecté, il pourra vraisemblablement être programmé. Les modèles récents ne possède plus la logique de détection.

On peut ensuite installer le paquet de de l’interface graphique de programmation

sudo dpkg -i ipacgui_0-3_i386.deb

 Câblage du faisceau JAMMA

Je suis bien content d’avoir acheter ce faisceau, je n’ai pas eu a créer la tresse de masse ;-). Un fois le tout connecté, j’ai testé chaque bonton/direction joystick sur le bornier de l’IPAC2 à l’aide d’un Voltmètre/Ohmmètre. Tout était ok du premier coup. Ouf !

Pour les crédits, j’ai branché l’un des microswitchs des monnayeurs.

En image :

il reste à regrouper les fils pour que cela soit plus pratique et plus joli.

 Config de Wah !Cade et MAME

Il reste encore quelques réglages de configuration de touches dans Wah !cade et MAME suite au changement de mappage clavier. Rien de bien méchant.

Tout est maintenant fonctionnel, et les enfants sont contents... et moi aussi

Ce matin, j’ai finalisé la petite jeutel avant de la remonter dans la salon.

Rangement des câbles, ajout d’un second monnayeur, fixation de l’IPAC2 dans la caisse :

La petite voisine m’a donné sa petite mystery machine... elle a sa place juste derrière l’écran...

et hop... un petit test avant le salon...

Encore quelques petites photos

après la dure remontée dans le salon... ça pèse au moins 100kg, cette bête là, avec l’écran 22", le pc et le meuble...

Il ne reste plus que les stickers des panneaux latéraux...

 Mise en réseau de la borne

Afin de ne pas être obligé d’ouvrir la caisse à chaque fois que je veux ajouter un jeu ou encore faire un réglage, j’ai mis la borne sur le réseau de la maison.

De cette manière je vais pouvoir utiliser un client ftp/ssh pour accéder au PC de la borne et maniper à distance.

Par défaut, ma Ubuntu était configurée en DHCP, du coup l’adresse IP de la borne peut changer, ce qui ne sera pas très pratique pour y accéder. Je vais donc la configurer en IP fixe.

De plus, comme je ne charge pas de bureau au lancement (juste Wah !Cade en plein écran) il n’a y aucun gestionnaire de réseau de charger, et il se peut que votre borne n’ait pas d’IP attribuée.

Dans mon cas, j’ai une box avec un réseau privé en 192.168.1.xxx, et j’ai attribué l’adresse 15 à la borne. j’ai ajouté dans le fichier /etc/network/interfaces :

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.15
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-servers 192.168.1.1

ensuite n redémarre le réseau :

/etc/init.d/networking stop
/etc/init.d/networking start

Maintenant vous pouvez accéder à la borne à partir de n’importe quelle machine connectée à votre réseau. N’oubliez ps d’installer un serveur SSH (openssh-server) et un serveur FTP (pro-ftpd) afin de pouvoir téléverser des fichiers et avoir un shell sécurisé.

 Décor de Noël...

Merci à mon collègue de m’avoir offert une belle mystery machine pour Noël. Dorénavant elle trône au dessus de la borne.

 Encore des stickers

Mes stickers sont arrivés... ce matin c’était le fond de borne... j’me suis gouré dans les dimensions... ou bien c’est mon poto imprimeur ;-).

Pô grave j’ai recoupé et finalement c’est pas mal du tout... parfois le hasard fait bien les choses... ;-)

 Phase finale : les sides

J’ai préparé les stickers de cotés pour la pose :

Découpe au cutter à la forme adéquate

Présentation sur la borne

Maintenant tout est prêt. Mais le plus dur reste à faire...

 Pose des stickers de coté

Voila on y est, dernière opération sur cette scooby borne. La pose s’est bien déroulée grâce à du vinyle repositionnable et le vernis qui recouvrait les couches de peinture. Du fait même un geste malencontreux pouvait être rattrapé car le vinyle se décollait bien (pas d’arrachement de peinture) et pouvait être repositionné.

La pose en image :

 Crédits par le monnayeur

Jusqu’à présent, je mettais des credits en ouvrant la trappe du monnayeur et en actionnant le switch des pièces de 5 francs sur lequel j’avais branché la commande « coin ».
Comme je veux que la trappe reste fermée, il faut trouver une solution : utiliser le monnayeur. Mais je ne vais pas demander d’argent aux amis qui viennent faire une partie à la maison...

J’ai fait une modification pour pouvoir utiliser le bouton de « retour de pièce » qui se trouve en façade du monnayeur (les boutons oranges rétroéclairés... enfin pas encore). Pour cela j’ai utilisé un des vieux contact « lamelle » d’origine de la jeutel :

 Nouvelle serrure et éclairage monnayeur

Après une petite commande chez smallcab pour le matériel (serrure et led wedge)... et une peu de soudure, la petite scooby borne se retrouve avec une nouvelle serrure de monnayeur et le rétroéclairage des boutons de retour de pièces...

Bon ben là je pense qu’elle est terminée...

 Bon ben là je pense qu’elle est terminée... Que je croyais ;-)

A l’utilisation, j’ai remarqué que certains jeux nécessitent un bouton de crédit pour le joueur 2. Je l’avais câblé, mais sur le microswitch de passage des pièces... et il est maintenant inaccessible puisque la porte est fermée.

j’ai donc câblé à nouveau un « retour de pièce » pour avoir ce bouton crédit pour le joueur 2.

 La suite... remplacer ma distribution, par la prochaine version de LiveMameCab qui utilise cabrio

Tout est ici http://www.gamoover.net/Forums/inde... et là http://numsys.eu/search.php?search=Mame

Portfolio