[TUTO] Apprendre a patcher et compiler l'émulateur MAME

Tous les tutos concernant les logiciels annexes à Hyperspin (Joy2Key, LedBlinky, Windows...).

Modérateurs: Nabubokon, Porko, Thesalan, Modérateurs

Apprendre a patcher et compiler l'émulateur MAME

Messagepar kefran69 » 04 Mar 2018 - 13:54

Salut à tous, je vous propose un tuto que je devais refaire depuis longtemps :)
Voici en plusieurs étapes comment apprendre à compiler soit-même l'émulateur MAME à partir des sources.
Il est vrai qu'il est très simple de trouver n'importe quelle version de mame sur le net déjà compilée mais bon parfois on ne peut résister à l'envie de faire les choses soit même.

PETIT RECAP :
- pour une première utilisation respecter les étapes 1 à 6
- pour les utilisations suivantes vous pouvez passer directement à l'étape 4
- vérifier régulièrement l'étape 3 (mise a jour) pour éviter les erreurs


1/ LE NECESSAIRE
Télécharger l'environnement MinGW pour compiler selon votre Windows 32 ou 64 bit
- msys32-2017-12-26.exe Si vous êtes sur Windows 32-bit pour compiler uniquement des versions 32-bit
- msys64-2017-12-26.exe Si vous êtes sur Windows 64-bit pour compiler uniquement des versions 64-bit

2/ INSTALLATION
a- Extraire le contenu de l'archive à la racine du disque C:/ (cela peut prendre pas mal de temps) ce qui devrai vous donner selon la version téléchargée C:/msys32 ou C:/msys64

b- Executer une première fois MinGW avec le fichier win32env.bat qui se trouve à la racine de C:/msysXX attendez quelques secondes puis fermer l'invité de commande

c- Installer l'environnement GIT pour télécharger les sources de l'émulateur plus tard. Pour cela éxecuter win32env.bat puis copier/coller la commande suivante :
code
git config --global core.autocrlf true

Patienter un court instant jusqu'a être revenu à la ligne C:\msysXX\src>

d- Sans fermer l'invité de commande nous allons maintenant télécharger le nécessaire pour donner la possibilité à MinGW de pouvoir patcher les sources.
Copier/coller la commander suivante :
code
pacman --needed -Sy patch

Confirmer avec "Y" lorsque cela vous sera demandé. A la fin du processus fermer l'invité de commande.

3/ MISE A JOUR
a- Lancer l'invité avec win32env.bat puis copier/coller la commander suivante :
code
pacman -Sy

Si nécessaire des fichiers seront téléchargés puis installer pour mettre a jour MinGW. Patienter jusqu'au retour à la ligne C:\msysXX\src>

b- Sans fermer l'invité copier/coller maintenant cette commande :
code
pacman -S bash pacman msys2-runtime

Confirmer avec "Y" autant de fois que nécessaire puis patienter jusqu'au retour à la ligne C:\msysXX\src> ensuite refermer l'invité.

c- Ouvrez à nouveau win32env.bat puis copier/coller cette commande :
code
pacman -Su

Confirmer avec "Y" autant de fois que nécessaire puis patienter jusqu'au retour à la ligne C:\msysXX\src> ensuite refermer l'invité.
Ré-ouvrez win32env.bat puis recommencer ce point (c) jusqu'à qu'il n'y ai plus aucunes mise à jour.

4/ LES SOURCES
Procédons au téléchargement des sources (GIT) officielles de l'émulateur MAME.

Ouvrir MinGW avec win32env.bat puis copier/coller la commande suivante :


Confirmer avec "Y" autant de fois que nécessaire puis patienter jusqu'au retour à la ligne C:\msysXX\src> ensuite refermer l'invité.

Les sources seront téléchargées dans : C:\msysXX\src\mame

Il peut être utile de conserver un backup de ce dossier "mame" qui contiens les sources non seulement en cas de problèmes mais également si vous souhaitez compiler des builds non-officielles, un sujet que j'évoquerai lors d'une prochaine mise à jour du tuto.

5/ PATCHER (étape optionnelle)
Voici une étape optionnelle mais qui pourra être utile à certains. C'est à dire patcher les sources de l'émulateur avant de compiler pour faire quelques modifs en l'occurrence ici je vais évoquer le patch "NoNag" qui va nous servir a supprimer les fenêtres d'avertissements avant le lancement d'un jeu.
Auparavant il existait de nombreux patch différents pour permettre d'ajouter des fonctions qui n'étaient pas présentes dans les builds officielles comme direct input, overclock etc...
Mais depuis quelques temps ces fonctions ont été ajoutées dans les sources sauf une le "NoNag" car les devs officiels sont totalement contre car cela permet d'avoir des infos utiles avant le lancement du jeu (fonctionnel ou pas etc...) Bref, voici si vous le souhaitez comment ajouter le patch "NoNag" aux sources de MAME.

