{{tag>émulateurs_console}}
----
====== Mednafen: Émulateur multiplate-forme ======
Mednafen est le meilleur émulateur des consoles Playstation, PC Engine et Virutal Boy. L'émulation des autres plate-formes se fait soit avec des émulateurs propres, soit en reprenant d'autres émulateurs.
Mednafen est un émulateur recommandé pour ces consoles :
**Atari Lynx** (basé sur Handy), **Neo Geo Pocket** (Color), **PC Engine/TurboGrafx 16** (CD) et **SuperGrafx PC-FX**, **Playstation**, **Saturn** (expérimental et seulement pour architecture x86_64), **WonderSwan** (Color), **Virtual Boy**.
Si les consoles suivantes sont aussi émulées, il est recommandé de chercher d'autres émulateurs :
NES, Sega Master System, Gamegear, Megadrive, (basé sur Genesis Plus), Super Nintendo (basé sur bnes)
//"Son utilisation en ligne de commande est relativement complexe et des interfaces graphiques permettent de s'en affranchir."// Malheureusement c'est faux. :( L'interface graphique n'utilise que peu des possibilités du programme. Pour configurer correctement cet émulateur, vous n'échapperez pas à éditer le ficher **~/.mednafen/mednafen.cfg**, selon les paramètres trouvés dans [[https://mednafen.github.io/documentation/|la doc officielle]]. **Utilisez la touche F1 pendant un jeu** pour avoir les commandes importantes, notamment **ctrl+alt+1**.
===== Pré-requis =====
* Disposer des [[:sudo|droits d'administration]].
* Disposer d'une connexion à Internet configurée et activée.
===== Installation =====
{{ http://mednafen.fobby.net/newlogo.png?250}}
==== Depuis les dépôts officiels ====
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>mednafen|mednafen]]**.
==== Compilation ====
Des sources plus récentes sont disponibles sur le site officiel :
https://mednafen.github.io/
Pour compiler mednafen, téléchargez les sources, puis décompressez le fichier. Ouvrez un terminal dans le dossier obtenu et faites :
./configure
puis :
make
et pour rendre l'exécutable disponible sur tout le système :
make install
Plus d'infos ici: https://lepouf.info/mednafen-la-saturn-sous-gnulinux/
==== Libretro/RetroArch ====
mednafen est également disponible //via// Libretro (voir l'interface RetroArch plus bas). Seule cette version de Mednafen est capable d'augmenter la résolution interne de la PlayStation (x2 ou x4), ce qui demande une configuration solide (minimum i5).
===== Installation de l'interface graphique =====
====Mednaffe====
{{ https://raw.githubusercontent.com/AmatCoder/mednaffe/wiki/mednaffe_systems_settings_gtk2.png?250}}
**[[https://github.com/AmatCoder/mednaffe|Mednaffe]]** est une interface graphique pour mednafen en GTK2/3. Elle permet de régler finement la plupart des aspects de l'émulateur, notamment la configuration des manettes et les éventuels problèmes de sons (voir plus bas). Elle affiche aussi une liste de ROM si vous spécifiez un répertoire.
==== Installation ====
=== Depuis les dépôts officiels ===
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>Mednaffe]]**
=== Compilation ===
Pour compiler Mednaffe, télécharger les sources, puis décompressez le fichier. Ouvrez un terminal dans le dossier obtenu et faites :
./configure
Ou pour gtk3 :
./configure --enable-gtk3
Et si vous obtenez un message d'erreur au sujet de la version de gtk 3 :
sudo apt-get install libgtk-3-dev
puis :
make
et pour l'installer :
sudo make install
==== Qmednafen ====
**[[https://sourceforge.net/projects/qmednafen/|Qmednafen]]** est une interface graphique dans un même genre en QT.
==== RetroArch ====
mednafen est également disponible //via// [[RetroArch|RetroArch]]. Il suffit d'installer RetroArch et de mettre à jour les cœurs disponibles.
=====Utilisation=====
Placez les fichiers bios de la Playstation directement dans le dossier /home/user/.mednafen
Lancez l'application depuis le menu //Applications->Jeux->Mednafen// ou depuis un [[:terminal]] saisissez la [[:commande_shell|commande]] suivante :
mfe
Si mednafen ne se lance pas, il vous faudra également [[:tutoriel:comment_installer_un_paquet|installer la librairie]] **[[apt>python-configobj|python-configobj]]**
Bon jeu ! ;-)
===== Configuration des touches =====
==== interfaces graphiques ====
Dans **systeme>inputs>controler setup** vous trouverez de quoi configurer rapidement. Cependant cela reste limité et ne permet pas d'utiliser tout le potentiel du programme :(.
==== Dualshock psx ====
Pour prendre en charge les sticks analogiques dualshocks, vous devez remplacer, dans **~/.mednafen/mednafen.cfg**, ''psx.input.port1 **gamepad**'' par ''**dualshock**''. En suite démarrez un jeu et appuyez sur //Alt//+//Shift//+//1//, pour terminer enfin la configuration.
==== Méthode sans passer par les interfaces graphiques ====
Il est possible de configurer simplement et rapidement les touches en appuyant sur la combinaison de touche **//Alt//+//Shift//+//1//** une fois dans le jeu (Shift = Majuscule).
**Si le raccourci //Alt+Shift+1// ne fonctionne pas:** \\
[[:tutoriel:comment_modifier_un_fichier|ouvrez le fichier]] **~/.mednafen/mednafen.cfg**. \\
Recherchez la chaine //input_config1// pour remplacer
command.input_config1 keyboard 50+alt+shift
par
command.input_config1 keyboard 109
//109 correspond à la touche //m// du clavier, qui devient ainsi le raccourci.//\\
Une fois dans le jeu, appuyez sur **//m//** pour activer la configuration des touches.
==== Méthode "Complexe" ====
Il est également possible de modifier ces touches en [[tutoriel:comment_modifier_un_fichier|éditant le fichier ]] **.mednafen/mednafen.cfg** présent dans votre Dossier Personnel et y ajouter par exemple le contenu présent ci-dessous:
Il faut utiliser les équivalents claviers SDL. Ayant été long à trouver, ils sont rapportés ici :-)
SDLK_UNKNOWN = 0,
SDLK_FIRST = 0,
SDLK_BACKSPACE = 8,
SDLK_TAB = 9,
SDLK_CLEAR = 12,
SDLK_RETURN = 13,
SDLK_PAUSE = 19,
SDLK_ESCAPE = 27,
SDLK_SPACE = 32,
SDLK_EXCLAIM = 33,
SDLK_QUOTEDBL = 34,
SDLK_HASH = 35,
SDLK_DOLLAR = 36,
SDLK_AMPERSAND = 38,
SDLK_QUOTE = 39,
SDLK_LEFTPAREN = 40,
SDLK_RIGHTPAREN = 41,
SDLK_ASTERISK = 42,
SDLK_PLUS = 43,
SDLK_COMMA = 44,
SDLK_MINUS = 45,
SDLK_PERIOD = 46,
SDLK_SLASH = 47,
SDLK_0 = 48,
SDLK_1 = 49,
SDLK_2 = 50,
SDLK_3 = 51,
SDLK_4 = 52,
SDLK_5 = 53,
SDLK_6 = 54,
SDLK_7 = 55,
SDLK_8 = 56,
SDLK_9 = 57,
SDLK_COLON = 58,
SDLK_SEMICOLON = 59,
SDLK_LESS = 60,
SDLK_EQUALS = 61,
SDLK_GREATER = 62,
SDLK_QUESTION = 63,
SDLK_AT = 64,
/*
Skip uppercase letters
*/
SDLK_LEFTBRACKET = 91,
SDLK_BACKSLASH = 92,
SDLK_RIGHTBRACKET = 93,
SDLK_CARET = 94,
SDLK_UNDERSCORE = 95,
SDLK_BACKQUOTE = 96,
SDLK_a = 97,
SDLK_b = 98,
SDLK_c = 99,
SDLK_d = 100,
SDLK_e = 101,
SDLK_f = 102,
SDLK_g = 103,
SDLK_h = 104,
SDLK_i = 105,
SDLK_j = 106,
SDLK_k = 107,
SDLK_l = 108,
SDLK_m = 109,
SDLK_n = 110,
SDLK_o = 111,
SDLK_p = 112,
SDLK_q = 113,
SDLK_r = 114,
SDLK_s = 115,
SDLK_t = 116,
SDLK_u = 117,
SDLK_v = 118,
SDLK_w = 119,
SDLK_x = 120,
SDLK_y = 121,
SDLK_z = 122,
SDLK_DELETE = 127,
/* End of ASCII mapped keysyms */
/* International keyboard syms */
SDLK_WORLD_0 = 160, /* 0xA0 */
SDLK_WORLD_1 = 161,
SDLK_WORLD_2 = 162,
SDLK_WORLD_3 = 163,
SDLK_WORLD_4 = 164,
SDLK_WORLD_5 = 165,
SDLK_WORLD_6 = 166,
SDLK_WORLD_7 = 167,
SDLK_WORLD_8 = 168,
SDLK_WORLD_9 = 169,
SDLK_WORLD_10 = 170,
SDLK_WORLD_11 = 171,
SDLK_WORLD_12 = 172,
SDLK_WORLD_13 = 173,
SDLK_WORLD_14 = 174,
SDLK_WORLD_15 = 175,
SDLK_WORLD_16 = 176,
SDLK_WORLD_17 = 177,
SDLK_WORLD_18 = 178,
SDLK_WORLD_19 = 179,
SDLK_WORLD_20 = 180,
SDLK_WORLD_21 = 181,
SDLK_WORLD_22 = 182,
SDLK_WORLD_23 = 183,
SDLK_WORLD_24 = 184,
SDLK_WORLD_25 = 185,
SDLK_WORLD_26 = 186,
SDLK_WORLD_27 = 187,
SDLK_WORLD_28 = 188,
SDLK_WORLD_29 = 189,
SDLK_WORLD_30 = 190,
SDLK_WORLD_31 = 191,
SDLK_WORLD_32 = 192,
SDLK_WORLD_33 = 193,
SDLK_WORLD_34 = 194,
SDLK_WORLD_35 = 195,
SDLK_WORLD_36 = 196,
SDLK_WORLD_37 = 197,
SDLK_WORLD_38 = 198,
SDLK_WORLD_39 = 199,
SDLK_WORLD_40 = 200,
SDLK_WORLD_41 = 201,
SDLK_WORLD_42 = 202,
SDLK_WORLD_43 = 203,
SDLK_WORLD_44 = 204,
SDLK_WORLD_45 = 205,
SDLK_WORLD_46 = 206,
SDLK_WORLD_47 = 207,
SDLK_WORLD_48 = 208,
SDLK_WORLD_49 = 209,
SDLK_WORLD_50 = 210,
SDLK_WORLD_51 = 211,
SDLK_WORLD_52 = 212,
SDLK_WORLD_53 = 213,
SDLK_WORLD_54 = 214,
SDLK_WORLD_55 = 215,
SDLK_WORLD_56 = 216,
SDLK_WORLD_57 = 217,
SDLK_WORLD_58 = 218,
SDLK_WORLD_59 = 219,
SDLK_WORLD_60 = 220,
SDLK_WORLD_61 = 221,
SDLK_WORLD_62 = 222,
SDLK_WORLD_63 = 223,
SDLK_WORLD_64 = 224,
SDLK_WORLD_65 = 225,
SDLK_WORLD_66 = 226,
SDLK_WORLD_67 = 227,
SDLK_WORLD_68 = 228,
SDLK_WORLD_69 = 229,
SDLK_WORLD_70 = 230,
SDLK_WORLD_71 = 231,
SDLK_WORLD_72 = 232,
SDLK_WORLD_73 = 233,
SDLK_WORLD_74 = 234,
SDLK_WORLD_75 = 235,
SDLK_WORLD_76 = 236,
SDLK_WORLD_77 = 237,
SDLK_WORLD_78 = 238,
SDLK_WORLD_79 = 239,
SDLK_WORLD_80 = 240,
SDLK_WORLD_81 = 241,
SDLK_WORLD_82 = 242,
SDLK_WORLD_83 = 243,
SDLK_WORLD_84 = 244,
SDLK_WORLD_85 = 245,
SDLK_WORLD_86 = 246,
SDLK_WORLD_87 = 247,
SDLK_WORLD_88 = 248,
SDLK_WORLD_89 = 249,
SDLK_WORLD_90 = 250,
SDLK_WORLD_91 = 251,
SDLK_WORLD_92 = 252,
SDLK_WORLD_93 = 253,
SDLK_WORLD_94 = 254,
SDLK_WORLD_95 = 255, /* 0xFF */
/* Numeric keypad */
SDLK_KP0 = 256,
SDLK_KP1 = 257,
SDLK_KP2 = 258,
SDLK_KP3 = 259,
SDLK_KP4 = 260,
SDLK_KP5 = 261,
SDLK_KP6 = 262,
SDLK_KP7 = 263,
SDLK_KP8 = 264,
SDLK_KP9 = 265,
SDLK_KP_PERIOD = 266,
SDLK_KP_DIVIDE = 267,
SDLK_KP_MULTIPLY = 268,
SDLK_KP_MINUS = 269,
SDLK_KP_PLUS = 270,
SDLK_KP_ENTER = 271,
SDLK_KP_EQUALS = 272,
/* Arrows + Home/End pad */
SDLK_UP = 273,
SDLK_DOWN = 274,
SDLK_RIGHT = 275,
SDLK_LEFT = 276,
SDLK_INSERT = 277,
SDLK_HOME = 278,
SDLK_END = 279,
SDLK_PAGEUP = 280,
SDLK_PAGEDOWN = 281,
/* Function keys */
SDLK_F1 = 282,
SDLK_F2 = 283,
SDLK_F3 = 284,
SDLK_F4 = 285,
SDLK_F5 = 286,
SDLK_F6 = 287,
SDLK_F7 = 288,
SDLK_F8 = 289,
SDLK_F9 = 290,
SDLK_F10 = 291,
SDLK_F11 = 292,
SDLK_F12 = 293,
SDLK_F13 = 294,
SDLK_F14 = 295,
SDLK_F15 = 296,
/* Key state modifier keys */
SDLK_NUMLOCK = 300,
SDLK_CAPSLOCK = 301,
SDLK_SCROLLOCK = 302,
SDLK_RSHIFT = 303,
SDLK_LSHIFT = 304,
SDLK_RCTRL = 305,
SDLK_LCTRL = 306,
SDLK_RALT = 307,
SDLK_LALT = 308,
SDLK_RMETA = 309,
SDLK_LMETA = 310,
SDLK_LSUPER = 311, /* Left "Windows" key */
SDLK_RSUPER = 312, /* Right "Windows" key */
SDLK_MODE = 313, /* "Alt Gr" key */
SDLK_COMPOSE = 314, /* Multi-key compose key */
/* Miscellaneous function keys */
SDLK_HELP = 315,
SDLK_PRINT = 316,
SDLK_SYSREQ = 317,
SDLK_BREAK = 318,
SDLK_MENU = 319,
SDLK_POWER = 320, /* Power Macintosh power key */
SDLK_EURO = 321, /* Some european keyboards */
SDLK_UNDO = 322
===== Désinstallation =====
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
===== Problèmes et bugs courant =====
=== Forcer le rendu SDL (virer openGL) ===
Si votre ordinateur a du mal avec OpenGL (pilote pas encore sorti ou ordinateur trop vieux pour le supporter correctement) vous pouvez forcer le rendu software en tapant ceci:
mednafen -vdriver 1 "glissez une rom"
Voilà tout, l'option **//-vdriver 1//** permet de choisir un rendu vidéo alternatif très avantageux si OpenGL galère.
=== Pas de son dans mednafen ===
**[EDIT 2022]** En cas de ''Error opening a sound device'' vérifier votre fichier: ''~/.mednafen/mednafen.cfg''.
Éditez le avec un éditeur de texte, faite CTRL+F pour rechercher **sound.device**, et remplacer '**default**' par '**sexyal-literal-default**'( pour obtenir 'sound.device sexyal-literal-default'). Cela permet d'utiliser pulseaudio, serveur son par defaut sous ubuntu. [[https://mednafen.github.io/documentation/mednafen.html#Section_troubleshooting_nosoundlinux|No sound output on Linux.]]
Sinon,ouvrez mednafen avec la commande:
mednafen -sounddriver sdl "glissez une rom"
Vous devriez normalement avoir du son si ce n'est pas le cas vous pouvez essayer:
mednafen -sounddriver alsa "glissez une rom"
Vous pouvez ensuite utiliser mednafen comme bon vous semble sans l'option "-sounddriver *" car mednafen garde en mémoire les configurations que vous lui donnez.
===== Voir aussi =====
* [[http://mednafen.sourceforge.net|Site officiel]]
* [[https://forum.ubuntu-fr.org/viewtopic.php?id=255339|Forum Ubuntu "Mednafen et configuration des touches" voir post #9]]
*[[https://www.youtube.com/watch?v=aI9GBQ4It9U|How To Set Up Your Controller For Mednafen (PSX) (youtube)]]
----
//Contributeurs principaux : FIXME//