Avant de se lancer dans la lecture de cet article, sachez plusieurs choses. Pour commencer, il sera primordial d'avoir quelques connaissances en émulation, mais surtout, pour la majorité des projets présentés, une certaine aisance avec le terminal, voire la compilation de sources. Enfin, quelque soit le choix de votre application pour certaines plateformes cibles, l'utilisation d'un bios sera obligatoire. Ces fichiers pouvant être spécifiques à l'application et devant parfois porter un nom précis, voire être compressé ou non, il sera trop long de détailler toute la procédure pour chacun. C'est pourquoi, cet article ne vise pas à être un tutoriel complet mais une présentation, et nous considérerons que votre expérience en la matière sera suffisante. À noter que l'aide officielle de chaque, bien qu'en anglais, est très souvent convenable.
Introduction
Comme à l'habitude, nous nous devons de vous préciser que pour rédiger cet article, les tests ont été réalisés sur un MacBook Pro Intel Core i5 2,5 GHz comportant 4 Go de RAM DDR3 avec un chipset graphique Intel Graphics 4000 1024 Mo sous MacOS X 10.10.5 et qu'à l'heure où ces lignes sont écrites, nous ne parlons que des émulateurs multi-machines les plus connus et disponibles pour MacOS X.
MESS
À tout seigneur, tout honneur. Mess, ou Multi Emulator Super System, désormais fusionné avec l'incontournable Mame, est le plus ancien émulateur multi-plateforme connu. Contrairement à bon nombre, il n'utilise pas les moteurs d'émulateurs dédiés sous forme de librairies, mais utilise un seul et même binaire pour émuler un nombre incroyable de plateformes. Si les sources sont facilement compilables, vous pourrez toujours récupérer des binaires sur le net. Ceux qui ont connus Mac OS 9 et MacOS X PPC, regretteront peut-être la magnifique interface qui a disparue pour laisser place à celle de la SDL. Ceci dit, elle permet d'avoir une interface unifiée, quelque soit l'OS, et reste assez simple d'utilisation comme nous allons le voir.
Que les amoureux du terminal se rassurent, la ligne de commande fonctionne aussi. C'est même cette dernière qu'il va falloir utiliser pour commencer.
En supposant que vous ayez un binaire de mess nommé "mess64", la première chose à faire dans votre terminal sera de taper la ligne suivante : ./mess64 -createconfig
Doit alors être créé un fichier texte du nom de "mess.ini" à côté de votre binaire. C'est lui qu'il faudra modifier pour rendre l'émulateur exploitable. Commencez par vous assurer que sont spécifiés des chemins pour chaque valeur de la section "CORE SEARCH PATH" et notez que celui dédié aux fichiers firmware et bios est "rompath". Si certains ont une valeur mais n'existent pas, ils vous faudra créer ces dossiers.
La particularité de Mess est que pratiquement tout système à besoin d'un bios, il va donc falloir les récupérer, les renommer, voire les compresser et les installer dans le dossier spécifié par "rompath". Une fois fait, vous êtes en mesure de lancer mess par la simple ligne de commande : ./mess64
Une magnifique interface apparait et vous propose de taper le nom du système que vous souhaitez émuler. Notez que les noms européens sont rarement reconnus pour la recherche et qu'il vaut mieux privilégier les noms nord-américains, tel "genesis" pour la megadrive.
Une fois votre système choisi, ce dernier se lance, malheureusement sans programme pré-chargé. C'est pourquoi l'application vous proposera alors d'en choisir un. Notez qu'un ou plusieurs messages d'informations et d'alertes vous demanderont, comme pour Mame, une validation en tapant OK (touche 'o' puis 'k' sur le clavier).
Par la suite, validez le type de périphérique, souvent une cartouche, d'où "cart", puis sélectionnez votre fichier.
Il ne vous reste plus qu'à faire un "Reset" pour que le tout se lance.
Comment faire de même en ligne de commande ? En réalité cela est simple, il suffit de respecter ce format : ./mess64 [system] [périphérique] [fichier]
Ainsi, pour lancer Streets of Rage 2 sur megadrive, en supposant que mon fichier rom se trouve à côté de l'émulateur, il me suffira d'entrer : ./mess64 genesis -cart SOR2.SMD
Pour ce qui est de l'émulation de disque optique, il va falloir transformer vos fichiers bin/cue en fichier chd, un format raw spécifique à Mame et ses dérivés. Si je parle de bin/cue, c'est parce que l'outil chdman, qui normalement se trouve dans le répertoire "tools" de mess, ne semble savoir convertir que ce type de fichier. Je ne sais pas si poweriso convertit convenablement des iso en bin/cue, par contre, Toast, payant, réalise des fichiers bin/cue à partir de vos originaux. Pour en revenir à l'utilitaire de conversion, celui-ci s'utilise de la manière suivante : ./chdman [format] --input [fichier cue] --output [fichier chd]
. Pour mon jeu Tekken3, dont j'ai fait une image bin/cue, il me suffit de taper : ./chdman createcd --input Tekken3.cue --output Tekken3.chd
. J'ai toutefois remarqué que l'utilitaire avait énormément de mal à convertir les images multi-pistes, mélangeant données et pistes audio dans un seul fichier binaire, il est toutefois plus à l'aise lorsque le multi-piste est représenté par un seul fichier pour chaque piste.
Une fois les images faites, nous pouvons relancer mess et notre système préféré. Si aucune demande de fichier n'intervient, souvent parce que le bios se suffit, c'est qu'il va falloir sélectionner le fichier vous même à l'aide de l'interface SDL en appuyant sur la touche de 'tabulation' puis en choisissant le menu "File Manager".
Devait apparaître l'option cdrom qui s'utilise comme nous l'avons fait avant avec l'option "cart".
Une fois le fichier chd chargé, il suffit une nouvelle fois de faire "Reset" pour que tout se lance normalement.
Encore une fois, le tout peut se faire en ligne de commande en remplaçant l'option -cart
par -cdrom
. Ainsi, si vous désirez vous infliger l'un des pires jeux Zelda qui soit, en supposant que l'image de votre jeu CD-i "Link The Faces of Evil", se nomme "Link.chd" et se trouve à côté de mess, il vous faudra taper : ./mess cdimono1 -cdrom Link.chd
Concernant le CD-i, par défaut, la touche "w" permet de démarrer la lecture du cdrom.
Vous voilà prêt pour utiliser MESS, que ce soit via le terminal ou l'interface SDL, sachez par ailleurs qu'il vous faudra sans aucun doute modifier les touches propres au système émulé grâce à l'option "Input (this system)".
Pour ceux qui regretteraient vraiment l'interface plus intuitive que proposait la version Classic MacMess, à l'instar de MacMame, je n'ai malheureusement rien à proposer d'identique. Mais il faut savoir que si les interfaces ne sont pas légions, il en existe au moins une appelée QMC2.
Il faut dans un premier temps indiquer où se trouve l'exécutable ainsi que certains répertoires dont celui des roms où devront se trouver les bios des machines que vous voudrez émuler.
Nous prendrons l'exemple de la Gameboy Advance de Nintendo pour laquelle nous aurons mis le firmware "gba.zip" dans le dossier "roms" défini ci-dessus. Et pour que vos fichiers soient bien pris en considération, lancer une vérification des roms.
Il ne vous reste plus qu'à faire défiler les onglets pour afficher l'explorateur de fichiers comme dans la capture ci-dessous, et double cliquer sur l'icône disque suivi du caractère slash, afin de naviguer dans vos répertoires.
Une fois votre rom trouvée, double cliquez sur le fichier pour lancer le jeu.
En petit bonus, sachez qu'avec QMC2, existe une interface graphique pour l'outil chdman qui demande lui aussi à ce qu'on lui spécifie l'endroit où se trouve l'exécutable et en option, différents répertoires d'entrées/sorties.
Il suffit alors de sélectionner "New Project" dans le menu "File", et choisir dans quel contexte on veut utiliser l'outil. Par exemple créer une image à partir d'une autre.
Il vous suffit simplement d'indiquer l'image disque que vous souhaitez convertir, ainsi que le fichier chd à créer. Vous pourrez même choisir le type de compression, avant de lancer l'exécution via le petit bouton représentant deux engrenages.
Mess est sans doute l'émulateur qui propose le plus de plateformes, puisqu'il émule autant les consoles de jeux que de micro-ordinateurs comme le PC ou le Mac (voir les tutoriels en anglais). D'ailleurs l'outil chdman permet aussi de faire des images disques.
Malheureusement, Mess ne semble pas toujours très fiable. Nous n'avons pas réussi à émuler Slayer ou Need For Speed pour 3DO, les Shining Force, Virtua Fighter et autre Dragon Force pour Saturn n'ont pas démarré, tout comme les jeux Cotton et Castlevania sur PC Engine-CD. À ce propos, vous ne trouverez bizarrement pas la pc-engine, ni sa déclinaison CD, dans la liste des machines via l'interface SDL (mes yeux me font sûrement défaut). Vous pouvez toutefois lancer votre jeu hucard depuis le terminal : ./mess64 pce -cart [fichier]
ou ./mess64 pce -cart syscard3.pce -cdrom [fichier_chd]
pour la version cd-rom.
Pour en savoir plus sur Mess, nous vous conseillons vivement la documentation officielle de MAME qui a intégré MESS en 2015.
MEDNAFEN
Mednafen reprend le principe de Mess, même si ce dernier utilise parfois du code source d'émulateurs plus connus. Ce dernier demande d'être compilé avec pas mal de librairies dont la SDL, bien que d'anciens builds pour Mac OS X soient proposés sur le forum officiel, malheureusement pas toujours fonctionnels, justement à cause de ces librairies le plus souvent. Le site japonais Nekocan propose une interface graphique pour cet émulateur mais qui ne gère pas l'affectation des touches.
Cet émulateur s'utilisera donc principalement en ligne de commande, de part son architecture et sa gestion. Le fichier de configuration se trouve dans un répertoire caché à la racine de votre session. Il est donc plus facile de l'ouvrir avec un éditeur en ligne de commande comme "vi", exemple : vi /Users/[votre_nom_utilisateur]/.mednafen/mednafen-09x.cfg
Dans ce fichier, vérifiez que vous utilisez bien la bibliothèque SDL en recherchant cette ligne :video.driver sdl
Vous pouvez passer en plein écran en mettant 1 comme valeur à "video.fs".
Concernant les touches pour chacune des machines, elles sont définies dans ce fichier et sont généralement configurées de la sorte : [nom_machine].input.[port_manette].[type_manette].[touche_manette] keyboard [code SDL]
Si vous voulez mapper la touche directionnel du haut du Gameboy sur la touche directionnelle du haut de votre mac, il faudra donc modifier la ligne correspondante comme suit :gb.input.builtin.gamepad.up keyboard 273
Pour que le bouton "A" de la Super Nes soit la touche "w" de votre mac il faudra faire comme suit :snes.input.port1.gamepad.a keyboard 119
Simple non ? Evidemment c'est un peu fastidieux et afin de ne pas passer trop de temps à connaître les codes de la SDL, voici un lien pour vous aider : https://wiki.libsdl.org/SDLKeycodeLookup
Mednafen est certes configuré mais non totalement prêt. Encore une fois, certaines machines demanderont la présence d'un fichiers bios. Pour les connaitre, le wiki officiel, même en anglais, restera votre aide la plus précieuse. Une fois en votre possession, il vous faudra placer ces sésames dans le répertoire firmware se trouvant à côté du fichier de configuration.
Cette dernière étape réalisée, mednafen s'utilise le plus simplement du monde... En ligne de commande. Il suffit de taper la commande suivante : ./mednafen [fichier_rom]
Si vous avez bien lu le wiki, alors vous savez déjà que pour des images CD-Rom, il faudra utiliser des fichiers bin/cue en spécifiant le fichier ".cue" dans la ligne de commande.
Attention amis dresseurs de Pokemon sur GBA, vous aurez certainement un problème de lancement de jeu du au type de sauvegarde.
Ne paniquez pas, il suffit d'indiquer que le type est du flash 128 de la manière suivante :echo 'flash 128' >> /Users/[nom_du_compte]/.mednafen/sav/[nom_fichier_rom].type
Vous n'avez plus qu'à relancer votre jeu préféré et tous les attraper.
Pour peu que vous n'ayez pas peur du terminal et soyez assez à l'aise avec un environnement Unix, Mednafen reste assez simple d'utilisation mais il demande à ce que vos roms aient un header valide, sans quoi il ne reconnaitra pas le type de module à lancer. Vous pourrez toujours le forcer de la façon suivante, mais sachez que s'il n'a pas reconnu le type en automatique, il y a peu de chance que la rom soit reconnue même en forçant le module : ./mednafen --force_module [module] [fichier_rom]
. Les modules possibles sont listés dans l'aide : ./mednafen --help
À titre expérimental il supporte aussi le jeu en réseau uniquement pour certaines machines (voir le wiki), mais nous ne l'avons pas testé.
RETROARCH
En terme d'émulation pure, RetroArch ne propose pas de code original, à une exception près (actuellement). Il réutilise les moteurs des émulateurs les plus connus et bien souvent les plus performants du monde de l'émulation, pour les transformer en librairies. Ce sont ces librairies qui seront utilisées par RetroArch lorsque vous demanderez à émuler tel ou tel système. Ainsi ne vous étonnez pas de convenir que l'émulation Saturn semble être en tout point la même que Yabause ou que celle NintendoDS ressemble étrangement à DeSmuME, puisque ce sont les moteurs de ces émulateurs qui sont justement utilisés.
Vous l'aurez compris, de par son architecture, son installation demande un peu d'organisation. Tout d'abord il vous faut récupérer le binaire. L'interface est assez sommaire mais fonctionnelle. Les touches du clavier pour valider vos choix vous sembleront bizarrement configurées, 'x' pour valider, 'w' pour annuler et 'echap' pour quitter. À noter que l'application est traduite en français (settings -> user -> language).
De base, l'application n'est qu'une coque vide et le plus simple est peut-être d'utiliser l'installation en ligne des moteurs en utilisant le menu de mise à jour.
Mais vous pouvez tout aussi bien installer le tout à la main puisque les cores sont disponibles sur le site officiel.
Les fichiers bios s'installent dans un dossier à part, mais vous pouvez modifier cela. Il vous faudra le spécifier grâce à l'application, dans "settings" puis "directory" où se trouve le dossier contenant les moteurs, les fichiers bios, les sauvegardes d'état etc.
Pour ce qui est maintenant de jouer, il suffit de charger votre 'core', puis votre rom ou image au format cue dit 'content'. D'ailleurs le menu 'load content' vous permet de charger le 'core' automatiquement sur détection du type de jeu. Dans le cas où il ne saurait pas lequel charger, le logiciel vous fera une proposition.
Afin de rendre l'exercice moins fastidieux, vous pourrez demander à scanner vos dossiers. Les roms détectées, supposant une en-tête correcte avec le md5 attendu, seront alors accessibles directement via un nouveau tableau ou toujours via le menu "load content" en choisissant alors le jeu dans votre collection.
Notez que certaines manettes sont automatiquement reconnues comme celle de la Xbox 360 par exemple. RetroArch propose un large éventail d'émulateurs dont certains ne connaissaient pas de version applicative dédiée pour Mac OS X, comme reicast, l'émulateur Dreamcast.
Clairement loin d'être simple d'utilisation, il est pourtant très performant, au point de proposer des options permettant d'ajuster au mieux l'émulation et le rendu. Il est alors possible d'avoir un rafraichissement au plus proche de celui du jeu original, sur jeu d'arcade par exemple. Cela vous demandera tout de même quelques calculs savants, mais si vous êtes anglophones, les auteurs semblent très disponibles sur le forum officiel en cas de besoin.
Si RetroArch est l'interface officielle du projet libretro, celui-ci étant libre, une nouvelle interface graphique un peu plus intuitive a fait son apparition tentant de ressembler à OpenEmu (voir ci-dessous). Nommée Phoenix, elle est encore en développement et n'inclus actuellement pas tous les cores.
Notez que depuis, une interface simplifiée officielle de la libretro nommée ludo est disponible, moyennant moins de coeurs intégrés et par conséquent une reconnaissance de jeux plus réduites, mais aussi l'accès à moins d'options et le support uniquement des manettes Dual Shock 3/4, XBox 360/One et 8BitDo Nes30 Pro, toutes en filaire.
OPENEMU
OpenEmu reprend la philosophie de RetroArch, au point qu'un auteur d'OpenEmu a affirmé avoir des contacts avec les auteurs du projet libretro. Lui-même est basé sur un système de librairies, même si OpenEmu en propose visiblement moins que son aîné, ni les options complexes permettant de coller au plus prêt de la vitesse et rafraichissement vidéo du jeu.
OpenEmu possède pourtant un point fort, qui le rend presque incontournable. Son intégration à macOS est proche de la perfection, le rendant d'une simplicité incroyable en plus d'être beau.
Il suffit de déposer les fichiers des roms et autres images disques dans l'interface, pour que la bibliothèque s'enrichisse sous vos yeux, avec, moyennant une connexion internet, de jolie jaquette au dessus du nom du jeu.
Il ne reste alors plus qu'à sélectionner votre machine sur le menu de droite et double cliquer sur l'image du jeu voulu pour que l'émulation commence.
Et si tel n'était pas le cas, à cause d'un oubli de fichier bios, un message vous indique le fichier manquant que vous n'aurez qu'à le déposer dans le dossier "Bios" réservé à OpenEmu dans le dossier "Application Support" de votre bibliothèque pour résoudre le souci.
Tout est pensé pour être simple d'accès puisque bouger votre souris fera apparaître une petite barre de menu vous proposant la majorité des options de sauvegarde, contrôles, audio et vidéo. Et si vous avez oublié de sauver avant de quitter l'application, pour chaque jeu lancé, l'application vous proposera de reprendre le jeu où vous vous étiez arrêté.
De plus, OpenEmu étant uniquement destiné à notre plateforme préférée, les manettes supportées par le HID d'Apple sont automatiquement reconnues.
Bref, l'application est tellement simple qu'un tutoriel semble superflu. Autant dire que si votre besoin d'émulation se résume majoritairement aux machines les plus courantes se situant entre les 8 bits et les 32 bit ainsi que l'arcade, alors nul doute qu'OpenEmu sera votre seule et unique application. Comme on dit : "un must have sur Mac".
Pour en savoir plus sur l'utilisation d'OpenEmu, un dossier lui est consacré ici.
DSP32 & BIZHAWK
Depuis quelques temps, certains multi-émulateurs dont la cible est le système de Microsoft, débarquent sur Mac. Malheureusement pour le premier, Dsp32, impossible de le faire fonctionner malgré deux versions différentes. Pour le second, BizHawk, celui-ci possède une interface classique mais simple à comprendre. Encore une fois des bios sont indispensables et il faudra aller dans le menu "Firmware" pour indiquer où se trouvent les fichiers spécifiques attendus pour ensuite pouvoir ouvrir jouer avec sa rom.
Mais ne le cachons pas, si Bizhawk est une attention des plus louables des développeurs, surtout qu'il apporte des outils pour réaliser des speedrun, le fait de devoir utiliser Mono, un interpréteur du framework DotNet, pour pouvoir utiliser un émulateur, rend l'application un peu lente suivant la machine émulée et parfois même instable avec quelques crashs.
Conclusion
Le tout en un ultime n'existe pas.
Devant tous ces choix, vous trouverez sûrement celui qui vous conviendra le mieux. Les développeurs ont passé énormément de temps pour nous fournir une application de qualité, mais chacun y apporte sa vision et sa philosophie. C'est pourquoi la majorité y trouvera son compte suivant ses besoins et contraintes.
Si votre but est d'utiliser un émulateur d'une simplicité enfantine sans pour autant à chercher à supporter le maximum de machines, OpenEmu est clairement le choix idéal.
RetroArch proposant un bon nombre de moteurs d'émulateurs ayant fait leurs preuves, avec sa gestion automatique des manettes les plus "connues", on lui pardonne facilement son interface un peu complexe notamment grâce à des moteurs exclusifs comme reicast. Il reste aussi idéal pour ceux qui veulent une émulation précise au niveau des fréquences d'affichage mais cela reste réserver à ceux qui n'auront pas peur de le configurer.
Les plus curieux, voulant découvrir, où recherchant des machines exotiques, se lanceront sans hésiter dans Mess (inclus dans MAME). Le doyen du genre se lance désormais en ligne de commande ou via une interface et propose un nombre impressionnant de machines, non toujours bien émulées il est vrai. Certaines ne sont d'ailleurs émulable sous Mac que grâce à Mess et au final, l'adaptation à l'interface SDL intégrée se fait plutôt bien.
Mednafen est clairement le moins simple d'utilisation, puisque le sujet de Sky et les dernières tentatives de Benjamin sur le forum (en plus des builds proposés par d'autres), montre bien qu'il vous faudra une certaine connaissance de la compilation et installation de librairies sous OSX. Mais ce n'est pas pour cela qu'il faut le bouder. Si les derniers binaires OSX ne sont pas à jour et qu'il ne propose pas autant de machines que les autres, il ne faut pas oublier que certains de ses moteurs sont justement utilisés par la libretro et OpenEmu et que d'autres sont inédits et donc parfois la seule alternative à des émulateurs dédiées. Ainsi les plus bidouilleurs d'entre vous pourront se faire plaisir à le modifier comme bon leur semblera et pourront profiter d'un second émulateur Sega Saturn, par exemple, encore non disponible autrement.
Enfin, un BizHawk, même si instable parfois, permettra à certains de tester des émulateurs, jusqu'ici réservés à l'OS de Microsoft tel VBA-Next par exemple ou s'initier aux outils de speed-run.
Ainsi nous le répétons, ce dossier n'a pas pour but de dire lequel est le meilleur, plus nous avons le choix, même ceux venus du monde Windows ou Linux, mieux c'est. Le but est simplement de vous éclairer sur les possibilités et utilisations de chacun, et ainsi, que vous puissiez vous orienter vers celui correspondant le plus à vos besoins et compétences. Comme nous avons pu le voir, certains vous garantiront une simplicité d'utilisation, laissant parfois de côté des fonctionnalités que proposait l'émulateur dédié ou n'ayant pas le moteur aussi à jour que l'émulateur original, alors que d'autres vous apporterons l'exclusivité d'un moteur unique voir d'une machine.
Il ne vous reste plus qu'à trouver votre voie et vous souhaiter bonne émulation à toutes et tous.
PS: Si nous ne listons pas l'ensemble des machines supportées par les différents émulateurs, c'est pour la simple raison que ces derniers évoluent continuellement, apportant le support d'autres machines au fur et à mesure. Nous vous conseillons donc de vous reporter à la rubrique concernés aux émulateurs sur notre site pour avoir plus d'informations, voire les sites officiels de chacun.