issue 04/2020




Notes:

Débuter avec MAME sur macOS - Partie 6 - Vérification simple des ROMs
[par sky] publié en 01/2020

Retour à notre série d’articles sur MAME sur macOS. Dans l’article 4, nous avions vu comme utiliser les lignes de commande pour vérifier vos ROMs. Aujourd’hui, nous irons un peu plus loin, puisque je vais vous expliquer comment lire les résultats de cette commande puis quelques astuces pour trouver les ROMs.

1/ Explication de l’action verifyroms

Comme nous l’avions vu précédemment, l’action verifyroms permet de vérifier qu’une ROM est bien conforme à ce qu’attend MAME. Avec les mises à jour successives de MAME, qui peuvent altérer le fonctionnement d’une ROM, la commande prend toute son importance.

D’ailleurs, si vous avez installé SDLMAME et MAME via brew, sachant que cette dernière est souvent en retard d’une (ou plusieurs) version(s), vous pourriez avoir des résultats différents, selon l’application utilisée, en vérifiant les ROMs modifiées dernièrement.

Revoyons comment vérifier une ROM, avec MAME via Homebrew.

mame -verifyroms sf2

et regardons les 4 résultats possible

romset sf2 is good
1 romsets found, 1 were OK.

C’est le meilleur résultat possible, celui que l’on attend pour l’ensemble de ses ROMs.
La ROM, telle qu’elle est, est compatible avec la version courante de MAME.

romset sf2 is bad
...
1 romsets found, 0 were OK.

Ici, c’est moins bien. MAME considère votre ROM comme invalide, et ne la lancera même pas. Si vous souhaitez jouer à ce jeu, il faudra la mettre à jour.

romset sf2 is best available
...
1 romsets found, 1 were OK.

Ce résultat n’est pas aussi mauvais qu’il n’y parait. Certains éléments de la ROM ne sont pas bons. Cependant, il n’existe pas de version correcte pour ces éléments, et MAME le sait. L’application vous permettra donc de lancer le jeu, mais il faut savoir qu’il est possible que le jeu ait des soucis.

Enfin, si vous lancer la commande sur un ROM qui n’existe pas

mame -verifyroms pouet

Vous obtiendrez le résultat

No matching systems found for 'pouet'

2/ Décryptage d’une vérification dont le résultat est "bad"

Lorsque MAME vérifie une ROM, il vérifie l’ensemble des éléments contenus, les uns après les autres. Il va indiquer tous les problèmes présents sur la ROM.

Dans l’ordre, il va vérifier la présence de l’élément. En cas de défaut il indiquera

sf2cems6b   : ms6_gal20v8a.u104 (343 bytes) - NOT FOUND

Un grand NOT FOUND à la fin de la ligne indique que l’élément est donc manquant.
Ensuite, il va vérifier la longueur de l’élément, un moyen rapide de savoir si l’élément a changé. Encore une fois, avec un problème nous aurons

sf2hf       : ioc1.ic7 (260 bytes) - INCORRECT LENGTH: 279 bytes

Ici, c’est le INCORRECT LENGTH qui est l’annonciateur de la mauvaise nouvelle. Juste avant, entre parenthèse, vous avez la taille attendue par MAME, et en bout de ligne, le poids de votre élément. Comme vous pouvez le voir ici, il diffère.

Enfin l’élément peut être présent, et de la bonne longueur, mais son contenu peut ne pas être bon. Pour vérifier cela, MAME effectue une somme de contrôle sur les éléments et les compare à celles qu’il attend.

Voici à quoi ressemble l’erreur

swa         : 315-5711.bin (8192 bytes) - INCORRECT CHECKSUM:
EXPECTED: CRC(c5ddb8fc) SHA1(9e21d3a07ffa315e0139483b664e3fa283ef4e06) BAD_DUMP
  FOUND: CRC(22affe54)

Le terme INCORRECT CHECKSUM nous indique bien une erreur sur la somme de contrôle, tandis que les deux lignes suivantes nous donne les sommes trouvées et attendues.

Si vous souhaitez que MAME lance votre ROM, il faudra corriger les erreurs, soit en trouvant une autre ROM sans défaut, soit en remplaçant seulement les éléments en défaut. Je vous expliquerai comment faire cela, un peu plus tard dans l’article.

3/ Récupérer les ROMs

Evidemment, le moyen le plus légal de récupérer les ROMs est de faire, soit-même, un dump des différents jeux. Dans les faits, cela n’est pas envisageable ! Trouver les bornes d’arcade est de plus en plus compliqué, elles sont de moins en moins nombreuses, voir certaines n’existent carrément plus.

La solution est donc de trouver sur Internet, les ROMs des jeux auxquelles vous souhaitez jouer. De nombreux sites proposent les ROMs en libre accès, il vous faudra les trouver.

La première idée est de trouver les fichiers via leurs noms. Ainsi pour rechercher le jeu "Street Fighter 2", dont le code est "sf2", je vous conseille de chercher "mame sf2.zip".

Cette solution devrait vous renvoyer des dizaines de résultats.

Pour un collectionneur, il est possible d’avoir une ROM qui n’est pas correcte, que vous ne connaissez pas, et dont vous n’arrivez pas à la trouver via son nom de fichier. La solution peut être de la trouver via le titre du jeu (ou du bios) qui se cache derrière.