Rendez-vous tout d'abord à l'adresse suivante : Patch NoNag
a- Descendez au bas de la page et télécharger le dernier fichier "suppression_0xxu0.txt" mis a disposition en faisant clic droit enregistrer sous...

b- Enregistrer le fichier à la racine du dossier C:\msysXX puis renommer ce fichier "suppression_0xxu0.txt" en "nonag.diff"
Cela doit vous donner normalement C:\msysXX\nonag.diff

c- Ouvrez l'invité MinGW avec win32env.bat puis entrer la commande :
code
cd mame

MinGW devrait maintenant pointer sur le dossier des sources MAME ce qui dot vous donner à l'écran C:\msysXX\src\mame>

Copier/coller la commande suivante :
code
patch --binary -p0 -E <C:/msys64/nonag.diff <----- remplacer msys64 par msys32 si c'est votre cas

Confirmer avec "Y" si nécessaire et attendre jusqu'au retour à la ligne C:\msys64\src\mame>

Les sources sont maintenant patchées "NoNag", fermer l'invité de commande.

6/ COMPILER
Etape finale qui va permettre de compiler un executable de l'émulateur MAME en fonction de vos choix selon quelques paramètres. A la fin du processus, dans les 3 cas a, b ou c vous retrouverez le .exe de votre émulateur fraîchement créé dans le dossier suivant : C:\msysXX\src\mame>

Vous avez la possibilité de créer 3 differentes versions au choix MAME full, MAME arcade only ou MESS et aussi d'optimiser la rapidité de la compilation en fonction de votre processeur.
La variante qui va changer en fonction de votre processeur est la suivante : -j a laquelle il faudra ajouter le chiffre du nombre de coeur que votre processeur possède en ajoutant +1.
Dans les exemples ci-dessous nous seront donc sur la base d'un processeur quad-core avec la variante -j5 qui sera a modifier selon votre cas.

Le temps de compilation est très variable selon la puissance de votre système soyez patient.

Ouvrez l'invité MinGW avec win32env.bat puis pointer sur le dossier source en entrant la commande :
code
cd mame

Vous devriez voir à l'écran C:\msysXX\src\mame>

a- Compiler une version de MAME " complète ARCADE + SOFTWARE LIST

Copier/coller la commande suivante :
code
make -j5 SYMLEVEL=1 SYMBOLS=1 STRIP_SYMBOLS=1 NOWERROR=1


b- Compiler une version MAME qui contient les jeux ARCADE uniquement

Copier/coller la commande suivante :
code
make -j5 SUBTARGET=arcade SYMLEVEL=1 SYMBOLS=1 STRIP_SYMBOLS=1 NOWERROR=1


c- Compiler une version MAME (MESS) qui contient les jeux SOFTWARE LIST uniquement

Copier/coller la commande suivante :
code
make -j5 SUBTARGET=mess SYMLEVEL=1 SYMBOLS=1 STRIP_SYMBOLS=1 NOWERROR=1


A la fin de chaque compilation entrer la commande suivante pour nettoyer les résidus et éviter des erreurs lors des compilations suivantes (cela n'efface pas les sources) :
code
make clean


Lors d'une prochaine MAJ j'ajouterai les possibilités de compiler MAMEUI, MESSUI mais aussi encore GROOVYMAME..
6 mercis !
(Badaud, Funkychild, babamimi262626, Marsupio714, menottes, wildpumpk1n)
Avatar de l’utilisateur
kefran69
Maître
Maître
 
Messages: 3915
Âge: 37
Inscription: 05 Mai 2013 - 01:00
Localisation: Villefranche sur Saône

Re: Apprendre a patcher et compiler l'émulateur MAME

Messagepar maximumstyle » 05 Sep 2018 - 19:55

merci pour ce topic
j ai plus qu à essayer
Avatar de l’utilisateur
maximumstyle
Apprenti
Apprenti
 
Messages: 17
Inscription: 31 Juil 2015 - 18:11

Re: Apprendre a patcher et compiler l'émulateur MAME

Messagepar wildpumpk1n » 27 Sep 2018 - 09:37

Je me lance dans la galère aussi :) Merci à toi pour ce tuto :)
Avatar de l’utilisateur
wildpumpk1n
Habitué
Habitué
 
Messages: 86
Âge: 39
Inscription: 04 Fév 2018 - 19:01
Localisation: Paris



Retourner vers Tutos Logiciels Annexes



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité