まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Mame et des jeux Cave… et bien plus encore !

CaveLogo.png Mise à jour du Software de ma borne.
Et donc du Hardware aussi…

  • Pourquoi ?

Juste pour pouvoir jouer les excellents jeux Cave.
C'est en cherchant après les roms manquantes que je me suis rendu compte que :
1 - La version d'AdvanceMame n'en supporte que quelques un (Donpachi, Dodonpachi, ESP Rade, Guwange…).
2 - La version de Mame dispo dans les dépôts Debian (0.145) en supporte un peu plus (ESP Galuda, Dodonpachi Dai Ou Jou).
3 - Les roms des jeux édités après l'an 2002 ne sont pas supporté par Mame.

La commande :

mame -listfull

donne la liste des roms qui fonctionnent avec la version dont on dispose.

  • Pourtant je lis un peu partout que l'émulation de ces jeux fonctionnent, et de découvrir que Cave a contacté le projet mame aux alentour de 2011 pour demander le retrait de ces jeux les plus récents, ceux-ci continuant d'être exploités sur diverses consoles.

C'est ainsi que les sources mamedev ont été purgées du driver SH3, celui-là même qui permettait l'émulation de jeux comme Ketsui, ESP Galuda2 et Mushihimesama.

Cependant les gens ayant téléchargés le binaire 0.143u9 (28 Jun 2011) à l'époque disposent d'un émulateur capable de faire tourner ces jeux, et c'est un peu difficile à dégoter.

En fouillant le net j'ai fini par retrouver les sources de mame0.143u9 sur unvieux dépôt ppa Ubuntu (le fichier n'est plus dispo), que voici en annexe de ce billet[1], restait donc à le compiler pour l'essayer.

Pour commencer, Compilation de mame0.143u9 :

Quelques trucs issus de mon expérience, à savoir avant de se lancer :

- L'opération se déroule sans problème depuis Ubuntu 12.04, mais il faut savoir qu'avec une distribution plus récente, la compilation risque fortement de se planter, de même qu'avec Debian Wheezy 7, la distribution que j'utilise désormais sur ma borne.
En effet, il faut utiliser le compilateur gcc 4.6 et nous sommes depuis passé depuis à gcc 4.7.
- À savoir aussi qu'un binaire compilé sur un Ubuntu fonctionnera sur un autre Ubuntu, même plus récent (pour peu que les librairies requises soit installées, sinon elle seront réclamées par mame, restera à trouver les bon paquets), mais que ce même binaire ne fonctionnera pas sous Debian.
- De plus, pour obtenir un mame 64 bits, il faut simplement le compiler sur un Ubuntu ou un Debian 64bits.
- Enfin, il faut au moins 2 Go de ram disponibles, sinon l'opération plantera lors de la compilation de quelques fichiers particulièrement lourds.

Prêt ?

  • Vérifier la version de gcc disponible :
gcc -v

S'il indique gcc version 4.6.x, passer à la suite (Installation des prérequis), sinon il faut le désinstaller et mettre gcc 4.7 (testé sur Debian 7 avec succès) comme ceci :

apt-get remove gcc
apt-get install gcc-4.6 g++-4.6
ln -s /usr/bin/gcc-4.6 /usr/bin/gcc
ln -s /usr/bin/g++-4.6 /usr/bin/g++
  • Installation des prérequis :
apt-get install build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libsdl-ttf2.0-dev libqt4-dev

Nb : dans mes notes j'ai mentionné le paquet libghc-sdl-ttf-dev, mais de telle manière que je ne suis pas sûr qu'il soit utile… à voir donc, désolé.

  • Compilation :

Après avoir décompressé les sources, aller dans le dossier attenant au fichier makefile, le rendre exécutable :

chmod  +x makefile

Puis lancer la commande :

make

Patienter… Lorsque l'opération est terminée, le fichier binaire mame est disponible à côté du makefile.
On pourra le déplacer comme bon nous semble et le lancer comme ceci :

./mame

Banzai !

Pour aller plus loin, Compilation de mame0.152 :

Pour diverses raisons on pourrait avoir besoin d'une version plus récente de mame qui puisse supporter les jeux CAVE-SH3.
De plus, j'ai découvert, que contrairement à AdvanceMame qui faisait ça très bien, le Mame de base ne sauvegardait pas les hi-scores !

  • Pour cela il existe des patchs (fichier .diff) qu'on utilise pour modifier les sources d'un mame standard et lui ajouter des fonctionnalités.

Il faut fouiller le net, et c'est un peu le bordel dans tous les patchs et les versions existantes…
Voici les deux liens à explorer pour obtenir ce qu'il faut pour votre version de Mame:

