Même si l'on a tout fait pour occulter le fait que MAME soit une application en ligne de commande, il ne faut pas oublier qu'elle l'est ! Alors, pourquoi ne pas en profiter ?
En ajoutant des paramètres au lancement de MAME, il est possible de lui faire faire d'autres actions.
1/ Actions relatives à une machine
Pour commencer retournons dans le passé et lançons un jeu sans passer par l'interface graphique. Si je veux lancer Street Fighter 2 (à tout hasard, hein…), il suffit de taper le nom de l'application puis le nom de la machine :
mame sf2
Comme MAME est gentil, vous pouvez aussi utiliser le nom du fichier, avec le .zip donc.
mame sf2.zip
En quittant le jeu en appuyant sur Echappe (ESC), vous ne retournerez pas vers MEWUI, mais vers votre terminal.
Il est aussi possible de vérifier si une roms est valide en ajoutant le paramètre -verifyroms. Toujours pour le même jeu
mame -verifyroms sf2
MAME renverra directement le résultat, ici
romset sf2 is good
1 romsets found, 1 were OK.
Si je reprends la ROM défectueuse vue dans la partie 2
mame -verifyroms sf2ce
j'obtiens le résultat
sf2ce : ioc1.ic7 (260 bytes) - INCORRECT LENGTH: 279 bytes
romset sf2ce is bad
1 romsets found, 0 were OK.
MAME vous indique ce qu'il ne va pas.
Pour avoir le nom exact de la ROM, vous pouvez utiliser le paramètre -listfull
mame -listfull sf2
Le résultat obtenu est
Name: Description:
sf2 "Street Fighter II: The World Warrior (World 910522)"
2/ Actions relatives à un ensemble de machine
Excepté le lancement d'un jeu, il est possible d'exécuter les autres commandes sur un ensemble de machines ou l'intégralité des machines connues de MAME. Attention tout de même, lancer une commande sur l'ensemble des jeux peut prendre pas mal de temps.
Vous pouvez essayer et si vous trouvez que c'est trop long, vous pourrez toujours interrompre le programme avec les touches ctrl+C.
Pour vérifier toutes les ROMs relatives à Street Fighter 2, soit toutes les ROMs dont le nom commence par sf2, il faut demander
mame -verifyroms "sf2*"
le résultat commence par
romset sf2 is good
et se termine par
90 romsets found, 66 were OK.
Comme l'indique la fin du résultat, 90 ROMs ont été testées et seulement 66 sont correctes. Attention, dans le lot il n'y a pas que des ROMs relatives à Street Fighter 2. En effet, le jeu sf2049 par exemple, dont le nom est "San Francisco Rush 2049" correspondait aussi à la recherche.
Il est possible de le confirmer avec la commande listfull
mame -listfull "sf2*"
Notez l'utilisation des guillemets pour que le caractère étoile qui indique "n'importe quel caractère" soit compris.
3/ Actions relatives aux fichiers de configuration
Dans la seconde partie de notre série d'article, nous avons déjà vu le paramètre createconfig.
mame -createconfig
Il permet de demander à MAME de créer les fichiers de configuration dans leur version par défaut. Les fichiers sont, sur macOS, créé à la racine de votre dossier utilisateur. Si des fichiers existent déjà à cet endroit, ils seront écrasés par les nouveaux.
Si, à force de trifouiller dans les fichiers de configuration, vous avez perdu des éléments ou carrément planté la configuration, il peut être intéressant de retrouver les fichiers d'origine pour comparer et corriger les soucis.
La commande showconfig permet d'afficher la configuration courante de MAME. La commande revient à lire les fichiers de configuration. Cependant, en la couplant avec la commande grep, il est possible d'obtenir une information précise, comme ici par exemple, pour avoir le chemin vers les ROMs
mame -showconfig | grep rompath
le résultat contient uniquement la ligne
rompath /Volumes/Data/ROMs/MAME/ROMs;/Volumes/Data/ROMs/MAME/ROMs/CHD;
4/ Paramètres de configuration
Il est possible d'ajouter les mêmes paramètres que l'on retrouve dans les fichiers de configuration. Cette option permet tout simplement de tester des paramètres sans modifier ses fichiers de configuration.
Par exemple, pour utiliser un autre mode de rendu, par exemple celui de la librairie SDL
mame -video accel sf2
5/ Toujours plus ?
Cet article n'est qu'un petit aperçu des capacités de MAME en ligne de commande. Si vous souhaitez une liste plus exhaustive, vous pouvez toujours vous rendre sur la documentation de MAME (en anglais), qui contient l'intégralité des possibilités.