MAJ RetroPie 2

03 août, 2014

Sorti il y a maintenant un peu plus d'un mois, je me devais d'écrire quelques lignes sur RetroPie 2.

RetroPie 2 c'est une update majeure de la compilation d’émulateurs incontournable pour le RaspberryPi.

Voici en gros les améliorations apportés par cette version:

  • Dernières versions de tous les emulateurs.
  • EmulationStation 2. (Le front-end de retropie)

 

Pour EmulationStation on à maintenant un style beaucoup plus pro et surtout un scrapper intégré.
De plus EmulationStation est maintenant aussi directement dispo pour Windows ou Debian.

undefined

 

undefined

Pour l'instant je n'ai pas trop le temps de mettre à jour mon projet console avec cette nouvelle version de RetroPie, mais pas de soucis ça va se faire et de même pour l'update d'ES-Manager :D , mais pas tout de suite.

Voici quelques liens pour ceux qui souhaiterais se lancer avec la version 2 :

 

A l'heure où j'écris ces lignes la version 2.3 est déjà disponible.

RetroGaming Console Part14

08 juin, 2014

Manette de Famicom sur NES

Le problème avec la famicom c'est que les manettes ne sont pas détachable de la console, donc a priori pas de moyen de connecter sur une NES.

Sauf que si on compare une manette de NES et de Famicom il n'y a que la coque extérieur qui diffère, le circuit à l'intérieur est le même.

J'ai eu la chance de trouver une Famicom HS à bon prix (500¥) chez SuperPotato à Akihabara. (A noter que les manettes seules détachés de la console étaient autour des 2000¥)

undefined

J'ai donc sans problème pu mixer les deux manettes et obtenir une manette Famicom avec un port NES que je peux utiliser avec mon RaspberryPi.

undefined

RetroGaming Console Part13

23 mars, 2014

Ajout de dissipateurs thermiques sur le RaspberryPi


Cela permet entre autre de l'overclocker et avoir de meilleures performances dans certains jeux.

undefined

 

La console en vidéo


F Destroyer m'a aidé à réaliser une courte vidéo pour montrer le fonctionnement de l'appareil.




RetroGaming Console Part12

14 mars, 2014

Update pour ES-Manager


- Meilleure nettoyage des noms des roms
- Possibilité de copier les roms directement sur le partage SMB du Pi
- Tailles des pochettes nes/snes/megadrive/sms correctes dans le fichier de config

Instructions

Télécharger la V2 de ES-Manager

ATTENTION : Uniquement compatible avec la V1 de EmulationStation (Retropie 1)

 

RetroGaming Console Part11

12 mars, 2014

Des thèmes tout neufs pour EmulationStation


J'ai intégré de nouveaux thèmes que j'ai trouvé sur les forum de petrockblock : http://blog.petrockblock.com/forums/topic/my-skin/
Ces derniers que je trouve très réussis, ont été réalisés par "nosifone"

Je les ai quelque peu modifiés pour inclure les pochettes + résumé et les adapter à une résolution 1080p.

Voici un aperçu :

RetroGaming Console Part10

02 mars, 2014

Avec EmulationStation (le front-end de RetroPie), il est possible d'ajouter un résumé ainsi qu'une pochette pour chaque jeu.


RetroPie est livré avec un script Python (ES-Scraper) qui permet de scraper les résumé et les pochettes. Mais quand il y a des choses à modifier ça devient tout de suite ennuyant pour éditer le XML manuellement...

Pour palier à ce problème, j'ai fait un petit logiciel en C#




Il permet de scraper manuellement et facilement les résumé et les pochettes.
Si une pochette ne convient pas on peux en choisir une depuis son disque ou via une recherche Google Image. Les images sont chargés et redimensionnés automatiquement.
J'ai prévu deux tailles de covers pour les version européennes et japonaises.

Chaque console est configurable dans le fichier .config de l'application.
Voici par exemple la config de la SNES :

