Software 2 : Émulons dans la joie et la bonne humeur
Maintenant qu'on a un système d'exploitation optimisé, on va pouvoir passer aux logiciels d'émulation.
Tout d'abord commençons par MAME.
C'est un logiciel fait par des passionnés de jeux d'arcade qui a pour vocation de reproduire le plus fidèlement possible le fonctionnement de différentes machines... Et il y en a des machines d'acade différentes.
Il est développé depuis 1997 et est toujours actualisé. Au moment de l'écriture de cet article on en est à la version 0.154 (http://www.mamedev.org/).
Comme le code source de MAME est libre et disponible, il est utilisé pour faire des déclinaisons "++" de MAME.
Pour avoir une idée des différentes versions de MAME, je préfère vous renvoyer vers cet article : http://www.gametronik.com/forum/index.php?showtopic=10452
Ainsi, on peut constater que MAME plus permet de gérer des roms mais aussi tout un tas de bonus comme des photos de borne, de control panel, des flyers, des captures d'écran, des vidéos, voire des pages d'historique ...etc. De plus il permet de facilement configurer les touches, les paramètres d'affichage... Bref c'est bien pratique pour tester les jeux mais pas plus.
Pour les roms tournant sous MAME, on peut trouver des romsets (autrement dit des ensembles/packages de roms). On trouve même des "Full romsets" contenant toutes les roms tournant pour une version de Mame donnée. En effet, à chaque version de Mame, de nouvelles machines sont émulées et dons de nouvelles roms peuvent fonctionner.
Faisons un lien Software Hardware indispensable.
Et là il faut revenir sur I-Pac2 et la configuration par défaut de MAME. En effet MAME a été prévu d'être utilisé au clavier (hacké ou pas) avec le soucis de minimiser les problèmes de ghosting déjà évoqués.
Du coup on a ça comme configuration de touches :
Il faut savoir que c'est optimisé pour un clavier QWERTY (où on n'a pas besoin d'appuyer sur Maj/Shift pour avoir un numéro). Mais ça encore, ce n'est pas un vrai problème. Par contre le soucis, c'est l'usage des touches Ctrl, Shift, Alt en boutons 1, 2 et 3 du joueur 1. Dans MAME, pas de soucis car MAME contrôle complètement le clavier. Par contre certains émulateurs n'ont qu'un contrôle partiel du clavier, et derrière l'émulateur, il y a Windows. Et Windows utilise aussi des raccourcis clavier faisant intervenir Ctrl, Shift et Alt, voire AltGr.
Du coup il faut prévoir, anticiper et gérer. Cela devient un peu compliqué avec un bricolage de clavier, par contre avec l'I-Pac, c'est un jeu d'enfant vu qu'il n'y a pas de ghosting.
Voici à quoi ressemble l'I-Pac2 :
On voit que chaque connecteur a son propre pin sur le microcontrôleur central, donc pas de matriçage, pas de ghosting. À gauche, il y a deux connecteurs PS/2, un pour se connecter au PC via soit un câble USB<>PS/2, soit un câble PS/2<>PS/2. L'autre connecteur étant pour brancher un vrai clavier. PS/2 ou USB, pas de différence, c'est plus une question de goût... Les pins qui dépassent à gauche servent à allumer des LED de clavier (genre Num, Maj/Cap, Scr).
Par défaut l'I-Pac est configurer pour MAME, et ce n'est pas satisfaisant. Aussi il vaut mieux le re-configurer grâce au logiciel disponible : WinIPAC.
Perso, j'ai utilisé les flèches, des touches alphabétique, la touche entrée, la touche Tab et la touche Esc dans ma config. (qui n'est pas celle qui est affichée, mais j'ai la flemme de faire des copies d'écran sur ma borne).
Autre bonus que ne fournit pas le hack d'un clavier, ce sont les "shifts" et les macros.
Les touches "shifts" consistent à dédoubler chaque contact par un autre. Exemple : le bouton PL1 donne Start 1, le bouton PL1 donne Start 2 (je ne vous donne pas les équivalent clavier car inutiles), par contre si je presse PL1 et PL2 en même temps, c'est comme si j'appuie sur Esc. Le bouton PL1 sert de "shift", le bouton PL2 non shifté donne Start 2, mais shifté il donne Esc. Pratique non ? pour sortir d'un jeu sans dédier un bouton à ça.
Et pour les macros, c'est pareil, sauf qu'on peut faire des combinaisons de touches. Ainsi, pour moi PL1 + Coin1 = Alt+F4 (de quoi sortir de certains programmes récalcitrants).
Le choix a été fait par les concepteurs de l'I-Pac que le bouton PL1 soit le "shift", et il est vrai qu'en jeu on ne touche pas ce bouton...
Faisons une config perso.
Le logiciel est assez facile de prise en main, aussi je ne vais pas faire un tutoriel, mais expliquer les principe généraux.
- On est le mode "design panel", autrement dit on dessine.
- On efface tout et on place joysticks et boutons comme sur son propre panel. On peut avoir différentes couleurs de boutons ...
- On attribue le bouton à son connecteur sur la carte électronique (Attention pour les joysticks à bien repérer les microswitchs activés selon les inclinaisons du stick).
- À ce niveau, par défaut celà correspond à une configuration MAME par défaut, et comme on l'a vu il faut la changer.
- On peut sauvegarder cet état initial au cas où.
- Ensuite on va dans Go to Set Keycodes Mode.
- On reste sur "Show Normal Keys" pour configurer les boutons non-shiftés.
- Pour chaque bouton virtuel qu'on clique à la souris, on peut attribuer une nouvelle touche de clavier en la pressant simplement sur le clavier branché sur l'I-Pac (on peut aussi utiliser le clavier virtuel de Windows accessible par l'icone clavier dans ce logiciel, mais je n'ai pas essayé au cas où il y ait des soucis QWERTY/AZERTY). Et alors on se refait toute la config.
- Pour les "shift", c'est pareil sauf qu'on va dans "Show Shift Keys".
- pour les macros, on va dans le menu "Edit", puis "Define Macro". On peut définir 4 macros.
- Enfin, on affecte une macro à une touche shiftée : cli droit de la souris sur le bouton et on choisit la macro dans le menu déroulant.
- On se fait une sauvegarde parce qu'on ne s'est pas donné tant de mal pour rien.
- On clique sur le bouton "Program", en bas à droite et hop c'est fait.
- On peut tester avec le test-mode, ou plus simplement en lançant Notepad et en appuyant sur chaque bouton.
Une fois tout cela fait, il faut refaire la configuration de MAME pour que ça corresponde.
Il y a plusieurs façon de faire :
1) On a le MAME "de base". On lance l'exécutable et on va dans "Configure General Inputs".
2) On a un MAME "amélioré". On cherche le menu de configuration des Inputs.
3) Quand on est dans un jeu, on appuie sur la touche Tab et on a ce menu qui s'affiche :
Et on choisit "General inputs". Comme cela on configure les boutons par défaut pour tous les jeux. On pourra éventuellement configurer certains jeux pour des dispositions particulières de boutons après.
À ce niveau il vaut mieux avoir encore le vrai clavier braché sur l'I-Pac, pour naviguer facilement dans les menus.
Pour la navigation : les flèches, la touche Entrée. Attention à la touche Esc, car elle permet de quitter (les sauvegardes se font automatiquement au fur et à mesure), mais aussi d'enlever la config d'un input.
Bref ! On passe dans "player 1", "player 2" et "other". Je vous conseille de virer les "touches suspectes", c'est à dire les diagonales de joystick, les touches que vous avez choisi et que MAME avait attribué par défaut à des fonctions "internes" comme le contrôle du son, de l'affichage ...etc. Donc autant fouiller un peu dans les menus... et sur le Net.
Pour les Roms.
Il faut un répertoire dédié dans lequel on place toutes les Roms et les Bios sous forme de fichiers Zip. En fouillant sur le net on trouve tout (Roms, Bios, et façon de faire).
- Les roms ce sont les fichiers extraits des modules électroniques qu'on trouvait dans les bornes arcade. On dit ROM pour Read Only Memory, car les microcontrôleurs des cartes électroniques d'arcade étaient programmée "en dur" dans des "puces". Il a fallu le travail de hackers passionnés pour extraire ces données. Cependant elles ne sont pas libre car résultant d'une forme de piratage... Mais bon, avec les années certains binaires de jeu se sont trouvés sur la place publique ainsi que leur code source. Donc diffusé pour tout un chacun.
- Les Bios sont aussi des programmes qui permettent de démarrer des systèmes d'arcade plus standardisés. En effet, au début des jeux arcade, chaque borne était faite à l'unité pour un jeu particulier. L'électronique aussi était spécifiquement dédiée. Puis par soucis d'économie, les fabricants ont opté pour des brones "standardisées" selon leur volonté, et qu'on pouvait adapter pour chaque jeu de la firme. C'est aujourd'hui encore le cas, mais j'en parlerai plus tard. Du coup, ces bornes, un peu à la manière d'un ordinateur personnel ont besoin d'une séquence de démarrage, de configuration et de recherche du jeu installé, à lancer. C'est le rôle du Bios.
- Il peut y avoir des fichiers à ajouter comme les CHD. Ce sont des gros fichiers qui peuvent contenir des parties secondaires d'un jeu (séquences video, textes...) mais parfois des parties importantes. Il faut fouiller sur le Net pour avoir des infos là dessus, ça concerne essentiellement des jeux assez récent (moins de 10 ans).
Pour les roms il faut faire attention car il existe des roms parentes et des roms enfants. C'est à dire ?
- la rom parente est la base commune à tous les jeux qui en décline, elle est indispensable.
- la rom enfante ne contient que la partie variable qui permet la déclinaison d'un jeu.
Exemple : Pac-Man
Il y a une rom appelée pacman.zip, qui correspond à la déclinaison du jeu pour le marché américain, éditée par Midway et qu'on a connu dans les bars français il y a quelques années. Ce n'est qu'une rom enfant. La rom parente est puckman.zip, car le jeu originel est Puck-Man édité par Namco au Japon.
De ce fait, on doit aussi s'intéresser un peu à l'histoire de ces jeux, plutôt que d'accumuler et de ne jouer à presque rien...
Autre type de roms : les bootlegs.
La définition de Wikipedia est assez vraie, mais à ce titre, toutes les roms sont des bootlegs. Je préfèrerais parler de hacking, plutôt que de piratage. Et là il faut une explication. Un hacker n'est pas forcément le "méchant" qu'on veut décrire dans la presse ou les films et qui s'attaque à des systèmes informatiques pour les détruire. C'est aussi un bricoleur et un joueur. Certains hackers se sont amusés à produire des déclinaisons farfelues (mais non officielle) de certains jeux. Un exemple parmi d'autres et la version Rainbow de Street Fighters II. http://www.youtube.com/watch?v=42AzKt46lAA
Dans ces bootlegs, on peut voir personnages changés, leurs caractéristiques physiques changer, les décors modifiés ...etc. Il y a des choses amusantes à trouver.
Au final, on configure MAME pour qu'il trouve les roms (mais ce n'est pas indispensable). Et pour lancer une rom il suffit de lancer la ligne de commande : mame.exe rom.zip , ou plutôt l'exécutable de mame installé espace la nom de la rom zippée.
Et voilà on a bien dégrossi l'émulation intégrée dans une borne.