Émulation vidéoludique
L'émulation permet de simuler un matériel nécessaire à l'exécution d'applications prévue pour d'autres architectures matérielles.
Concrètement, il s'agit de faire fonctionner sur votre ordinateur des programmes prévus pour d'autres types de machines : par exemples, des jeux pour Nintendo64 sur un PC sous GNU/Linux.
Introduction
L'émulation est réalisée à l'aide d'un logiciel, appelé émulateur, qui va permettre de traduire les instructions prévue pour l'architecture émulée en leur équivalent dans l'architecture physique de la machine utilisée.
Ainsi, de manière élémentaire, pour faire fonctionner un programme sous une autre architecture que celle d'origine, il suffit d'installer un logiciel émulateur et de lancer le programme souhaité.
Légalité
- La légalité des émulateurs est établie dans la plupart des cas. Dans certains pays, comme aux USA, des jugements ont permis d'établir formellement la légalité de ces programmes, notamment beaucoup de cas où les programmes émulés ont été acquis légalement.
- Le téléchargement et l'utilisation de BIOS sont bien souvent illégaux.
- L'utilisation de ROM (fichiers binaires contenant des jeux de console) est autorisée dans certains pays au titre de la copie de privée (ce qui suppose que vous avez acheté le jeu).
- Dans l'ensemble, le téléchargement de ROM est interdit, bien que parfois toléré par quelques rares éditeurs.
Difficultés
- Un émulateur n'est pas toujours capable de faire fonctionner tous les logiciels d'une architecture. Il est parfois nécessaire de configurer l'émulateur, ce qui peut se révéler techniquement difficile pour un débutant.
- Les émulateurs sont faits par des passionnés : les mises à jour peuvent être très espacées et le développement de certains émulateurs présentés ici est parfois plus ou moins abandonné. Mais d'anciens émulateurs peuvent toujours fonctionner très bien et il n'est pas rare qu'un émulateur abandonné soit redéveloppé des années plus tard par d'autres personnes.
- Tous les émulateurs ne demandent pas les mêmes ressources. L'émulation d'une Game Boy n'est pas trop gourmande, mais celle d'une GameCube demande une bonne configuration.
Malgré ces difficultés, beaucoup d'émulateurs sont d'emblée fonctionnels, aussi est-il parfaitement possible de disposer de milliers de jeux rapidement et sans soucis. Ce qu'il faut garder à l'esprit, c'est que pour certains ordinateurs et certaines consoles, vous n'aurez aucun problème, alors que pour d'autres cela peut demander du temps et parfois n'aboutir à rien.
Types d'émulation
Anciens ordinateurs
C'est l'émulation la plus technique, en raison de l'utilisation de claviers, des nombreuses versions de beaucoup de machines et de l'utilisation de disquettes.
Page dédiée : Émulateurs ordinateurs - Documentation sur l'émulation des ordinateurs :
Amstrad CPC, Amiga, Apple, Atari-8bit, Atari ST, BBC Micro, Camputers Lynx, Commodore, PC (DOS), Jupiter Ace, MSX, Oric, ScummVM et ResidualVM, Thomson MO5, TO7, ZX Spectrum.
Pour les plus connus :
- Amiga : Demande une configuration préalable (kickstar) et configuration requise pour certains jeux. Fonctionne très bien à part ça.
- Amstrad : Fonctionnement immédiat pour certains émulateurs. Émulateurs manquant de finitions, options de configuration insuffisantes.
- Atari ST : Demande un peu de configuration, mais fonctionne bien.
- Commodore 64 : Aucune difficulté.
Arcade
Cette émulation est également assez complexe ; dans le cas de MAME, il faut disposer des bonnes ROMs et la configuration de l'émulateur est assez délicate.
- MAME - Documentation sur MAME, l'émulateur de bornes d'arcade. Très utile également pour les consoles et les ordinateurs plus ou moins oubliés.
- Final Burn Alpha, disponible pour Linux par Retroarch
- Laserdisc : Daphne : Site officiel
- Sega Model 3 : Supermodel
Consoles
L'émulation la plus accessible : on installe un émulateur comme n'importe quel programme, et on ouvre un fichier de jeu.
Page dédiée : Émulateurs console - Documentation sur l'émulation des consoles de jeux sous Ubuntu : Mega Drive, SuperNES, NeoGeo, Nintendo64, Gameboy, Playstation 1 et 2, GameCube, Wii etc.
- Installation simple et fonctionnement sans problème pour : Game Boy, NES, Super NES, Master System, Megadrive, Nintendo DS, PSP, PC-Engine.
- Plus difficile à faire fonctionner, mais bonne compatibilité : Playstation 1 (exige bios et plugins), Nintendo 64 (plugins à configurer), Saturn, GameCube, Wii, Playstation 2, Dreamcast.
Jeux et applications Windows
- Wine : vous permettra de faire fonctionner un assez grand nombre de jeux et d'applications. Pensez à essayer avec Wine des émulateurs disponibles uniquement sous Windows : certains (dont quelques exemples sont donnés dans la documentation) fonctionnent très bien.
- PlayOnLinux - Installez des jeux Windows de manière automatisée.
Partie logicielle
Le minimum
Pour émuler une autre architecture et faire tourner des programmes, il vous faudra au minimum :
- un émulateur ; la liste des émulateurs fonctionnant sous Ubuntu est donnée ci-dessous. La plupart du temps, ces émulateurs sont libres.
- parfois un BIOS, comme pour l'Amiga. En général, les BIOS sont sous copyright, ce qui fait que nous ne donnerons ici pas de lien pour s'en procurer. Mais cela ne concerne pas toutes les architectures et ne vous empêchera donc pas d'émuler un grand nombre d'ordinateurs et de consoles.
- des jeux, sous la forme de fichiers appelés « roms », qu'il suffit généralement d'ouvrir dans l'émulateur. Ces jeux étant eux-aussi souvent sous copyright, nous ne donnerons ici aucun lien.
Distributions dédiées à l'émulation
- Depuis peu, il est possible d'installer Retropie sous Ubuntu : https://github.com/retropie/retropie-setup/wiki/RetroPie-Ubuntu-16.04-LTS-x86-Flavor Sur mono-carte ARM Raspberry et Odroid, Retropie peut être installé par-dessus Ubuntu.
- Autres distributions : Lakka, RecalBox : https://www.recalbox.com/, batocera.linux : https://batocera.org/
Gestionnaires d'émulateurs et interfaces graphiques
Il est en théorie possible d'unifier l'utilisation de tous les émulateurs grâce à des interfaces graphiques simplifiant le catalogage et le lancement des jeux pour toutes les machines. Dans la pratique, l'installation et la configuration de ces interfaces sont parfois extrêmement techniques et très peu accessibles.
- EmulationStation : projet abandonné. Il reste possible de compiler pour Ubuntu la version mise à jour et francisée pour RecalBox : GitHub ou celle pour RetroPie qui propose en outre de nombreux thèmes.
- Emulatron https://github.com/ColinKinloch/Emulatron, ne semble plus développé
- GNOME Jeux : l'application du projet Gnome proposant une interface facile d'accès pour les jeux natifs du système mais aussi pour un très grand nombre d'architecture émulées.
- jGameBase (site), exige java, peu ergonomique.
- Kodi (un media center disponible sur Linux) avec l'add-on Rom Collection Browser disponible pour beaucoup de plateformes différentes. En anglais et souvent bugué.
- Mala
- RetroFE : à compiler, configuration assez technique mais claire. Un avantage appréciable est que l'on peut reprendre assez facilement les médias (images, vidéos) d'HyperSpin.
- Retropie est disponible pour Ubuntu.
Certains ne sont plus développés:
- Gelide (site), ne semble plus développé.
- kamefu (plus développé depuis des années)
Autres utilitaires
- Le scraper d'EmulationStation étant très mauvais, on pourra utiliser : https://github.com/sselph/scraper
- ScreenScraper Base de données en français
Dépôts et dépendances utiles
Dépôts utiles
Assurez vous d'avoir activé les dépôts Multiverse et/ou Universe car certains émulateurs y sont disponibles.
Des dépôts avec des versions plus récentes de certains émulateurs vous seront parfois proposés.
Compilation
Si l'émulateur n'est disponible qu'en sources ou binaires, veuillez bien lire la documentation (FAQ, Readme, Install) pour savoir quelles sont les dépendances à installer.
Parmi les dépendances les plus communes en cas de compilation : libpng, zlib, build-essential, nasm, libgtk2.0 ou libgtk1.2, libsdl, libasound2 libasound2-dev libegl1-mesa-dev libgles2-mesa-dev cmake qtbase5-dev qtmultimedia5-dev libqt5opengl5-dev libopenal-dev libsdl2-dev
Éléments de configuration
Les émulateurs de jeux partagent certaines configurations, mais certains sont plus configurables que d'autres ou possèdent des paramètres spécifiques. Nous indiquons ici quelques éléments de configuration de base à connaître pour s'y retrouver à peu près dans l'utilisation de n'importe quel émulateur.
- Lancer un jeu : dans bon nombre de cas, cliquez sur fichier en haut à gauche, puis open rom, open rom image, open, ou disk, etc. À noter que de nombreux émulateurs de machines les plus anciennes (jusqu'à la Nintendo 64) prennent en charge les roms compressés (au format
.zip
en général). - Arrêter un jeu sans arrêter l'émulateur : Fichier → Close.
- Paramètres vidéo : préférences, display ou vidéo.
- Modifier la « pixellisation » : dans les paramètres vidéo, cherchez Filtres, Appliquer un filtre ou Filter, et essayez les différents filtres proposés pour lisser l'image. Certains émulateurs permettent de combiner lissage et scanlines (fines lignes horizontales atténuant le crènelage)
- Taille de la fenêtre : option scale ou changer la taille (1x, 2x, 2x, etc).
- Résolution interne : Très intéressante pour la 3D (donc à partir de la Playstation, Saturn, Nintendo 64, Nintendo DS, etc) : cette option augmente réellement la résolution de l'image, puisque tous les éléments en 3D sont recalculés avec en autres une meilleure finesse. Les résultats pour des jeux PSP ou Nintendo DS peuvent être spectaculaires, mais cela demande un ordinateur très performant.
- Améliorer la vitesse : Dans quelques cas (Yabause et d'autres), on peut essayer d'activer l'option Dynamic Recompiler, mais quelques jeux peuvent ne pas la supporter. Plus basiquement, l'option Frameskip permet de diminuer le nombre d'images de l'animation. Il est souvent déterminé automatiquement par l'émulateur, mais si un jeu s'avère un peu poussif, définir Frameskip à 2 peut résoudre le problème sans diminuer sensiblement la qualité de l'affichage. Un saut d'images plus élevé dégrade en général beaucoup trop le jeu. À noter que si la vitesse est au contraire trop importante, cette option Frame Limiter peut arranger les choses.
- Mettre en pause quand vous n'utilisez pas l'émulateur : Pause when inactive, Mettre en pause quand l'émulateur n'a pas le focus.
- Définir les touches du clavier : pas toujours facile à trouver, cherchez Pad, Configure pad, Joypad.
Les manettes de jeu (joysticks) sont automatiquement reconnues et accessibles via /dev/js0
pour le premier joueur, /dev/js1
pour le second joueur, etc. et la plupart des émulateurs les prennent en charge, certains permettent même de les configurer de façon précise.
Partie matérielle
À l'heure actuelle, deux possibilités matérielles existent, l'une plutôt portée sur l'émulation du maximum de machines, l'autre plus adaptée à la customisation rétro, mais plus limitée pour l'émulation. Avec l'augmentation de puissance des monocartes, ces deux tendances seront vraisemblablement bientôt fusionnées.
Ordinateurs dédiés
Avec un PC d'occasion, on privilégie généralement la puissance par rapport à l'apparence rétro ; voici des exemples de configuration :
Pour l'émulation jusqu'à la SNES, en incluant la PlayStation 1 et certaines anciennes versions de MAME, un vieux dual core d'occasion à moins de 90 euros (voire beaucoup moins) suffira pour l'émulation de plusieurs milliers de jeux.
Pour émuler la 3DS, la Playstation 2, la Saturn, la GameCube ou encore la Wii, un i5 4570 d'occasion aux alentours de 250 euros avec une Nvidia GeForce GTX 1050 Ti à 170 euros feront l'affaire. Des i5 de ce type sont souvent des récupérations de PC pro (Hp EliteDesk, Optiplex).
Voici deux conseils pour l'achat de ces derniers PC : tout d'abord, avoir à l'esprit qu'il est possible d'en trouver en parfait état (pas de rayures, intérieur propre) auprès de revendeurs professionnels, donc évitez les particuliers vendant des occasions en état douteux ; ensuite, bien que leurs alimentations soient faibles (240W), c'est suffisant pour les 750 Ti et 1050 Ti (donc dans les 75W), mais pas pour des cartes consommant plus.
L'émulation sur ordinateur monocarte
L'une des grandes tendances du rétro-gaming est l'émulation sur cartes de type Raspberry ou Odroid. Ubuntu peut être installé sur ces cartes et la présente documentation sur l'émulation sous Ubuntu est en partie valable, mais avec souvent plus de bidouilles. De puissance limitée, ces cartes ne permettent pas l'émulation de consoles comme la DS, la Saturn, la GameCube ou la Playstation 2, mais certaines peuvent tout juste émuler N64, PSP ou encore Dreamcast :
- La carte Raspberry Pi 3 peut éventuellement faire tourner quelques jeux N64.
- L'Odroid XU4 fait tourner la plupart des jeux N64, des jeux Dreamcast et quelques jeux PSP.
Un des grands intérêts de ces cartes pour les amateurs de retrogaming est qu'il existe des boîtiers (surtout pour Raspberry) qui reproduisent l'apparence d'anciennes consoles, en particulier la NES et la SNES. Vous pouvez aussi imprimer votre propre boîtier, conçu par vous-même ou par d'autres personnes..
Mini-PC pré-configurés
De plus en plus de vendeurs proposent des box supposées pré-configurées (plug and play). Il convient d'être très prudent, car ces produits que l'on trouve souvent sur des sites de financement participatif tiennent rarement leurs promesses, ou sont tout simplement des arnaques de l'avis de développeurs de MAME et de Libretro. Pour éviter de vous faire avoir, considérez les points suivants :
- un mini-PC sera en général peu puissant et dans beaucoup de cas à peine aussi bon qu'un Raspberry à 35 euros ;
- ces produits peuvent rarement être plug and play pour la simple raison que les vendeurs (sauf éditeurs officiels) n'ont pas les licences sur les jeux, sur les BIOS et sur certains émulateurs qu'il est interdit de vendre. Si vous trouvez un produit qui vous propose tout cela, c'est une fraude.
- ces produits sont parfois conçus en volant le travail des développeurs d'émulateurs : les développeurs vous proposent bien souvent gratuitement leur programme, et un vendeur va vous le vendre installé sur un mauvais produit.
Actualités de l'émulation
- Emu-France : Toute l'actualité sur les émulateurs.
- Forum Reddit : Discussions autour de l'actualité de l'émulation (en anglais).
- EmuGen : Compilation d'informations sur l'émulation.
- Internet Archive : Mises à jour régulières de bibliothèques de ROMs, ce site ayant obtenu une exemption de copyright à des fins de conservation des jeux anciens.
Voir aussi
- Documentation sur la virtualisation.
- Article wikipédia sur l'émulation
- Article wikipédia sur les émulateurs de console de jeux vidéo
Contributeurs : francisscot, …