<add key="snes_name" value="SNES"/>
<add key="snes_pc_path" value="P:\RetroPie\Roms\snes"/>
<add key="snes_pi_path" value="/home/pi/RetroPie/roms/snes/"/>
<add key="snes_cover_width" value="825"/>
<add key="snes_cover_height" value="580"/>
<add key="snes_cover_width_alternate" value="580"/>
<add key="snes_cover_height_alternate" value="825"/>
<add key="snes_rom_extension" value="smc,sfc,fig,swc"/>
<add key="snes_gamesdb_machine_name" value="Super Nintendo (SNES)"/>

Télécharger la V1 de ES-Manager

ATTENTION : Uniquement compatible avec la V1 de EmulationStation (Retropie 1)

RetroGaming Console Part9

02 mars, 2014

Quelques images de la console finie.

 

L'intérieur avec une bonne quantité de fils.

 

L'arrière avec le port d'alimentation, HDMI, RJ45 (Copie de roms par partage réseau), sur le côté des sorties analogique audio et vidéo (toutefois ils y a un gros retard sur la sortie vidéo analogique)

 

L'expansion Port au dessous de la NES (qui d’ailleurs n'a jamais été utilisé) à ici été recyclé en tant que "Port de service" pour y brancher un clavier ou autre grâce a l'USB disponible. On à également accès à la carte SD pour la sortir et faire des backups.

RetroGaming Console Part8

02 mars, 2014

Gestion des drivers manettes selon le jeu lancé.

Pour cela j'ai modifié le fichier "/home/pi/.emulationstation/es_systems.cfg"

Voici ce que j'ai fait pour les lignes de config SNES par exemple

DESCNAME=Super Nintendo
NAME=snes
PATH=/home/pi/RetroPie/roms/snes
EXTENSION=.smc .sfc .fig .swc .SMC .SFC .FIG .SWC
COMMAND=sudo modprobe gamecon_gpio_rpi -r && sudo modprobe db9_gpio_rpi -r && sudo modprobe --first-time gamecon_gpio_rpi map=0,0,1,1 && /home/pi/RetroPie/supplementary/runcommand/runcommand.sh 2 "/home/pi/RetroPie/emulators/RetroArch/installdir/bin/retroarch -L /home/pi/RetroPie/emulatorcores/pocketsnes-libretro/libretro.so --config /home/pi/RetroPie/configs/all/retroarch.cfg --appendconfig /home/pi/RetroPie/configs/snes/retroarch.cfg %ROM%"
# alternatively: COMMAND=/home/pi/RetroPie/emulators/snes9x-rpi/snes9x %ROM%
# alternatively: COMMAND=/home/pi/RetroPie/emulators/pisnes/snes9x %ROM%
PLATFORMID=6

J'ai ajouté des autres commande à la ligne de lancement du jeu afin d'unlader les drivers actifs et de loader le bon driver

"&&" permet d'inclure plusieurs commandes à exécuter sur une même ligne

RetroGaming Console Part7

02 mars, 2014

Mettre un splashscreen personnalisé.

Le splashscreen c'est tout simplement l'écran de boot.
Le plus simple est de remplacer le .png du splashscreen actif. Par défaut dans "RetroPie-Setup/supplementary/splashscreens"

Voici celui que j'ai réalisé :

 

 

Pour les addicts des vieilles TV

Si l'aspect super net du jeu sur HDMI vous rebute, sachez qu'il existe un pack qui permet de simuler des scan-lines comme sur les vieux écrans.
Le pack se trouve ici, mais je ne l'ai pas encore testé.

http://blog.petrockblock.com/forums/topic/video-filters-scanlinesntsc/

 

Utiliser les bouton Power et Reset de la NES

Le problème avec le RaspberryPi c'est que le seul moyen de l'éteindre c'est de lancer un shutdown "sudo halt" (comme sur n'importe quel PC) puis de tirer la prise d'alimentation.
Si on tire directement la prise sans faire de shutdown on risque de corrompre la carte SD !

Heureusement le site http://mausberry-circuits.myshopify.com/ vend des circuit permettant de palier à ce problème.