Pour trouver le titre exact, il faudra lancer la commande avec l’action listfull, en remplaçant le nom de la ROM que vous cherchez, évidemment.

mame -listfull sf2

Le résultat vous donne quelque chose comme

Name:             Description:
sf2               "Street Fighter II: The World Warrior (World 910522)"

Maintenant, pour faire ma recherche, je peux tenter la requête ’mame "Street Fighter II : The World Warrior (World 910522)"’.

Une fois que la ROM est récupérée, placez la dans votre dossier de ROMs, et n’oubliez pas de relancer une vérification. En effet, certains sites fournissent d’anciennes versions des ROMs, une version différente de votre MAME, ou carrément des versions défectueuses.

Jusqu’ici, c’est assez basique, et simple finalement. Maintenant voici mes petites astuces, un petit peu plus subtiles qui pourront vous aider.

Si vous avez trouvé un site qui vous fournit les ROMs telles que vous le souhaitez, n’hésitez pas à en mettre l’URL de côté. La prochaine fois que vous chercherez une ROMs, si vous souhaitez chercher sur ce site, voici la recherche à effectuer sur Google "site :www.mon-super-site.com masuperrom.zip" en remplaçant le nom du site et de la ROM. Et évidemment, cela fonctionne en cherchant aussi le titre du jeu.

Deuxième astuce, voici une troisième façon de trouver les roms, en cherchant précisément la version que vous souhaitez. En effet, certains sites fournissent la somme de contrôle des différents éléments d’une ROM. Pour obtenir les CRC des éléments d’une ROM, utilisez l’action listcrc

mame -listcrc sf2

Vous obtiendrez la liste telle que

fe39ee33 sf2e_30g.11e            sf2        Street Fighter II: The World Warrior (World 910522)
fb92cd74 sf2e_37g.11f            sf2        Street Fighter II: The World Warrior (World 910522)
69a0a301 sf2e_31g.12e            sf2        Street Fighter II: The World Warrior (World 910522)
5e22db70 sf2e_38g.12f            sf2        Street Fighter II: The World Warrior (World 910522)
8bf9f1e5 sf2e_28g.9e             sf2        Street Fighter II: The World Warrior (World 910522)
626ef934 sf2e_35g.9f             sf2        Street Fighter II: The World Warrior (World 910522)
bb4af315 sf2_29b.10e             sf2        Street Fighter II: The World Warrior (World 910522)
c02a13eb sf2_36b.10f             sf2        Street Fighter II: The World Warrior (World 910522)
22c9cc8e sf2-5m.4a               sf2        Street Fighter II: The World Warrior (World 910522)
57213be8 sf2-7m.6a               sf2        Street Fighter II: The World Warrior (World 910522)
ba529b4f sf2-1m.3a               sf2        Street Fighter II: The World Warrior (World 910522)
4b1b33a8 sf2-3m.5a               sf2        Street Fighter II: The World Warrior (World 910522)
2c7e2229 sf2-6m.4c               sf2        Street Fighter II: The World Warrior (World 910522)
b5548f17 sf2-8m.6c               sf2        Street Fighter II: The World Warrior (World 910522)
14b84312 sf2-2m.3c               sf2        Street Fighter II: The World Warrior (World 910522)
5e9cd89a sf2-4m.5c               sf2        Street Fighter II: The World Warrior (World 910522)
994bfa58 sf2-13m.4d              sf2        Street Fighter II: The World Warrior (World 910522)
3e66ad9d sf2-15m.6d              sf2        Street Fighter II: The World Warrior (World 910522)
c1befaa8 sf2-9m.3d               sf2        Street Fighter II: The World Warrior (World 910522)
0627c831 sf2-11m.5d              sf2        Street Fighter II: The World Warrior (World 910522)
a4823a1b sf2_9.12a               sf2        Street Fighter II: The World Warrior (World 910522)
7f162009 sf2_18.11c              sf2        Street Fighter II: The World Warrior (World 910522)
beade53f sf2_19.12c              sf2        Street Fighter II: The World Warrior (World 910522)
eb122de7 buf1                    sf2        Street Fighter II: The World Warrior (World 910522)
59c7ee3b ioa1                    sf2        Street Fighter II: The World Warrior (World 910522)
f1129744 prg1                    sf2        Street Fighter II: The World Warrior (World 910522)
41dc73b9 rom1                    sf2        Street Fighter II: The World Warrior (World 910522)
84f4b2fe sou1                    sf2        Street Fighter II: The World Warrior (World 910522)
043309c5 stf29.1a                sf2        Street Fighter II: The World Warrior (World 910522)
3abc0700 iob1.11d                sf2        Street Fighter II: The World Warrior (World 910522)
0fbd9270 c632.ic1                sf2        Street Fighter II: The World Warrior (World 910522)

Maintenant, il ne vous reste plus qu’à chercher, sur Internet, l’élément qui fait défaut dans votre ROM, avec sa somme de contrôle.

Malheureusement, les sites qui fournissent les CRC ne sont pas très nombreux, cependant, ils ont tendance à fournir des ROMs de meilleure qualité.

Le prochain article de la série sera la suite directe de celui-ci, car nous continuerons à travailler sur la vérification des ROMs de notre collection.


Les réactions à cet article :
Pas de réaction à cet article.
Poster une réactions à cet article :
modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.