User Tools

Site Tools


retrogaming-retropie

!! grosse update depuis cette doc… (raspi3, crt-pi shader, compile des emu, utilisation exclusive retroarch car fba-next performant, update distrib , etc…). Faudra que je mette à jour…un jour :D

Présentation

Retropie permet de transformer un raspberry en plateforme d'émulation en rassemblant un ensemble de projet open source: raspbian pour l'OS, emulationstation pour l'habillage / pilotage des émulateurs et plusieurs scripts pour paramétrer l'ensemble.

L'installation peut se faire depuis une rasbian ou directement via une image disque à pousser sur une micro sd.

Je vous propose de décortiquer la configuration que j'utilise. C'est un projet sur mesure pour des pads type 8bitnesdo sans fil et xbox 360 filaire. En gros emulation station, retroarch uniquement et la gestion des pads.

Lien: http://blog.petrockblock.com/retropie/

Installation

Rien à signaler , suivre les instructions sur le site officiel de retropie. J'ai utilisé l'image 2.3 pour micro sd.

Paramétrage de base

Principaux fichiers / répertoires:

Système:

  • /boot/config.txt: options de boot, partage mémoire gpu/système, overscan.
  • /etc/samba/smb.conf: configuration du partage cifs pour ajouter des répertoires par exemple

Emulation:

  • /etc/emulationstation/es_system.cfg : permet de paramétrer les systèmes disponibles dans emulasionstation.
  • /opt/retropie/configs : contient un repertoire ALL pour la configuration globale de retroarch notamment et un répertoire par système qui surcharge la configuration globale.
  • /home/pi/.emulationstation/es_input.cfg&es_settings.cfg: contient la configuration des touches d'emulationstation & du fontend en lui même.

Mes modifications :

1 - utilisation du mode turbo via sudo raspi-config

