Outils pour utilisateurs

Outils du site


notes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
notes [08/02/2015 22:13]
sky99 [Réalisation - prototype 1]
notes [24/02/2015 17:07] (Version actuelle)
sky99
Ligne 2: Ligne 2:
 Cette page contient des notes diverses, qui se retrouveront probablement intégrées à d'​autres pages ultérieurement. Cette page contient des notes diverses, qui se retrouveront probablement intégrées à d'​autres pages ultérieurement.
  
-===== Projet émulateur portable =====+ 
 + 
 + 
 + 
 + 
 +====== Projet émulateur portable =====
 +Un super lien, avec plein de ressources utiles, et à jour : 
 +https://​weekendengineer.wordpress.com/​2014/​09/​08/​setting-up-gameboy-advance-for-retropie/​ 
 +Second lien intéressant,​ avec pas mal d'​infos : http://​blog.petrockblock.com/​forums/​topic/​updated-for-2-3-step-by-step-guide/​ 
 L'​objectif de ce projet est de fabriquer une console portable rétro-gaming. Pour cela, nous utiliserons de l'​émulation,​ sur un Raspberry Pi. Le choix du Raspberry pi est justifié par son faible coût, l'​énorme communauté,​ la compacité et la faible consommation. Pour ne rien gâcher, j'ai l'​habitude de réaliser des projets dessus. Pour l'​instant je développe sur un Raspberry pi B+, mais la question se posera par la suite de la carte à utiliser. En effet, le Raspberry pi A+ est significativement plus compact, et consomme nettement moins que les autres. Pour une console compacte, ce sera donc un choix intéressant,​ puisque nous gagnons en volume, mais aussi en autonomie à batterie constante. En contrepartie,​ on passe a 256 Mio de ram contre 512 pour le B+, et un port USB contre quatre et un port ethernet pour le B+. Cela ne devrait pas poser de problèmes pour une console portable. D'un autre côté, pour une consommation légèrement supérieure à celle d'un B+, il y a le Raspberry pi 2 B, qui intègre un CPU arm v7 à quatre cœurs à 900Mhz avec 1 Gio de RAM contre un CPU arm v6 à un cœur à 700Mhz et 512 Mio de ram. L'​objectif de ce projet est de fabriquer une console portable rétro-gaming. Pour cela, nous utiliserons de l'​émulation,​ sur un Raspberry Pi. Le choix du Raspberry pi est justifié par son faible coût, l'​énorme communauté,​ la compacité et la faible consommation. Pour ne rien gâcher, j'ai l'​habitude de réaliser des projets dessus. Pour l'​instant je développe sur un Raspberry pi B+, mais la question se posera par la suite de la carte à utiliser. En effet, le Raspberry pi A+ est significativement plus compact, et consomme nettement moins que les autres. Pour une console compacte, ce sera donc un choix intéressant,​ puisque nous gagnons en volume, mais aussi en autonomie à batterie constante. En contrepartie,​ on passe a 256 Mio de ram contre 512 pour le B+, et un port USB contre quatre et un port ethernet pour le B+. Cela ne devrait pas poser de problèmes pour une console portable. D'un autre côté, pour une consommation légèrement supérieure à celle d'un B+, il y a le Raspberry pi 2 B, qui intègre un CPU arm v7 à quatre cœurs à 900Mhz avec 1 Gio de RAM contre un CPU arm v6 à un cœur à 700Mhz et 512 Mio de ram.
 D'​après les premiers tests, ce modèle est nettement plus puissant, et permet d'​émuler de façon confortable la Playstation 1 ou la Nintendo 64, contrairement au Raspberry Pi B+ qui était un peu juste pour ces plateformes. D'​après les premiers tests, ce modèle est nettement plus puissant, et permet d'​émuler de façon confortable la Playstation 1 ou la Nintendo 64, contrairement au Raspberry Pi B+ qui était un peu juste pour ces plateformes.
