Author Topic: [Retroframboise] - Faire sa console retro all-in-one avec un Raspberry Pi  (Read 149558 times)

Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
oui la manette / console c'est un grand classique, surtout en stick, et avec la taille du pi zero ça devient envisgeable en pad...


mais il y a plus de pi zero nulle part bordel !!

Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
le pi ZERO est de retour !! pi hut en a (4£ + 4£ de fdp) limité à 1 par commande donc j'ai pas pu en prendre 10 mais dépéchez-vous si vous en voulez a risque de partir comme des petits pains  ;D

Offline MrBlueSky

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 263
  • Bonus Pute: 130
Hop j'ai commandé la crotte. Ils ne l'avaient plus qu'en essentials kit à 16£ par contre.

Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
Ils ne l'avaient plus qu'en essentials kit à 16£ par contre.

je pense que c'est le souci du zero ... qu'est ce que tu veux commercialiser un truc à 5$ ? les revendeurs doivent avoir une marge ridicule dessus (s'ils en ont une) donc tout le monde essaie de le refourguer avec du matos annexe (carte SD, alim...) qu'ils te font payer au prix fort  :P

Offline Silver

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 261
  • Bonus Pute: 25
  • Belgian Connection.
Vous comptez faire quoi avec le votre ? J'étais tenté d'en prendre un mais au final, ma première idée de projet était "Pi Zero et écran dans un cadre suspendu sur la porte des chiottes avec des puzzles games". Je pense que je vais me contenter de mon Pi 3 :D

Quelqu'un (Pixxell ?) avait parlé ici d'utiliser le Pi comme boîte à Steam. Vous auriez un lien à ce sujet ?

Offline Pixxell

  • Snack of Quality
  • Full Member
  • ***
  • Posts: 129
  • Bonus Pute: 22
    • Jeff Bezos Zone
Yep !

! No longer available

Avec donc Moonlight (le "nouveau" nom de Limelight, qu'ils utilisent dans la vidéo).
Seul impératif : avoir un PC qui peut utiliser NVidia Gamestream (et donc il faut une GeForce 600++, en dessous inutile d'essayer). La compatibilité dépend donc essentiellement du support de Gamestream.

A la base j'ai voulu faire les choses le plus simplement possible et j'utilisais la distrib Happi qui s'en occupait très bien, mais à chaque mise à jour, cet aspect là semblait de moins en moins important pour le développeur et il fallait patcher le tout...

Entre temps j'ai acheté un Steam Link (je ne te remercie pas, Gilles  ;D) et donc j'ai délaissé la chose, mais la version 3.4.0 était nickel dans mes souvenirs  :)

Offline Silver

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 261
  • Bonus Pute: 25
  • Belgian Connection.
Merci ! Mais dommage ça demande une carte Nvidia plus puissante que la mienne. Je testerai ça avec mon futur PC.

Offline Z-Master

  • Hero Member
  • *****
  • Posts: 1 081
  • Bonus Pute: 20
  • C'est ta mère Mother
Moi j'ai une carte assez puissante et ça m'intéresserait bien ! Mais j'ai super peur du lag quand même avec ce genre de machines :/

Moi je finis de construire une mini machine à émulation portable pour ma copine. J'ai fais ça dans une boîte en carton. C'est très moche. Mais c'était rigolo à faire.

Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
mon petit memo des choses à creuser (...)

12€ l'écran

hop un petit retour pour les intéressés sur les différentes options de mini écrans pour pi :

1. la solution grand luxe (connectique HDMI plug & play assuré) : idéal si vous trouvez la taille qui vous convient. dans les faits assez impossible pour un case mod GB car ça commence à partir de 5". apparemment il est possible de trouver des solutions à des tailles inférieures car utilisé sur des caméras HD par exemple mais c'est cher.

2. l'écran NTSC en composite : si on met de coté la qualité médiocre (voici ici un screen "magasin" donc le mieux qu'on puisse obtenir) c'est presque autant "plug & play" car on va souder la prise directement sur le pi (s'il s'agit d'un zero) et la bécane va se charger de balancer notre signal en 320x240. je voulais éviter cette option car je suis vraiment pas fan du composite.

3. l'écran qui se branche les pins GPIO : sur le papier la solution la plus intéressante, écrans low cost, grand choix de tailles & de résolutions et ils sont tactiles... dans les faits c'est BEAUCOUP plus complexe.
ce sont des écrans tout à fait appropriés pour un affichage desktop ou console, genre un écran annexe pour contrôler son PI, mais si vous partez pour de l'émulation (ou de la vidéo) il faut savoir que le GPU du pi ne sort que sur la sortie standard (HMDI / composite). soit on a pas de GPU (et des perfs à la ramasse) soit on sort pas sur l'écran :D
pour pouvoir utiliser le GPU on va donc lancer un daemon qui copie le framebuffer standard (HDMI) vers la sortie GPIO (le net parle beaucoup de FBCP je lui ai préféré raspi2fb) cela implique une perte en terme de CPU (une copie à 60fps c'est coûteux), 1 à 2 frames de lag (le temps de la copie), et surtout d'acheter des LCD basse résolution (au delà de 320x240 oubliez les jeux d'action car la copie prendra trop de temps).
deuxième souci, c'est tout sauf plug & play, heureusement la communauté a créé des "overlays" (paramétrage adhoc sur la base d'un driver générique) pour quasiment tous les écrans qu'on trouve dans le commerce.
avec le waveshare 3.2" en 320x240, sur un pi zero, en customisant un peu (render principal réduit à 320x240, copie à 60 fps....) on arrive (si vous configurez bien votre retroarch notamment les aspect ratio) à quelquechose de très propre graphiquement parlant (pixel perfect) et correct en terme de timing : SMS, GB sans souci, la NES est OK, et pour la pc engine on a l'impression qu'il y a un frameskip de 1 mais ça reste OK.

bref, pour l'instant aucune solution idéale, vous avez soit la qualité, soit le timing, mais pas les deux.
« Last Edit: 05 June, 2016, 13:02:01 by tam »

Offline Bast

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 589
  • Bonus Pute: 70
  • Alors, si t'en casses 4, ça va faire une omelette!
j'en rajoute une couche parce que je suis en plein dedans : les petits écrans GPIO c'est REELLEMENT la croix et la bannière pour un néophyte à faire tourner correctement.

genre VRAIMENT.  ;D

le mieux c'est de chopper une version de raspbian toute prête, et de serrer du cul sévère pour pas faire un kernel panic au premier démarrage du bouzin.

Bref, tam je suis preneur de tes sites sources pour cette affaire.

Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
alors 2 questions parceque moi aussi j'ai bien galéré (mais tu verras c'est surtout dû au trop plein d'infos vu que les mecs balancent tout en vrac sans même préciser leur pi, leur raspbian, leur écran.... bref zéro chance qu'une config marche chez toi) :

- tu as acheté quel écran ?
- tu comptes en faire quoi ?

pour la première question regarde si ton écran est dans la liste de notro et son FBTFT du bien. si c'est le cas ne te prends pas la tête avec les solutions qu'on trouve à droite à gauche et qui semblent toujours à moitié fonctionner (perso j'ai trouvé les miens ici https://github.com/swkim01/waveshare-dtoverlays.git)
tu charges le bon overlay, tu modifie ton /boot/config.txt et l'écran fonctionne.

pour la seconde question, je ne vais pas plus loin car je n'utilise l'écran que pour répliquer le framebuffer de la sortie HDMI (émulateurs) donc surtout ne rien toucher d'autre tu lances ton programme et ça marche.
si tu comptes en revanche t'en servir d'écran de contrôle il faut ensuite que tu crées un /usr/share/X11/xorg.conf.d/99-fbdev.conf qui pointe vers /dev/fb1 et quelques bricoles.
au travers de mes essais j'étais arrivé à avoir un écran qui fonctionnait (mais retropie ne se lançait plus) mais à partir de là tu es à bout touchant.

vu que je galérais avec des dizaines de config, j'ai fini par repartir d'une image (retropie) propre et j'ai noté chacune de mes actions pour pouvoir rollback :D , si ça peut t'aider :
tu noteras que je me prends bien le chou car le pi zero n'a qu'un USB et pas de wifi intégré. comme je n'ai pas de hub, c'est soit clavier, soit dongle wifi... d'où la conf initiale à l'aveugle  ::)

Quote
CONF INITIALE

. install de l'IMG retropie pour pi zero
. branchement du clavier : setup des touches
. quit emulationstation
. configure wifi (https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md)
. sudo raspi-config > advanced > enable SSH
. branchement du dongle wifi (reboot)
. check de la nouvelle IP > connection en SSH (pi/raspberry) avec putty
. sudo raspi-config >
    expand filesystem
    advanced >
       overscan off
       device tree enable
       spi enable/enable
. reboot

DRIVERS ECRAN

