Dans la jungle, terrible jungle

Publié le par Pizza

L'émulation Mame n'est pas une chose simple

Pour ce que j'en ai compris (les spécialistes corrigeront d'eux même),  Mame est un programme unique, un fourre-tout, dont le but est de faire fonctionner une ROM passée en paramètre.

Mais ce programme est un simple exécutable, et non un lanceur couplé à une pelletée de DLLs chacune dévolue à l'émulation d'un processeur particulier - vidéo ou audio - de borne d'arcade.

De fait, il doit tout gérer en interne, ce qui en fait une grosse usine à gaz plus ou moins optimisée.

Lorsqu'une nouvelle ROM est déplombée, ou qu'un nouveau processeur de borne est émulé, une nouvelle version de Mame est compilée puis distribuée.

Aujourd'hui, Mame est en version 0.115, pour 115 versions distribuées (sans compter les Beta). Chacune ayant amené son nouveau processeur émulé, ou sa rom bidule nouvellement promue du status NOT WORKING à WORKING, ou la correction d'un disfonctionnement.

Dans le meilleur des mondes, la version 0.115 est donc la meilleure release, malheureusement, une correction ou un ajout dans la boucle de traitement géante de cet émulateur monolythique, amène parfois une régression sur la qualité de l'émulation de tel ou tel processeur de borne, ou de telle ou telle rom de jeu en particulier.

A priori je dirait même que si la puissance processeur de la machine sur laquelle on fait tourner Mame n'évolue pas proportionnellement à la "prise de poids" de l'émulateur, on perd en qualité avec le temps.

Pour couronner le tout, le code source étant fourni, certains passionnés ont recompilé eux même une version de Mame. Dans le meilleur des cas il ne s'agit que de changements cosmétiques, d'améliorations de l'interface de sélection des roms. Dans d'autres cas, ces versions sont presque réécrites, corrigeant certains bugs, améliorant le rendu d'un jeu en particulier, supprimant carrément des pans de codes entiers lorsqu'il concernait des émulations qui ne les interessaient pas, ou ajoutant des corrections non-officielles.

Pour une même release de Mame, on trouve par exemple mame, mame32, Houba32k, MamePlus, AdvanceMame, ZetaMame32, WolfMame, Mame32FX, Zinc, Raine, et j'en passe.

J'ai donc fait quelques tests, aidé par mon équipe de beta-testeurs officiels.

beta.JPG
Et maintenant ? Je joue comment à World of warcraft hein ?

J'ai comparé le rendu de quelques jeux dont l'émulation n'était pas parfaite sur différentes machines, et avec différentes versions de Mame.

Le résultat est sans appel :

C'EST LE BORDEL MON ADJUDANT.

Exemple :

gngbug.JPG
Ghosts'n Goblins sous Mame32 0.115a Officiel

gngbon.JPG
Ghosts'n Goblins sous Houba32k 0.109

En gros, aucune version n'est ultime, chacune apportant son lot d'améliorations et de régressions.

A moins de gaver la borne d'arcade avec un P4 3GHz / Geforce 7900 / Audigy, il faut faire des concessions.

Certains jeux sont émulés à la perfection, d'autres ont le son qui crachotte ou qui fait de l'écho avec un Mame32, pas avec un Houba32. Certains jeux s'exécutent au ralenti, d'autres à la bonne vitesse mais sans le son, etc, etc.

Heureusement, la finalité de mon projet n'est pas de faire tourner des jeux récents du genre Virtual Fighter ou Mortal Kombat, mais des jeux plus anciens, disons période 80-90.

Dans 90% des cas, l'émulation est correcte, ou nécessite juste quelques réglages sous Mame (réduction du sampling, frame skipping, etc)

edit du 16/10/2007 :

Depuis la version 0.117, l'ensemble du code a subit une amélioration notable. Le cas Ghosts'n Goblins par exemple, a été corrigé. Depuis cette 0.117, j'utilise la dernière version officielle en date, ça me simplifie grandement la gestion des cas particuliers.
Publicité

Publié dans Software

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
P
Alors c'est assez simple<br /> <br /> Windows 98 était assez permissif en terme de bidouillage système<br /> <br /> Dans c:\windows\system.ini j'ai remplacé la ligne<br /> Shell=Explorer.exe<br /> par<br /> Shell=c:\AtomicFE\Atomic.exe<br /> <br /> NB : A la fin de c:autoexec.bat j'ai ajouté la ligne<br /> cd \AtomicFE<br /> Sinon il ne trouvait pas le fichier de config Atomic019.cfg
Répondre
J
salut <br /> deja bravo pour ce projet!<br /> je suis en train de faire pareille,je me monte une mamecab<br /> j'ai juste une question coment tu fait pour qu'au demarage de ton pc tu tombe directement sur l'emu avec le choix des jeux?<br /> emrci pour ta reponse et bonen continuation
Répondre