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.

RetroGaming Console Part5

02 mars, 2014

Commandes et astuces en vrac pour la configuration de RetroPie:


Reset de la config manette sous Emulationstation

cd ~/.emulationstation/sudo rm es_input.cfg


Pour tout ce qui touche à la config de emulationstation

cd ~/.emulationstation/
sudo nano es_systems.cfg


Pour faire un shutdown

sudo halt


Pour accéder à la config générale de la distribution linux Raspi (Pour changer le nom de la machine ou le type de clavier)

sudo raspi-config


Pour accéder à la config liée a RetroPie

cd RetroPie-Setup
sudo ./retropie_setup.sh

 
Accéder à l'éditeur de texte

sudo nano myconfig.cfg


Loader un driver (manette megadrive par ex)

sudo modeprobe --first-time db9_gpio_rpi map=4


Unload un driver

sudo modprobe db9_gpio_rpi -r


Nom d'utilisateur et password par défaut

user : pi
password : raspberry


Quelques utilitaires biens utiles

PuTTY : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Permet d'accéder à la console du RaspberryPi via SSH

WinSCP : http://winscp.net
Permet d'accéder au RaspberryPi via SFTP. Cela permet entre autre de nettement facilier la navigation, l'édition et le transfert de fichiers, vue que tout ca fait dans un explorateur de fichier type Norton Commander.

RetroGaming Console Part4

02 mars, 2014

Les boutons qui ont été ajouté sur le boitier, vont servir à naviguer dans les menu (sélection de l’émulateur, de la rom, lancer/quitter le jeu)

Pour les connecter au RaspberryPi, j'ai commandé (ebay) un mini-clavier configurable qui se connecte en USB.



Le boitier est fourni avec un soft pour Windows qui permet d'attribuer une touche (ou macro) à chaque bouton.


Installation des ports console supplémentaires

Ports MS/SMS : Se sont les mêmes pour les deux consoles, il s'agit de ports standard db9. (Utilisé à l'époque par Atari, Commodore, Amiga, etc..)
Ports NES : Nous allons tout simplement utiliser ceux déjà présent sur la console
Ports SNES : Comme pour la NES c'est un standard Nintendo. J'ai pu m'en procurer sur le site Québécois http://www.raphnet-tech.com/ (Le site présente entre-autres pas mal de projets sympa liés aux consoles)

Voici ce que ça donne une fois placés.



Et vu de l'intérieur.

 

RetroGaming Console Part3

02 mars, 2014

Commande du matériel

J'ai presque tout commandé sur ebay. Pour les petites pièces (câbles, boutons, connecteurs) c'est super, ça ne coûte jamais plus de 2-3$ et les frais de ports sont gratuits. Seule condition, ça vient de Chine et donc il faut être prêt à attendre environ 1 mois pour être livré.

Le boitier de la future console

J'ai décidé d'utiliser un vieux boitier de NES. Par chance j'ai pu me procurer une NES défectueuse sur "ricardo.ch" à bon prix (15CHF). (Le prix des NES est vraiment hallucinant maintenant !)




Première étape : donner un look différent d'une NES classique.

La pauvre à été éventrée puis vidée et quelques découpes ont été effectués afin d'intégrer les nouveaux types de sorties.

Et hop un coup de peinture blanche.

 

Finalement, le boitier est refermé et les boutons placés.

RetroGaming Console Part2

02 mars, 2014

Avant de réellement se lancer dans le projet nous avons fait quelques essai.

Notre premier test était d'arriver à faire fonctionner une manette megadrive (le port standard db9 est facile à se procurer)

Sur le RaspberryPi nous avons installé le "RetroPie Projet" qui est en fait un pack de différents émulateur axés retro-gaming / front-ends / drivers.
Sur le site officiel ils proposent même des images toutes faites à copier direct sur la carte SD du RaspberryPi.

Pour copier facilement les images sur la carte SD, il existe le soft Win32 Disk Imager.


Malgré le fait que tout soit sensé être installé et marcher, rien ne fonctionnait du premier coup.
Heureusement à chaque étape du projet j'ai pu compter sur l'aide de FDestroyer comme ça on pouvait frustrer à deux !

RetroGaming Console Part1

02 mars, 2014

Début 2013 j’étais tombé sur cet article de Korben qui proposait plus de 50 idées de projets avec un RaspberryPi et cela m'avait motivé à en acheter un.


Bon, mais déjà qu'est-ce qu'un RaspberryPi ?

En résumé c'est un ordinateur de la taille d'une carte de crédit qui embarque un processeur ARM.
Malgré sa taille il possède tous les entrées/sorties dont on a besoin (USB, HDMI, RJ45, Audio Jack, Vidéo composite).

Son grand avantage étant son prix inférieur à 50$.

 

Plusieurs mois plus tard, alors que mon RaspberryPi prenait la poussière dans un tiroir et que la RetroN5 était repoussée de sortie pour la Xème fois, j'ai repensé à la liste de projets et plus particulièrement à celui-ci :

Un RaspberryPi avec Emulateur SNES


Bien sûr, rien ne remplace la console d'origine. Mais de mon point de vue jouer sur une TV et avec les manettes de la console d'origine est ce qui peux reproduire au mieux l'expérience d’antan.

Les bases du mini projet sont posés :

  • Look de console
  • Utilisation de la sortie HDMI
  • Emulateurs des console de l'époque guerre Sega-Nintendo
  • Support des manettes officielles (MD, SMS, NES & SNES)

Premier post

25 février, 2014

Juste le premier post pour s'assurer que tout fonctionne !

Billets plus récents →