- Site qui liste pas mal de patchs différents, dont le fameux SH3 dont je parlais : http://www.systempixel.fr/extra/
- Forum qui répertorie les patchs hiscore : http://forum.arcadecontrols.com/?topic=64298.0

À savoir que cette fonction nécessite un un fichier hiscore.dat (chemin à indiquer dans le mame.ini) qu'on doit télécharger sur le net.
À savoir aussi, ces patchs hi incluent le patch nonag qui sert à retirer l'écran de présentation mame qui s'affiche au lancement de chaque jeu.

Donc, après avoir téléchargé et décompressé les sources de mame 0.152 et les patch nécessaires [2], il suffit d’exécuter les commandes suivantes :

  • Mise en place des fichiers :
unzip mame0152s.zip
unzip mame.zip -d mame
cp cavesh3_0152.diff mame
cp hi_151.diff mame/src
  • Application du patch hiscore :
cd mame/src
find . -type f -not -name uismall.png | xargs perl -pi -e 's/\r\n?/\n/g'
patch -p1 < hi_151.diff
  • Application du patch SH3 :
cd ..
patch -p0 -E < cavesh3_0152.diff
  • Compilation de mame :
chmod 777 makefile
make -j3


Pour info, la liste des jeux CAVE supportés :

- Donpachi (1995)
- ESP Rade (1998年4月)
- Feveron (1998年10月) = Fever S.O.S. (export title)
- Guwange (1999年7月)
- Progear no Arashi = Progear (export title - 2001)
- Do Donpachi Dai Ou Jou (2002年4月)
- Do Donpachi Dai Ou Jou - Black Label (limited edition)
- Ketsui - Kizuna Jigoku Tachi (2003年1月)
- Espgaluda (2003年11月14日)
- Mushihime sama (2004年11月)
- Ibara (2005年6月24日)
- Espgaluda2 (2005年11月25日)
- Pinksweets (2006年4月21日)
- Mushihimesama-futari (2006年10月27日)
- Muchimuchi pork (2007年4月26日)
- Deathsmiles( 2007年10月19日)

- Dodonpachi 2 est trop mal émulé pour être joué convenablement.



Conclusion :

  • Tous ces jeux fonctionnent bien avec mame 0.143u9, et jusqu'à ESPGaluda le vieil ordinateur de ma borne s'en sort très bien ! (Pentium4@2.4GHz, 512Gio de ram, video ATI Radeon 9200 Pro (RV 280)).
  • Par contre tous les jeux sortis après 2003 rament comme c'est pas permis avec 50-60% de performance au lieu des 99-100% habituel.
  • Avec un OS et Mame en 64bits on gagne près de 10% de performances.
  • On peut lancer directement un jeu en multi-thread pour gagner jusqu'à 10% de performances supplémentaires :
./mame espgaluda2 -mt

Après quelques tests de performances sur diverses machines, c'est dans un Intel Core2Duo E7300 @2,66Ghz que j'ai trouvé le minimum de puissance nécessaire pour faire tourner à 97-99% les jeux les plus gourmands tel que ESPGaluda2 ou Mushihime-Sama Futari.
Une carte vidéo Ati FireGLV3350 est suffisante, de toute manière les capacités du processeur graphique ne sont pas exploitée par mame dans cette configuration avec les pilotes libre radeon.

Dans un prochain billet je fournirais un nouveau tuto d’installation totale de l'ordinateur sous Debian 7, avec des émulateurs pré-compilés.

Notes

[1] Ci-dessous

[2] ceux que j'ai utilisé pour cette version sont à télécharger en annexe ci-dessous… Oui le hi_151 est compatible avec mame0152

Commentaires

1. Le mardi, 29 décembre 2015, 11:58 par riton

merci pour cet article, je me souviens avoir galéré (puis abandonné) à essayer de jouer aux jeux cave sur émulateur sur linux.
Ca me donne envie de regarder tout ca à nouveau, maintenant que j'ai les pistes pour m'en sortir :)

2. Le mardi, 29 décembre 2015, 17:54 par Makoto

Courage ! Ça en vaut la peine :)

3. Le mardi, 27 septembre 2016, 21:37 par metal08

compil de mame 0.148 ok, mais erreur de segmentation au lancement !

4. Le jeudi, 29 septembre 2016, 16:43 par Metal08

Je crois que tu t es trompé pour la compil.J ai désinstallé le 4.7 (contrairement à ce qu il y a de mis plus haut dans la page).J ai compilée la version 0.148 avec gcc 4.6.Plus d erreur de segmentation.Juste un problème ave. Pulseaudio,mais rien de grave.

5. Le jeudi, 29 septembre 2016, 20:30 par Makoto

Tu as donc fait exactement ce que j'indiquais… Je ne vois pas de problème ^^

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet