Les roms arcade : le casse-tête

Sommaire


Les roms console sont généralement plutôt simples : les cartouches sont standardisées pour chaque console, les données des jeux sont contenues sur quelques puces, et peuvent être facilement concaténées en un seul fichier.

En revanche, pour les bornes d’arcade, c’est totalement différent. Certains éditeurs ont des plateformes avec des composants communs mais beaucoup de jeux sont sur des PCB uniques, ils utilisent un nombre de processeurs variable dont certains sont parfois personnalisés, les données peuvent être réparties dans un très grand nombre de puces, il arrive que les jeux plus récents aient une partie de leurs données sur un disque dur ou un CD, certains jeux réutilisent des parties de PCB d’autres, etc. C’est incroyablement compliqué et, histoire de rigoler, les méthodes pour dumper les jeux évoluent également, les techniques aussi, et le choix de format de fichiers changent de temps en temps.

Les émulateurs

MAME est la référence pour l’émulation de bornes d’arcade, et ce sont donc les développeurs qui décident de la manière dont sont stockées les données des bornes d’arcade. Mais MAME est un très ancien programme dont les premières versions datent de la fin des années 90 : les développeurs ont changé d’avis et d’objectif, de connaissances, bref, en pratique, il arrive que les fichiers de roms changent radicalement d’une version à une autre (même si c’est rare). Le plus important à retenir, c’est que MAME a un objectif de préservation : faire tourner un maximum de machines, le plus fidèlement possible ; il arrive donc régulièrement qu’un jeu soit listé mais pas émulé ou complètement pété, dans ce cas il est marqué comme tel dans MAME.

FBNeo est très proche (il me semble qu’il se base sur MAME à l’origine) mais émule moins de jeux, pour une simple raison : il ne liste que les jeux qui fonctionnent correctement. En gros, quand vous lancez un jeu MAME il y a une chance qu’il ne marche pas, alors qu’un jeu listé par FBNeo marchera toujours. L’émulateur est un peu moins focalisé sur la préservation, mais les deux partagent toujours leurs connaissances et leurs découvertes pour s’améliorer mutuellement. Je continuerais à prendre l’exemple de MAME, mais FBNeo fonctionne de la même manière.

En pratique, MAME utilise un fichier « maître » (un gros XML, exemple ici) qui liste les roms qu’il connaît, et les fichiers attendus à l’intérieur. Utiliser une rom d’une autre version qui n’est pas identique ne marchera pas, et MAME ne sait simplement pas lancer les jeux qu’il ne connaît pas. C’est pour cela que les fichiers rom ont des noms standardisés et peu lisibles : si vous renommez « avsp.zip » en « Alien vs Predator.zip », MAME ne le reconnaîtra plus. Remerciez les noms de fichiers de 8 caractères hérité de DOS.

Les types de set (merged, non merged, split)

MAME est un vieil émulateur, et les connexions très haut débit et les disques dur de plusieurs To sont relativement récents. Afin d’économiser de la bande passante et de la place sur les disques, les romsets sont ainsi trouvables en 3 formats : « merged », « non-merged », et « split ».

Si vous avez tout suivi jusqu’ici, vous savez que les bornes d’arcade ont parfois des composants communs : par exemple, Darius 2 en version « 3 écrans » (darius2.zip) a beaucoup de données en commun avec la version 2 écrans (darius2d.zip). Pour économiser de la place, il est donc possible de ne pas mettre les données de darius2.zip dans le fichier darius2d.zip mais uniquement les différences, ce qui évite de dupliquer des données inutilement ; en revanche, cela nécessite d’avoir les deux fichiers pour lancer darius2d.zip, car la plupart des données sont dans l’autre version.

Les roms qui utilisent des données d’autres jeux sont appelés des clones, tandis que les roms « parentes » sont des… parents.

  • Split : les zip parents et clones sont séparées, mais les clones n’ont que le minimum nécessaire et ont besoin des parents pour fonctionner. C’est un gain de place (parfois conséquent) mais difficile d’y faire du ménage facilement, il faudra veiller à conserver les parents pour chaque clone que l’on veut garder ; en revanche, c’est assez facile de ne garder que les parents.
  • Merged : les zip contiennent les parents et tous les clones dans un seul fichier. Le gain de place est similaire, mais impossible de supprimer les clones pour ne garder que les parents (et ça fait une quantité de roms assez faramineuse).
  • Non-Merged : chaque zip contient tous les fichiers nécessaires pour fonctionner. La taille du romset explose, mais il devient très facile de faire du tri (et vous allez vouloir en faire). C’est sans doute le format de romset que vous voudrez.

L’explication « officielle » se trouve ici : About ROMs and Sets — MAME Documentation

Pour vous donner une idée : le romset FBNeo « split » fait environ 21Go, tandis que le « non-merged » fait presque 43Go : c’est plus du double.

Malgré tout ça, il est conseillé d’utiliser un romset « non-merged » et de le garder dans un coin : en effet, beaucoup de jeux ont des versions « parent » moins bonnes que leurs clones. Par exemple, on peut citer Grind Stormer, parent de V-Five qui est le même jeu avec un autre système de powerups réputé largement plus intéressant ; d’autres seront plus subjectifs : je préfère la version 2 écrans de Darius 2, par exemple. Faire ainsi permet de copier une rom clone dans son installation et de supprimer le parent qui ferait un doublon.

Les CHD, BIOS et samples

En plus des zip qui contiennent les données des puces, pour certains jeux, vous devrez télécharger des données supplémentaires.

CHD : les CHD sont des images de disque dur ou de CD/DVD des bornes arcade les plus récentes (généralement à partir des années 2000). Assez lourds, ils sont souvent téléchargés séparément des romsets car relativement peu de jeux les utilisent, et les parents et clones ont généralement des CHD différents, ce qui fait exploser la taille des romsets complets avec CHD intégrés.

BIOS : comme pour les consoles et ordinateurs, certaines bornes utilisent des BIOS. Parfois ils sont dans un répertoire séparé, et parfois dans le même répertoire que les roms. Pourquoi sont-ils listés séparément et fréquemment non inclus dans les romsets ? Principalement parce que n’étant pas des oeuvres, ils ne sont pas soumis à la même législation, en plus d’être potentiellement reproductibles de manière légale : il existe par exemple un BIOS NeoGeo open source (Unibios) qui peut remplacer l’original.

Samples : les samples sont des fichiers audio utilisés par certains jeux, comme un bruitage ou une voix numérisée. Pourquoi sont-ils dans un répertoire séparé ? Parce que ce sont des enregistrements audio et pas des données « brutes » provenant de puces ROM, souvent présentes sur des vieux jeux qui utilisent une génération sonore semi-analogique, très difficile à émuler correctement. Le jour où quelqu’un sera assez motivé pour émuler ces sons, ces samples ne seront plus nécessaires.

Les versions de romsets

Les romsets arcade sont toujours liés à une version d’émulateur, et la première chose à savoir avant de télécharger un jeu arcade, c’est de connaître votre version. Il faudra ensuite télécharger le romset correspondant ; oubliez le téléchargement de jeux à l’unité sur des sites quelconques, ça ne marchera pas la majeure partie du temps.

Je l’ai dit, l’objectif de MAME a évolué au fil du temps, et globalement, de « faire tourner les jeux arcade » ils sont passés à « émuler les machines de la manière la plus précise possible ». Par conséquent, la puissance requise pour faire tourner MAME a augmenté au fil des versions. Ce qui n’est pas un problème si vous souhaitez jouer sur PC peut poser plus de difficultés si vous jouez sur un Raspberry Pi : les versions les plus récentes sont parfois plus lentes. C’est la raison pour laquelle Recalbox et Retropie intègrent toujours une version MAME datant de 2003, qui est un bon compromis entre le nombre de jeux émulés, la puissance requise et la précision de l’émulation. C’est cependant une version pleine de bugs et de jeux voire de systèmes entiers tout simplement pas émulés, sachez donc où vous mettez les pieds.

FinalBurn Neo cherche moins la précision absolue : l’émulateur est donc un peu plus rapide, et même s’il n’intègre pas tout à fait autant de machines que MAME, il en émule largement suffisamment pour la majeure partie des gens.

Le choix d’émulateur que je conseille :

  • Sur une machine peu puissante (Pi 3, mini-console hackée, etc) : MAME 2003+
  • Sur une machine moyenne (Pi 4) : FBNeo
  • Sur une machine plus puissante (PC) : MAME dernière version

Pour trouver les roms correspondant à sa version, jetez un oeil à trouver les bonnes roms.

Changer de version de romset

Si vous avez bien suivi, vous avez vu que les formats des roms changent au fil des versions, mais il faut savoir qu’entre deux versions consécutives, à quelques exceptions près, les changements sont rarement importants. Si vous avez téléchargé un romset 0.240 et que votre MAME est en version 0.245, il y a de fortes chances que la plupart de vos jeux fonctionnent, et qu’il vous manque simplement les quelques nouveautés. En revanche, passer d’une version 0.139 (MAME 2010) à 0.174 (MAME 2016) risque d’être assez compliqué.

Si vous souhaitez « mettre à jour » votre romset d’une version à une autre, sachez qu’il existe un outil dédié à cela : CLR MAME Pro. Il permet, avec des manipulations souvent complexes et toujours très longues, de mettre à jour les romsets d’une version à une autre : How to update your MAME ROMset to a newer version with CLRmamepro. En revanche, ça prend beaucoup de temps, et il arrivera fréquemment qu’il vous manque des fichiers.

Très honnêtement, à moins d’émuler sur PC et de mettre à jour MAME religieusement à chaque nouvelle version, je vous déconseille de passer par cette méthode : avec une bonne connexion, vous avez aussi vite fait de télécharger une autre version de romset que de mettre à jour un existant, et vous aurez beaucoup moins de problèmes.

Faire du ménage dans son romset arcade

Une fois téléchargé un romset complet, on déchante généralement assez vite : un romset récent comprend environ 7000 roms, dont une énorme quantité de doublons, de jeux de mahjong, de jeux de casino, de jeux pornos, de copies pirates, et autres joyeusetés dont vous n’avez cure.

Plusieurs logiciels permettent de faire du ménage plus ou moins facilement :

  • Arcade Manager est un logiciel conçu par moi-même qui se base sur des fichiers Excel personnalisés pour faire du ménage facilement.
  • CLR MAME Pro a la possibilité de faire du ménage dans ses roms, mais bon courage pour réussir à l’utiliser.
  • Emu Loader: MAME and Arcade Frontend est un frontend pour MAME qui permet également de faire du ménage dans son romset, en supprimant tous les types de fichiers qui ne vous intéressent pas. Je vous laisse suivre ce tutoriel : Trier ses roms MAME sous Windows.
  • RomCenter permet de gérer ses roms MAME mais aussi des autres systèmes.
  • Romulus Rom Manager est un autre logiciel qui permet de gérer ses roms MAME et d’autres systèmes.