Théoriquement c'est pas compliqué. On relie nos boutons POWER et RESET au circuit et le circuit lui-même doit être branché sur deux GPIO (1x IN et 1x OUT).
Sur le RaspberryPi on doit également installer un petit script.

Donc en gros quand on presse sur le bouton POWER, le circuit envoi un signal au RaspberryPi qui lance la commande de shutdown, et quand le shutdown se fait c'est le RaspberryPi qui envoi un signal au circuit et celui-ci coupe le courant.


Le problème dans notre cas c'est qu'il n'y avait plus qu'un seul GPIO de libre, tous les autres étant utilisés par les manettes...

Heureusement la revision2 du RaspberryPi possède deux ports GPIO supplémentaires (GPIO 30 & 31). Je les ai indiqués sur l'image ci-dessous


Utiliser la LED de la console

Il faut simplement relier la LED de la NES sur le 3.3V ou 5V du RaspberryPi.

ATTENTION : Il faut placer une résistance avant la LED sinon elle grille !

RetroGaming Console Part6

02 mars, 2014

Branchement des manettes sur le RaspberryPi

 Il y a deux drivers différent pour gérer les types de manettes qui nous intéressent.

db9_gpio_rpi : https://github.com/petrockblog/RetroPie-Setup/wiki/db9_gpio_rpi
Support pour les manettes MD, SMS, Atari, Amiga, Commodore

gamecon_gpio_rpi : https://github.com/petrockblog/RetroPie-Setup/wiki/gamecon_gpio_rpi
Support pour les manettes SNES, NES, N64, PSX/PS2, GC


Les connecteurs manettes sont physiquement reliés aux ports GPIO du RaspberryPi.


Pour gérer plusieurs types de manettes plusieurs GPIO étaient utilisés à double.

Pour s'y retrouver avec les branchements, j'ai pu demander de l'aide à mon père qui est électronicien.
Il nous a fournis un petit système quadruplant ces connecteurs GPIO




Toutes les infos de branchement se trouvent sur les pages des drivers donnés plus haut.
Et avec les schémas ci-dessous c'est possible de se débrouiller.



ATTENTION : Malgré le schéma sur le site web du driver gamecon_gpio_rpi, les ports GPIO2 & 3 ne sont pas utilisables car il s'agit de ports I2C. (en tout cas sur la r2 du Pi)

ATTENTION : Pour la SNES, les manettes européennes ne fonctionnent pas ! Car le RaspberryPi ne leur fournit que 3.3V au lieu des 5V qu'elles demandent. Pour cela j'utilise mon ancien ASCII Pad sortit à l'époque sous licence Nintendo ainsi qu'une manette SNES US (Les manettes super famicom marchent aussi). Toutefois il est possible d'acheter un module sur le site de petRockblog qui permet de faire circuler du 5V sans risques. (mais à vérifier !!)

Pour le mappage des touches il suffit d'éditer le fichier retroarch.cfg relatif à la console choisie.

Par exemple dans "/home/pi/RetroPie/config/nes" mon fichier retroarch.cfg contient :

input_player1_a_btn = 1
input_player1_b_btn = 3
input_player1_start_btn = 7
input_player1_select_btn = 6
input_player1_left_axis = -0
input_player1_right_axis = +0
input_player1_up_axis = -1
input_player1_down_axis = +1
input_player2_a_btn = 1
input_player2_b_btn = 3
input_player2_start_btn = 7
input_player2_select_btn = 6
input_player2_left_axis = -0
input_player2_right_axis = +0
input_player2_up_axis = -1
input_player2_down_axis = +1

 

Pour vérifier si les touches sont bien mappé il existe des roms pour tester les inputs.

 

Utiliser un adaptateur USB

Avec RetroPie il est tout a fait possible d'utiliser directement un adaptateur USB au lieu de passer par les GPIO.
Cependant à première vue il me semble que passer directement par les GPIO supprime les retard inhérent aux adaptateurs USB.

← Billets plus anciens