. pour l'écran 3.2" banggood (waveshare 3.2")
. git clone https://github.com/swkim01/waveshare-dtoverlays.git
. sudo cp waveshare-dtoverlays/waveshare32b-overlay.dtb /boot/overlays/
. sudo nano /boot/config.txt > add dtoverlay=waveshare32b en fin de fichier
. sudo shutdown now
. branchement de l'écran

FRAMEBUFFER DAEMON

. (opt) sudo apt-get install cmake
. sudo apt-get install libbsd-dev
. git clone https://github.com/AndrewFromMelbourne/raspi2fb.git
. cd raspi2fb
. mkdir build
. cd build
. cmake ..
. make
. sudo make install
. sudo cp ../raspi2fb.init.d /etc/init.d/raspi2fb
. sudo update-rc.d raspi2fb defaults
. sudo /etc/init.d/
. sudo nano raspi2fb
> modif ligne DAEMON_ARGS="--daemon --fps 60 --pidfile $PIDFILE"
. sudo service raspi2fb start

OPTIMS

. sudo nano /boot/config.txt
. modif taille HDMI > mode 2/87 -> 320x240 60fps

. modif ratio display retroarch

PS : il me reste un waveshare 3.5" 320x480 si tu as besoin.

EDIT : ce boulot permettra peut être d'utiliser le GPU sur sortie GPIO (je suis pas sûr je connais rien à linux) ça serait bueno !
« Last Edit: 06 June, 2016, 09:35:38 by tam »

Offline MrBlueSky

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 263
  • Bonus Pute: 130
Wow... Je ne bite absolument rien  ;D


Cruel dilemme en vérité.
J'ai peur que mes compétences en Linux (qui sont au niveau 0) ne me permettent pas de tenter le branchement de l'écran sur GPIO. Surtout si c'est pour avoir certaines émulations à la ramasse.

Je pense me contenter du composite pour l'écran de la GB et garder le branchement HDMI accessible pour pouvoir jouer sur téléviseur avec une image parfaite. D'après ce que j'ai compris, en te branchant sur GPIO tu es obligé de de définir la résolution que tu souhaite avoir, donc admettons que l'écran sur lequel tu te branche ensuite en HDMI (pour montrer ta partie de Tetris lors de ta prochaine réunion familiale) en ai une différente, tu l'as dans l'os. J'ai bon?  :D

En fait mon GB Pi je le vois pas mal comme une Nomad mais qui émulerait tout un tas d'autres consoles. L'idée serait pouvoir utiliser le port USB pour brancher une manette supplémentaire (voir un multitap) et jouer à plusieurs. GB Pi en solo, écran composite. GB Pi entre copains, écran HDMI et GB Pi qui se transforme en console de salon  :)




Offline ɯɐʇ

  • Snack of Quality
  • Hero Member
  • *****
  • Posts: 1 999
  • Bonus Pute: 113
  • ?x???? ¡¡¡¡¡
J'ai peur que mes compétences en Linux (qui sont au niveau 0)

très honnêtement j'annone bêtement ce que j'ai trouvé sur le net, ma première rencontre avec linux a été il y a 5 jours quand j'ai reçu mon écran.
après je dis pas que c'est E A S Y, ça demande quand même de se pencher assez sérieusement sur son sujet pour essayer de comprendre de quoi il retourne, mais c'est pas toi qui va écrire une ligne de code pour contrôler les interruptions de signal sur la carte contrôleur de ton écran quoi.

D'après ce que j'ai compris, en te branchant sur GPIO tu es obligé de de définir la résolution que tu souhaite avoir, donc admettons que l'écran sur lequel tu te branche ensuite en HDMI (pour montrer ta partie de Tetris lors de ta prochaine réunion familiale) en ai une différente, tu l'as dans l'os. J'ai bon?  :D

tout à fait, en fait ton écran -GPIO ou pas- il se démerde, rien ne t'empêche de de faire une copie depuis du 1920x1080 vers du 320x240 si ce n'est que l'image sera déformée et que ça prendra des plombes.
donc pour optimiser on sort du 320x240 en natif sur le HDMI ce qui accélère nettement la copie, mais qui ne convient pas à la majorité des écrans HD d'aujourd'hui (car le pi continue de balancer sur la sortie HDMI pour ceux qui suivent pas).

pour le coup la solution "composite" est à étudier, si ce n'est que c'est pas évident de trouver son bonheur sur le net aujourd'hui.
perso je regarderai du coté de la chine.

idéalement (pour un case mod GB) un 2.8" ou 3" serait parfait.

