まこと の ブログ

MaKoTo no burogu — Journal de bord…

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

Mame et les jeux… ! -2-

  • Lors de l'épisode précédent, nous avons vu que Mame ne supportait pas d'emblée les jeux de l'éditeur Cave, et qu'on pouvait passer outre cette restriction via l'utilisation d'un patch.

Ce temps est révolu car ces jeux sont maintenant supportés d'office, reste que la compilation d'une version récente de Mame comporte des pièges dans lesquels je suis tombé…
Je m'en vais donc vous narrer cette belle histoire de compilation sous Ubuntu 14.04LTS et Debian 8.

  • J'ai choisi de compiler Mame0.161 car un torrent contenant l'intégralité des roms compatibles avec cette version est disponible sur archive.org, il serait bête de ne pas en profiter !

La démarche pour compiler le dernier Mame en date, à savoir la version 0.171 reste la même.

Donc si on suit mon tuto précédent, il suffirait d'installer quelques dépendances, de télécharger les sources de Mame, et de lancer le make, sauf que, et bah non…

Déjà les dépendances ont changées, et en plus la compilation plantera bêtement si le système depuis lequel on compile ne dispose pas de la version 4.9 de gcc et g++.
Le make ira alors jusqu'au bout et on sera heureux de constater que Mame fonctionne très bien, y compris avec des roms Cave telle que espgal2, mais que Ô malheur, une manette ou un joystick USB ne fonctionne pas !!!! WTF ??

En fait j'ai fini par découvrir que la librairie SDL2 que le nouveau Mame utilise désormais semble buggée, à moins qu'elle ne soit pas correctement implémentée dans Mame.
Heureusement il est encore possible de forcer l'utilisation de la librairie SDL1.2, à condition de le préciser lors de la compilation !


Compilation de mame 0.161 :

  • Installation des dépendances :
apt install -y build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libqt4-dev libqt4-gui libsdl-ttf2.0-dev libsdl2-ttf-dev libsdl2-dev qt5-default

Les commandes :

gcc -v
g++ -v

Doivent renvoyer qu'il sont en version 4.9 (ou plus ??), c'est le cas avec Debian 8, mais pas avec Ubuntu 14.04LTS.
Il existe un PPA permettant de les installer :

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9

Puis il faut indiquer au système de les utiliser à la place des anciennes version (4.8) :

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20


  • Préparation des sources :

Télécharger et dézipper les sources depuis mamedev.org, ou en annexe de ce billet.

apt install unzip
unzip mame0161s.zip -d mame0161s
cd mame0161s
unzip mame.zip
chmod +x makefile


  • Toujours depuis le dossier mame0161, patcher les sources pour la prise en compte des hiscores [1] et la suppression du nagscreen [2] :
patch -p0 -E < hi_161.diff

Il est possible que le message (Stripping trailling CRs from patch; use --binary to disable.) apparaisse… on s'en fou :)


  • Compilation avec SDL1 :
make -j4 SDL_LIBVER=sdl
mv mame64 mame64_0161-SDL1-highscore_debian

-j2 pour un processeur double cœur, -J4 pour quatre cœur, etc… Ça permet de compiler plus vite !

Le binaire de mame 0.161 :

Voilà donc c'est tout, reste à créer le mame.ini :

./mame64_0161-SDL1-highscore_debian -createconfig

Veiller à ce que le binaire soit bien marqué exécutable.

  • Si par hasard vous vouliez utiliser ce binaire sur votre Ubuntu ou Debian, il suffit de le télécharger en annexe de ce billet, puis d'installer les paquets requis à son exécution :
apt install  libsdl-ttf2.0-0 libgtk2.0-0 libqtgui4 libgconf-2-4


Ressources :

Notes

[1] À 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, ou en annexe de ce billet.

[2] écran de présentation mame qui s'affiche au lancement de chaque jeu

Commentaires

1. Le samedi, 16 avril 2016, 12:02 par Sacha

Bon tuto ! Juste deux petites corrections: il te manque "sudo" devant les deux "apt install" et l'option de make "-j2" parallélise sur 2 coeurs et ainsi de suite.
A plus

2. Le dimanche, 17 avril 2016, 09:01 par Guillaume Munoz

Sympa le tuto! Mais mame 0.172 est sorti ^^ et en plus il supporte les highscore d'office enfin, juste parfait mame maintenant!
Aller hop on recompile ;)

3. Le vendredi, 29 avril 2016, 11:24 par Makoto

Merci à vous :)

@Sacha, C'est corrigé !
Au détour d'un tuto il y a longtemps, j'avais cru comprendre qu'il fallait indiquer +1, mais je me suis sûrement fait induire en erreur par méconnaissance et je n'avais pas remis en question la chose depuis.

@Guillaume Munoz, C'est une bonne nouvelle ça ! Cependant afin de rester compatible avec le pack de rom 0161, je ne recompilerais pas de si tôt. Sauf si les performances d'émulations des jeux qui me sont cher s'améliorent dans de futures versions.

Ajouter un commentaire

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

Fil des commentaires de ce billet