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, et le choix de format de fichiers change au fil du temps et des découvertes de bornes jamais dumpées.

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é de nombreuses fois, ils ont changé d’avis, ils ont changé d’objectif, et les connaissances ont changé, bref, en pratique, il arrive que les fichiers de roms changent radicalement d’une version à une autre.

A noter que FinalBurn Alpha/Neo se base originellement sur les formats de fichiers MAME, ils ont donc des romsets différents mais les problèmes restent les mêmes : les formats changent au fil des versions. Je continuerais à prendre l’exemple de MAME, mais avec FBA/Neo, c’est pareil.

En pratique, MAME utilise un fichier “maître” 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.

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, Street Fighter 2 Champion Edition (sf2ce) réutilise des morceaux de Street Fighter 2 World Warriors (sf2). Pour économiser la place, il est donc possible de ne pas mettre les données de sf2 dans la rom de sf2ce, ce qui évite de dupliquer des données inutilement ; en revanche, cela nécessite d’avoir les deux fichiers pour lancer sf2ce.

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

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 des BIOS NeoGeo open source qui peuvent remplacer les originaux.

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é ? Mystère. Il me semble que ce sont des enregistrements audio et pas des données “brutes” provenant de chips (et peuvent donc être remplacés par ce que vous voulez), mais je n’en suis pas sûr.

Les versions de romsets

Les romsets arcade sont toujours liés à une version de MAME, et la première chose à savoir avant de télécharger un jeu arcade, c’est de connaître votre version de MAME. Il faudra ensuite télécharger le romset correspondant (oubliez le téléchargement de jeux à l’unité, ç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. Les puristes (et l’équipe de MAME) hurlent au meurtre à chaque fois que cette version est utilisée (“c’est une version pourrie et pleine de bugs !”) mais ils oublient bien vite que 90% des joueurs s’en moquent éperdument et veulent juste jouer 5mn à Street Fighter 2.

A noter que FinalBurn Alpha/Neo n’a pas tout à fait le même objectif et reste plus proche de “faire tourner les jeux arcade” sans chercher 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, et est donc probablement un meilleur choix pour émuler l’arcade sur Pi.

Pour trouver les roms correspondant à sa version, le plus simple, c’est de rechercher “romset MAME (version)”, vous allez trouver des tonnes de liens Torrent ou autre pour télécharger des romsets bien propres et complets correspondant à votre version. La plupart des clients Torrent vous permettent de sélectionner les fichiers à télécharger si vous ne voulez pas récupérer les 40 Go de jeux pour jouer à une dizaine.

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.163 et que votre MAME est en version 0.164, il y a de fortes chances que tous vos jeux fonctionnent, et qu’il vous manque simplement les quelques nouveaux. 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 parfois 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.

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 : vous avez facilement 10.000 roms, dont une énorme quantité de jeux de mahjong, de jeux de casino, de jeux pornos, 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.