pour ce qui est du switch mini->maxi tu peux tout à fait permettre la sortie d'une micro HDMI et d'une USB (ou deux).
perso dans ce cas je changerai aussi dans ce cas de micro SD pour une distrib adhoc (un distrib optimisé 320x240 et une HDMI) à 4 balles la carte 8Go y a pas de mal...
« Last Edit: 07 June, 2016, 20:59:22 by tam »

Offline Z-Master

  • Hero Member
  • *****
  • Posts: 1 081
  • Bonus Pute: 20
  • C'est ta mère Mother
alors 2 questions parceque moi aussi j'ai bien galéré (mais tu verras c'est surtout dû au trop plein d'infos vu que les mecs balancent tout en vrac sans même préciser leur pi, leur raspbian, leur écran.... bref zéro chance qu'une config marche chez toi) :

- tu as acheté quel écran ?
- tu comptes en faire quoi ?

pour la première question regarde si ton écran est dans la liste de notro et son FBTFT du bien. si c'est le cas ne te prends pas la tête avec les solutions qu'on trouve à droite à gauche et qui semblent toujours à moitié fonctionner (perso j'ai trouvé les miens ici https://github.com/swkim01/waveshare-dtoverlays.git)
tu charges le bon overlay, tu modifie ton /boot/config.txt et l'écran fonctionne.

pour la seconde question, je ne vais pas plus loin car je n'utilise l'écran que pour répliquer le framebuffer de la sortie HDMI (émulateurs) donc surtout ne rien toucher d'autre tu lances ton programme et ça marche.
si tu comptes en revanche t'en servir d'écran de contrôle il faut ensuite que tu crées un /usr/share/X11/xorg.conf.d/99-fbdev.conf qui pointe vers /dev/fb1 et quelques bricoles.
au travers de mes essais j'étais arrivé à avoir un écran qui fonctionnait (mais retropie ne se lançait plus) mais à partir de là tu es à bout touchant.

vu que je galérais avec des dizaines de config, j'ai fini par repartir d'une image (retropie) propre et j'ai noté chacune de mes actions pour pouvoir rollback :D , si ça peut t'aider :
tu noteras que je me prends bien le chou car le pi zero n'a qu'un USB et pas de wifi intégré. comme je n'ai pas de hub, c'est soit clavier, soit dongle wifi... d'où la conf initiale à l'aveugle  ::)

Quote
CONF INITIALE

. install de l'IMG retropie pour pi zero
. branchement du clavier : setup des touches
. quit emulationstation
. configure wifi (https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md)
. sudo raspi-config > advanced > enable SSH
. branchement du dongle wifi (reboot)
. check de la nouvelle IP > connection en SSH (pi/raspberry) avec putty
. sudo raspi-config >
    expand filesystem
    advanced >
       overscan off
       device tree enable
       spi enable/enable
. reboot

DRIVERS ECRAN

. pour l'écran 3.2" banggood (waveshare 3.2")
. git clone https://github.com/swkim01/waveshare-dtoverlays.git
. sudo cp waveshare-dtoverlays/waveshare32b-overlay.dtb /boot/overlays/
. sudo nano /boot/config.txt > add dtoverlay=waveshare32b en fin de fichier
. sudo shutdown now
. branchement de l'écran

FRAMEBUFFER DAEMON

. (opt) sudo apt-get install cmake
. sudo apt-get install libbsd-dev
. git clone https://github.com/AndrewFromMelbourne/raspi2fb.git
. cd raspi2fb
. mkdir build
. cd build
. cmake ..
. make
. sudo make install
. sudo cp ../raspi2fb.init.d /etc/init.d/raspi2fb
. sudo update-rc.d raspi2fb defaults
. sudo /etc/init.d/
. sudo nano raspi2fb
> modif ligne DAEMON_ARGS="--daemon --fps 60 --pidfile $PIDFILE"
. sudo service raspi2fb start

OPTIMS

. sudo nano /boot/config.txt
. modif taille HDMI > mode 2/87 -> 320x240 60fps

. modif ratio display retroarch

PS : il me reste un waveshare 3.5" 320x480 si tu as besoin.

EDIT : ce boulot permettra peut être d'utiliser le GPU sur sortie GPIO (je suis pas sûr je connais rien à linux) ça serait bueno !


Offline Z-Master

  • Hero Member
  • *****
  • Posts: 1 081
  • Bonus Pute: 20
  • C'est ta mère Mother
Pendant ce temps, quelqu'un a fait le même mod de la Gameboy Pi, avec une Game Boy Advance.

Le plus dingue, c'est que le bouzin fonctionne encore grâce aux piles comme la GBA de base. Ce qui est vachement plus élégant.