Table of Contents

!! 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:

Emulation:

Mes modifications :

1 - utilisation du mode turbo via sudo raspi-config

2- /etc/emulationstation/es_systems.cfg:

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