-==== Réalisation - prototype 1 ====+ 
 + 
 +===== Activation des sauvegardes d'​état ===== 
 +Pour activer les sauvegardes d'​état,​ il faut faire quelques manipulations:​ 
 +https://​weekendengineer.wordpress.com/​2014/​09/​05/​retropie-adding-game-roms-bios-files-and-enabling-save-states/​ 
 +Je dois encore vérifier si tout fonctionne à ce niveau. 
 + 
 +===== Activation des touches de menu sur la manette ===== 
 +On trouvera ici des conseils de configuration,​ ainsi que des explications sur l'​ajout de touches spéciales sur la manette pour commander le système. Ainsi, la touche select deviendra une touche "​hotkey",​ qui lorsque maintenue, modifie le comportement ​ des autres touches, pour ajouter de nouvelles fonctions sans perdre de touches. 
 +Les infos sont ici :  
 +http://​blog.petrockblock.com/​forums/​topic/​updated-for-2-3-step-by-step-guide/​ 
 + 
 +En pratique, pour pouvoir quitter l'​émulateur (retroarch) sans avoir à appuyer sur echap sur un clavier, il faudra ajouter ceci au fichier de configuration (/​opt/​retropie/​configs/​all/​retroarch.cfg) : 
 + 
 +<code bash> 
 +input_enable_hotkey_btn = "​8"​ 
 +input_exit_emulator_btn = "​9"​ 
 +</​code>​ 
 +Dans mon cas, la touche select est la 8, et start la 9. Du coup maintenir select, puis appuyer sur start revient au menu principal, quand on est dans retroarch. 
 + 
 +De même, on peut ajouter le fait de sauvegarder une savestate, ou d'en charger une :  
 +<code bash> 
 +input_save_state_btn = "​5"​ 
 +input_load_state_btn = "​4"​ 
 +</​code>​ 
 + 
 +Ici, maintenir select puis appuyer sur L1 chargera la savestate, tandis que R1 la chargera.  
 + 
 +Il est également possible de régler le volume sonore depuis la manette :  
 +<code bash> 
 +input_volume_up_axis = "​-1"​ 
 +input_volume_down_axis = "​+1"​ 
 +</​code>​ 
 +Si on ajoute ces lignes au fichier retroarch.cfg,​ alors le fait de maintenir select, puis d'​appuyer sur la fleche du haut ou du bas de la croix directionnelle augmentera ou diminuera le volume sonore. 
 + 
 +===== Réalisation - prototype 1 =====
 La première étape est de faire fonctionner le système d'​émulation sur le Raspberry pi.  La première étape est de faire fonctionner le système d'​émulation sur le Raspberry pi. 
