Mon Mame à moi
C'est parti pour ce 2ème Tutoriel, dédié à la réalisation d'une version "perso" de MAME, plus adaptée à un usage privé que la version officielle.
Nous allons donc supprimer tous les messages d'avertissements au lancement d'une ROM imparfaite.
Le MAME résultant pourra être utilisé sous AtomicFE en mode ScreenSaver avec lancement de jeu aléatoire sans aucun problème.
Gardez à l'esprit que si un jeu rame, plante, n'a pas de son ou ne se lance pas du tout, ça sera votre faute, vous n'aviez qu'à trier vos roms, n'utiliser que des roms à l'émulation parfaite, ou complète (avec CHD et Samples), l'émuler avec autre chose que MAME et j'en passe. MAME ne vous préviendra plus.
C'est parti
Récupérer le code source
Rendez-vous sur le site http://mamedev.org/ dans la section Download / Latest release.
Téléchargez la dernière version du code source (son nom se termine toujours par un 's'), le plus simple est de choisir la version compressée auto-exécutable
Installer le code source
Décompressez le source-code dans un répertoire temporaire. Pour simplifier je mets ça dans c:/mamesrc
L'arborescence du source-code est prête, une chose à repérer pour plus tard, le sous-répertoire src/emu
Récupérer les outils de développement
Toujours sur le site Mamedav, allez dans la section Development / Development tools
Cette section du site indique très précisément les étapes à suivre pour compiler MAME, je n'ai rien inventé.
Pour résumer, télécharger le compilateur MINGW
Installer les outils
Comme pour le source-code, l'auto-extracteur vous demande la destination, j'ai choisi c:/mingw
L'arborescence du compilateur est en place.
Notez bien le répertoire que j'ai mis en surbrillance. Il contient les headers des fonctions C++ utilisées dans le source-code, mais il manque 6 fichiers spécifiques à Windows, des fichiers DirectX
Ces fichiers nous allons les trouver dans un fichier .ZIP complémentaire, téléchargeable sur la même page du site Mamedev.
Ouvrez le fichier ZIP, il contient deux sous-répertoires. include et lib.
Regardez dans le sous-répertoire lib, et sélectionnez les fichiers suivants :
Décompressez les dans le répertoire c:/mingw/include que nous avons créé tout a l'heure.
Attention ! Précisez bien à votre outil de décompression de ne pas recréer l'arborescence, de manière à ce que les fichiers .h rejoignent leurs camarades, et non un sous répertoire include dans include !
Voilà, le compilateur est prêt.
Localiser le fichier source
Les modifications à apporter à MAME concernent l'interface utilisateur de l'émulateur (user interface). C'est donc dans le fichier ui.c que nous allons tout casser. Vous le trouverez dans c:/mamesrc/src/emu.
Modifier le source
Ouvrez le fichier ui.c avec un éditeur de texte quelconque. Le bloc-Notes fera l'affaire.
Il y a plusieurs façons de contourner les messages, mais je présente ici la plus simple, ne nécessitant aucune connaissance en programmation.
Cherchez le morceau de source suivant :
int str = options_get_int(mame_options(), OPTION_SECONDS_TO_RUN);
int show_gameinfo = !options_get_bool(mame_options(), OPTION_SKIP_GAMEINFO);
int show_warnings = TRUE;
int state;
/* disable everything if we are using -str */
if (!first_time || (str > 0 && str < 60*5) || Machine->gamedrv == &driver_empty)
show_gameinfo = show_warnings = show_disclaimer = FALSE;
Vous avez deux solutions. Soit vous mettez deux lignes en commentaire, soit vous les supprimez purement et simplement.
dans le premier cas ça donnera ça (en vert les lignes mises en commentaires ou supprimées)
/* int str = options_get_int(mame_options(), OPTION_SECONDS_TO_RUN);*/
int show_gameinfo = !options_get_bool(mame_options(), OPTION_SKIP_GAMEINFO);
int show_warnings = TRUE;
int state;
/* disable everything if we are using -str */
/* if (!first_time || (str > 0 && str < 60*5) || Machine->gamedrv == &driver_empty)*/
show_gameinfo = show_warnings = show_disclaimer = FALSE;
C'est tout.
Fermez le fichier en enregistrant les modifications.
Compiler
Reste à compiler un nouveau MAME.EXE. Pour cette opération, nous allons descendre à la cave (sous MS-DOS).
Ouvrez une ligne de commande et tapez cd /mamesrc, puis appuyez sur entrée.
Ajoutez le compilateur au chemin d'exécution en tapant set path=%path%;c:/mingw/bin
Enfin lancez la compilation en tapant la commande mingw32-make
C'est parti pour 20 minutes de serbo-croate accéléré.
20 minutes plus tard (en moyenne), si n'avez pas raté une marche, dans le répertoire c:/mamesrc vous trouverez un beau MAME.EXE tout neuf, d'une trentaine de MegaOctets.
MAME.EXE se suffit à lui même. Vous pouvez le placer dans un répertoire vierge, (C:/MAME par le plus grand des hasards).
Pour l'initialiser, c'est à dire générer un fichier MAME.INI par défaut que vous pouvez modifier à loisir, tapez la commande
mame -createconfig
A vous de jouer.