2- /etc/emulationstation/es_systems.cfg:

  • ajout du .cue dans la partie pcengine pour prendre en compte les cdrom
  • je n'ai gardé que les sytèmes megadrive, mastersystem , nes , snes & pc engine.
  • modification des runcommand.sh 1 en runcommand.sh 4 pour prise en compte correct en 4:3 sur Ècran LCD (j'avais un souci sur mon lcd philips en 1/VGA). Après plusieurs recherche l'impact du 1 vs 4 (VGA vs 720P) est faible.
  • utilisation du core alternatif mefnafen_pce_fast_libretro.so pour le système pc engine qui est en fait la dernière version proposée par libretro (0.9.36.1). Attention celà supprime la compatibilité des roms sgx. Par défaut il utilise 242 lignes d'overscan du système pce. Le mapping des boutons pad A & B est parfait contrairement à l'autre core qui nécessite une inversion dans le fichier retroarch pcengine.

3- ajout de repertoires partagées en cifs via samba :

[screenshoot]
comment = screenshoot
path = /home/pi/RetroPie/screenshoot
writeable = yes
guest ok = yes
create mask = 0644
directory mask = 0755
force user = pi

[savestate]
comment = savestate
path = /home/pi/RetroPie/savestate
writeable = yes
guest ok = yes
create mask = 0644
directory mask = 0755
force user = pi

[share]
comment = share
path = /home/pi/RetroPie/share
writeable = yes
guest ok = yes
create mask = 0644
directory mask = 0755
force user = pi

4- Paramétrage global de retroarch:

/opt/retropie/configs/all
# scanline.glsl a un rendu proche de mon slg=HD et prend très peu de ressource. J'ai essayé les autres shaders comme crt-xxx mais ils demandent trop de puissance au raspberry (meme en mode turbo)
video_shader = "/opt/retropie/emulators/RetroArch/shader/scanline.glsl"
video_shader_enable = true
video_shader_dir = /opt/retropie/emulators/RetroArch/shader/

# screenshoot avec le post-processing , notamment scanlines
video_gpu_screenshot = true

# on desactuve l'invite d'aide lors d' laccès au menu retroarch
rgui_show_start_screen = false

# ajout de repertoires dans le partage samba
savefile_directory = /home/pi/RetroPie/savestate
savestate_directory = /home/pi/RetroPie/savestate
screenshot_directory = /home/pi/RetroPie/screenshoot
overlay_directory = /opt/retropie/emulators/RetroArch/overlays

# l'aspect ratio 6 (Core provided) me donne, combiné au runcommand 4 , un ratio excellent quelques soit l'écran (tv 16/9 full hs, lcd 16/10 et lcd 5/4)
aspect_ratio_index = "6"

Spécificité du core pc engine:

ajouté/modifié dans /opt/retropie/configs/all/retroarch-core-options.cfg:
pce_initial_scanline = "0"
pce_last_scanline = "239"

Paramétrage joypad bluetooth NES30

Lien utilisé pour l'intégration des nes30 en bluetooth (scripts): http://www.open-consoles-news.com/2014/10/raspberry-pi-realiser-une-retro-gaming.html

Pour vérifier que la manette fonctionne correctement , que le dongle bluetooth fonctionne etc… on peut utiliser la commande suivante : sudo hciconfig hci0 sspmode 0. Cette commande permet de s'affranchir de toute la configuration suivante mais n'est pas persistante au reboot.

configuration de emulation station , dans es_input.cfg:

<?xml version="1.0"?>
<inputList>
	<inputConfig type="joystick" deviceName="8Bitdo NES30 GamePad" deviceGUID="0500000038426974646f204e45533300">
		<input name="a" type="button" id="2" value="1" />
		<input name="b" type="button" id="3" value="1" />
		<input name="down" type="axis" id="1" value="1" />
		<input name="left" type="axis" id="0" value="-1" />
		<input name="pagedown" type="button" id="5" value="1" />
		<input name="pageup" type="button" id="4" value="1" />
		<input name="right" type="axis" id="0" value="1" />
		<input name="select" type="button" id="6" value="1" />
		<input name="start" type="button" id="7" value="1" />
		<input name="up" type="axis" id="1" value="-1" />
	</inputConfig>
</inputList>

Ajout d'un sleep 5 dans le lancement de emulationstation pour laisser le temps aux pads bluetooth nes30 de se connecter.

vim usr/bin/emulationstation 
#!/bin/bash

sleep 5

...

paramétrage retroarch.cfg : la combinaison R1 puis R2 ouvre le menu retroarch. J'utilise uniquement des émulateurs retroarch avec ma retropie dédiée nes30.

/opt/retropie/configs/all
##### INPUT 
#nes30 p1
input_player1_joypad_index = "0"
input_player1_analog_dpad_mode = "3"
input_player1_b_btn = "14"
input_player1_y_btn = "11"
input_player1_select_btn = "17"
input_player1_start_btn = "18"
input_player1_a_btn = "13"
input_player1_x_btn = "12"
input_player1_l_btn = "15"
input_player1_r_btn = "16"
input_player1_up_axis = "-1"
input_player1_down_axis = "+1"
input_player1_left_axis = "-0"
input_player1_right_axis = "+0"
input_player1_left = "nul"
input_player1_right = "nul"
input_player1_up = "nul"
input_player1_down = "nul"
input_player1_l2_btn = "nul"
input_player1_r2_btn = "nul"
input_player1_l3_btn = "nul"
input_player1_r3_btn = "nul"
input_player1_l_x_plus_btn = "nul"
input_player1_l_x_minus_btn = "nul"
input_player1_l_y_plus_btn = "nul"
input_player1_l_y_minus_btn = "nul"
input_player1_r_x_plus_btn = "nul"
input_player1_r_x_minus_btn = "nul"
input_player1_r_y_plus_btn = "nul"
input_player1_r_y_minus_btn = "nul"

#nes30 p2
input_player2_joypad_index = "1"
input_player2_analog_dpad_mode = "3"
input_player2_b_btn = "14"
input_player2_y_btn = "11"
input_player2_select_btn = "17"
input_player2_start_btn = "18"
input_player2_a_btn = "13"
input_player2_x_btn = "12"
input_player2_l_btn = "15"
input_player2_r_btn = "16"
input_player2_up_axis = "-1"
input_player2_down_axis = "+1"
input_player2_left_axis = "-0"
input_player2_right_axis = "+0"
input_player2_left = "nul"
input_player2_right = "nul"
input_player2_up = "nul"
input_player2_down = "nul"
input_player2_l2_btn = "nul"
input_player2_r2_btn = "nul"
input_player2_l3_btn = "nul"
input_player2_r3_btn = "nul"
input_player2_l_x_plus_btn = "nul"
input_player2_l_x_minus_btn = "nul"
input_player2_l_y_plus_btn = "nul"
input_player2_l_y_minus_btn = "nul"
input_player2_r_x_plus_btn = "nul"
input_player2_r_x_minus_btn = "nul"
input_player2_r_y_plus_btn = "nul"
input_player2_r_y_minus_btn = "nul"

##### hotkeys 

input_enable_hotkey_btn = "15"
input_menu_toggle_btn = "16"

Informations diverses

Autoconf retroarch:

Mettre des profiles automatique pour retroarch:

Copier les inputs/paramètres spécifiques de la manette dans un nouveau fichier à l'emplacement suivant:
/opt/retropie/emulators/RetroArch/configs/

Commandes utiles:

Générér un fichier de configuration retroarch d'une manette (ici j1): /opt/retropie/emulators/RetroArch/installdir/bin/retroarch-joyconfig -j1 » fichier_commandes_pad.conf



retrogaming-retropie.txt · Last modified: 2017/02/04 07:47 by clagneau