-=== Installation de RetroPie ===+==== Installation de RetroPie ​====
 J'ai utilisé RetroPie, qui s'​appuie sur EmulationStation. Voici le guide d'​installation sur lequel je me suis basé : J'ai utilisé RetroPie, qui s'​appuie sur EmulationStation. Voici le guide d'​installation sur lequel je me suis basé :
 [[http://​emulationstation.org/​gettingstarted.html#​install_rpi_retropie|Installation de RetroPie sur un Raspberry Pi]] [[http://​emulationstation.org/​gettingstarted.html#​install_rpi_retropie|Installation de RetroPie sur un Raspberry Pi]]
 +
 +Voici un autre tutoriel, que j'ai utilisé, et qui est plus détaillé, contenant des informations à jour sur la configuration post-installation :
 +http://​www.raspberrypi.org/​forums/​viewtopic.php?​f=78&​t=85041
 Cette suite logicielle permet d'​installer tout ce qui est nécessaire pour émuler un grand nombre de consoles retro-gaming. Plusieurs solutions pour l'​installer :  Cette suite logicielle permet d'​installer tout ce qui est nécessaire pour émuler un grand nombre de consoles retro-gaming. Plusieurs solutions pour l'​installer : 
   - Télécharger une image pré-configurée (la plus facile);   - Télécharger une image pré-configurée (la plus facile);
Ligne 44: Ligne 91:
 Attention toutefois, ce menu permet de configurer la manette pour permettre de contrôler le menu général, mais ne permet pas de configurer les boutons pour les jeux, dans les émulateurs. Attention toutefois, ce menu permet de configurer la manette pour permettre de contrôler le menu général, mais ne permet pas de configurer les boutons pour les jeux, dans les émulateurs.
  
-=== Configuration des émulateurs === +==== Configuration des émulateurs ​==== 
-== Super Nintento ==+=== Super Nintento ​===
 L'​emulateur snes utilisé par défaut est à priori RetroArch. Voici la page wiki vers le fichier de configuration : https://​github.com/​petrockblog/​RetroPie-Setup/​wiki/​RetroArch-Configuration L'​emulateur snes utilisé par défaut est à priori RetroArch. Voici la page wiki vers le fichier de configuration : https://​github.com/​petrockblog/​RetroPie-Setup/​wiki/​RetroArch-Configuration
 La documentation présente sur ce site n'est pas à jour pour le moment, et indique que le fichier de configuation se trouve dans votre /home/pi La documentation présente sur ce site n'est pas à jour pour le moment, et indique que le fichier de configuation se trouve dans votre /home/pi
Ligne 73: Ligne 120:
  
  
-== Megadrive (Genesis) ==+=== Megadrive (Genesis) ==
 +L'​emulateur de Megadrive est probablement Retroarch, car la configuration de celui ci est également appliquée pour les jeux de Megadrive (Genesis). 
 + 
 +=== NES === 
 +De même, ici, c'est Retroarch qui s'​occupe de l'​émulation NES, donc la configuration des manettes est utilisée ici. Sur NES on aura uniquement la croix directionnelle,​ les boutons start, select, A et B. 
 + 
 +=== Game Boy Advance === 
 +L'​émulateur game boy advance ne démarre pas pour le moment, car il réclame un fichier de bios de gba. J'ai trouvé ou télécher des fichiers de bios :  
 +http://​www.emuparadise.me/​biosfiles/​bios.html 
 +Ce lien pourrait servir pour d'​autres émulateurs. 
 + 
 +L'​émulateur de game boy advance est **gpsp**, et son répertoire est  
 + 
 +<​code>/​opt/​retropie/​emulators/​gpsp</​code>​ 
 +Il faut donc copier le fichier gba_bios.bin dans le répertoire partagé BIOS (/​home/​pi/​RetroPie/​BIOS/​) 
 +On pourra ensuite copier ce fichier dans le répertoire adéquat :  
 +<code bash>​sudo cp /​home/​pi/​RetroPie/​BIOS/​gba_bios.bin /​opt/​retropie/​emulators/​gpsp/​raspberrypi/</​code>​ 
 + 
 +Si on lance maintenant emulationstation,​ on peut lancer des jeux de gba (bien sur il faut avoir copié les roms dans le répertoire partagé roms/​gba). 
 + 
 +Pour ouvrir le menu de l'​émulateur,​ il faudra appuyer sur la touche F10 du clavier, ce qui nous permettra de configurer la manette. Pour la première configuration,​ il faudra donc un clavier, mais ça n'est pas nécessaire par la suite. Il suffit de suivre les indications à l'​écran. 
 +A noter que par défaut, la dernière option permet d'​activer un raccourci vers le menu de l'​émulateur,​ avec select + gâchette droite. On peut alors se déplacer dans le menu sans clavier, et également quitter l'​émulateur et ainsi revenir au menu principal. 
 + 
 +Le fichier de configuration des touches se trouve à l'​emplacement suivant :  
 +<code bash>/​opt/​retropie/​emulators/​gpsp/​raspberrypi/​keys.txt</​code>​ 
 + 
 + 
 +Voici un lien vers le site qui m'a permis de faire fonctionner l'​émulateur de game boy advance :  
 +https://​weekendengineer.wordpress.com/​2014/​09/​08/​setting-up-gameboy-advance-for-retropie/​ 
 + 
 +(il y a plein d'​autres choses utiles et intéressantes!) 
 +=== Neo-Geo === 
 +Par défaut, si on lance un jeu neogeo, il y a un chargement, puis un écran noir.  
 + 
 +J'ai réussi à lancer un jeu, pour l'​instant la manette n'est pas configurée. Voici la procédure : 
 +  - Télécharger la rom NeoGeo (par exemple ici : http://​www.emuparadise.me/​M.A.M.E._-_Multiple_Arcade_Machine_Emulator_ROMs/​Neo-Geo/​15030-download ) 
 +  - Copier neogeo.zip dans le partage roms/​neogeo-gngeopi 
 +  - copier les roms dans le même partage. 
 + 
 +=Configuration de la manette= 
 +Pour la configuration de la manette, il faut trouver le fichier de configuration de gngeo. 
 +Pour ma version, il se trouve dans le répertoire home, dans un sous dossier .gngeo, dans le fichier gngeorc. 
 + 
 +pour se rendre dans ce répertoire,​ puis modifier le fichier, on pourra procéder comme suit :  
 +<code bash> 
 +cd ~/.gngeo/ 
 +nano gngeorc 
 +</​code>​ 
 + 
 +Voici mon fichier :  
 +<file bash gngeorc>​ 
 +p1control A=J0B1,​B=J0B0,​C=J0B2,​D=J0B3,​START=J0B9,​COIN=J0B5,​UP=J0a1,​DOWN=J0a1,​LEFT=J0A0,​RIGHT=J0A0,​MENU=J0B8 
 +p2control A=J1B1,​B=J1B0,​C=J1B2,​D=J1B3,​START=J1B9,​COIN=J1B5,​UP=J1a1,​DOWN=J1a1,​LEFT=J1A0,​RIGHT=J1A0,​MENU=J1B8 
 +</​file>​ 
 +Le principe du fichier est relativement simple. J0 correspond au joypad (manette) 0, J1 au joypad 1, etc. B0 correspond au bouton 0, B1 au bouton1, etc. Donc A=J0B0 indique que le bouton A de la neogeo est le bouton 0 du joypad 0. Dans mon cas, les boutons sont physiquement numérotés de 1 à 10, donc je réutilise ce nombre auquel je soustrais 1. 
 + 
 +Pour les directions, ma manette à une croix directionnelle,​ avec deux axes. Du coup, il existe l'axe 0 et l'axe 1. Par essais, j'ai déterminé que l'axe 0 correspond à l'axe gauche-droite,​ et l'axe 1 correspond à l'axe haut-bas. 
 + 
 +J'ai donc mis //UP=J0a1// et //​DOWN=J0a1//,​ car les deux sont sur le même axe. Si l'axe est inversé, alors on pourra mettre le //a// en majuscule, comme je l'ai fait pour gauche et droite : //​LEFT=J0A0//​ et //​RIGHT=J0A0//​. 
 + 
 +Kxxx correspond ici à la touche xxx du clavier, il faudra probablement trouver le code ascii de la touche correspondante. 
 + 
 +Pour déterminer les touches du joypad, on peut utiliser ​ jstest, qui s'​installe comme suit :  
 +<code bash>​sudo apt-get install joystick</​code>​ 
 +On l'​exécutera par la commande suivante : 
 +<code bash>​jstest /​dev/​input/​js0</​code>​ 
 +Cette commande affichera les sorties du joypad 0, on pourra utiliser js1 pour le 1 et ainsi de suite. 
 + 
 +J'ai trouvé ce fichier de configuration commenté qui donne quelques détails :  
 +http://​sheasilverman.com/​rpi/​gngeorc 
 + 
 +Le bouton //MENU// permet d'​afficher un menu de configuration de l'​émulateur,​ et permet de quitter celui ci et revenir à emulationstation. 
 + 
 + 
 + 
 +Au cas où, voici le fichier par défaut que j'​avais : 
 +<file bash gngeorc>​ 
 +p1control A=K122,​B=K120,​C=K97,​D=K115,​START=K49,​COIN=K51,​UP=K273,​DOWN=K274,​LEFT=K276,​RIGHT=K275,​MENU=K27 
 +p2control A=K108,​B=K59,​C=K111,​D=K112,​START=K50,​COIN=K52,​UP=K264,​DOWN=K261,​LEFT=K260,​RIGHT=K262,​MENU=K27 
 +</​file>​ 
 + 
 + 
 +Une page expliquant un peu la configuration de gngeo :  
 +https://​github.com/​petrockblog/​RetroPie-Setup/​wiki/​GnGeo-Pi 
 +Pour l'​instant,​ je ne suis pas parvenu à faire fonctionner l'​autre émulateur NeoGeo, et j'​ignore les différences. 
 +Voici une piste : 
 +http://​blog.petrockblock.com/​forums/​topic/​neo-geo-not-working-black-screen-only/​ 
 + 
 + 
 +==== Configuration de Retroarch ==== 
 +Retroarch est un émulateur multi-systèmes qui sert notamment pour la NES, la Master System, la Super Nintendo et la Megadrive. Une bonne configuration de celui ci permettra donc de profiter de réglages optimisés pour chacun de ces systèmes. 
 + 
 +Voici ce que j'ai ajouté en fin de mon fichier de configuration :  
 +<file bash retroarch_addon.cfg>​
  
-== NES ==+input_enable_hotkey ​nul 
 +input_player1_joypad_index ​"​0"​ 
 +input_player1_b_btn ​"​1"​ 
 +input_player1_y_btn ​"​0"​ 
 +input_player1_select_btn = "​8"​ 
 +input_player1_start_btn = "​9"​ 
 +input_player1_up_axis = "​-1"​ 
 +input_player1_down_axis = "​+1"​ 
 +input_player1_left_axis = "​-0"​ 
 +input_player1_right_axis = "​+0"​ 
 +input_player1_a_btn = "​2"​ 
 +input_player1_x_btn = "​3"​ 
 +input_player1_l_btn = "​4"​ 
 +input_player1_r_btn = "​5"​ 
 +input_player1_l2_btn = "​6"​ 
 +input_player1_r2_btn = "​7"​
  
-== Game Boy Advance ​==+input_enable_hotkey ​nul 
 +input_player2_joypad_index ​"​1"​ 
 +input_player2_b_btn ​"​1"​ 
 +input_player2_y_btn ​"​0"​ 
 +input_player2_select_btn = "​8"​ 
 +input_player2_start_btn = "​9"​ 
 +input_player2_up_axis = "​-1"​ 
 +input_player2_down_axis = "​+1"​ 
 +input_player2_left_axis = "​-0"​ 
 +input_player2_right_axis = "​+0"​ 
 +input_player2_a_btn = "​2"​ 
 +input_player2_x_btn = "​3"​ 
 +input_player2_l_btn = "​4"​ 
 +input_player2_r_btn = "​5"​ 
 +input_player2_l2_btn = "​6"​ 
 +input_player2_r2_btn = "​7"​
  
-== Neo-Geo ​==+input_enable_hotkey_btn ​"​8"​ 
 +input_exit_emulator_btn ​"​9"​ 
 +input_save_state_btn ​"​5"​ 
 +input_load_state_btn = "​4"​ 
 +input_volume_up_axis = "​-1"​ 
 +input_volume_down_axis ​"​+1"​ 
 +</​file>​
notes.1423430028.txt.gz · Dernière modification: 08/02/2015 22:13 par sky99