Problème avec CRT avec RGB-Pi
-
Bonjour
surement un tas d info https://forum.recalbox.com/topic/3475/recalbox-sur-tv-crt-en-rgb -
Acris > Oui j'ai lu une bonne partie du topic, c'est d'ailleurs que celui-ci que j'ai découvert l'existence du RGB-Pi, mais je n'ai pas trouvé de solution au problème.
Idarius > Je vais tenter avec Recalbox à la place de RGB-Pi.
Merci !
-
@Lotageek le rgb-pi est un poil trop "figé" niveau config. On a très peu de recul pour le moment sur le CRT. Meme si le 1920x240 semble etre la résolution la plus jolie, elle ne passe pas sur toutes les tv, et peut-être encore moins sur gpio ... Enfin bref.
Si tu dis que le 480x300 est la seule qui passe alors pk ne pas rester dessus ? Quitte à etre bourrin, pk pas du 320x240 ?
-
@Substring J'ai un gros problème d'overscan. De chaque côté de l'écran. Si je met les viewport en custom 256x239, ils dépassent aussi énormément de l'écran. Donc je dois soit jouer avec un gros overscan, soit sans overscan mais avec des textes illisibles, car dès que je descends en dessous de 256x239 pour que ça rentre dans ma TV, ça devient illisible (ce qui est normal, je pense).
Sur ES aussi, j'ai un immense overscan.J'ai eu l'occasion de tester sur une autre TV (une LCD en 4/3), ES était parfaitement calé avec les même paramètres (mais un petit soucis d'underscan sur le haut sur la SNES.
-
@Lotageek les textes : dans ES ou ingame ?
-
@Substring In-game. J'ai pas chercher à régler l'overscan sur ES vu qu'il reste utilisable en l'état.
-
Avec le cable RGB-Pi, il faut utiliser les HDMI_Timings et pas les
Vous avez essayez mes Timings ?
Une résolution de 320x240 n'est pas forcement centré et sans overscan. Tout dépend de la taille des porchs.Voici les véritables Timings de la neogeo MVS (très légèrement arrondie parce que c'est difficile d'afficher 1 demi pixel).
320x224 - 59.18560257 Hz
hdmi_timings 320 1 7 28 29 224 1 16 8 16 0 0 0 59.185 0 6000000 1
On voit que le Pixel Clock est de 6000000 soit 6Mhz, impossible a afficher actuellement sous Rpi.Comme actuellement on a une limite coté Timings, on ne peut pas utiliser des resolutions telles ue 320x240 sans (ou presque) overscan. C'est pour cette raison que l'on utilise une très grande résolutions en X, soit 1920.
Pour la Neogeo, j'utilise ce Timings.
hdmi_timings 1920 1 152 247 280 224 1 13 8 19 0 0 0 59.186 0 40610000 1Et oui, la neogeo MVS n'affiche pas a 60Hz et l'AES est même différente de la MVS.
Et c'est la même chose pour bon nombre de consoles et de jeux d'arcade. J'essais de respecter au mieux l'emulation des jeux et donc de créer des timings aux bonnes fréquences.On peut être bien (c'est mon cas) avoir une résolution de 1920x240 avec un viewport de 1920x240 sous RetroArch et sans aucun overscan. Il faut pour cela de grands porch.
Je pense qu'absolument toutes les TV acceptent une résolution de 1920, mais la taille des porchs peut être limités et donc, occasionner de l'overscan.
Les TV/CRT ont 2 "modes" de fonctionnement. 50Hz et 60Hz.
Si une TV en 50Hz peut afficher 288 lignes visibles (sur toute la taille verticale de l’écran), il n'est pas possible de modifier le nombre, même a l'aide des porchs. Pour du 60Hz, ca doit approcher les 240 lihnes.Exemple, j'ai 2 TV identiques, une dont j'ai modifié l'affichage a l'aide du menu service et l'autre d'origine.
Sur l'une, je peux afficher en 50Hz, 288 lignes et sur l'autre 262 lignes
En 60Hz c'est 236 lignes et 222 lignes.La résolution de 300 ligne sous emulationstation de RGB-Pi est farfelue, suivant les TV, on ne peux pas afficher plus de 240 lignes en 60Hz (sauf en ajustant les paramètres de la tv). Ça va être corrigé dans la prochaine version de RGB-Pi. On proposera plusieurs résolutions pour emulationstation.
2 résolutions que j'utilise actuellement sous ES.
hdmi_timings=450 1 50 30 85 288 1 10 1 25 0 0 0 50 0 9600000 1
hdmi_timings=480 1 40 20 75 270 1 10 10 22 0 0 0 50 0 9600000 1Une TV en 60Hz afficher 262 lignes mais ce n'est pas 262 lignes visibles. (262.5 en fait, ca fait 525 lignes en entrelacé ).
Une TV en 50Hz afficher 312 lignes mais ce n'est pas 312 lignes visibles. (312.5 en fait, ca fait 625 lignes en entrelacé ).Pour de résolution de 1920x240x60Hz, on affiche 240 lignes, il reste donc 262 - 240 = 22 lignes réparties entre les front porch, back porch et vsync. (il peut y avoir un nombre non standard de lignes genre 264).
Si vous avez des problèmes d'overscan/centrage, faites moi une photo et donnez-moi le Timing, je vous aiderais a recentrer tout ça.
-
ah ah ah faut vraiment qu'on ecrive un tuto détaillé pour chaque méthode sur le wiki ;)... genre
https://github.com/recalbox/recalbox-os/wiki/Connectez-votre-recalbox-ecran-crt-avec-HDMI-(FR) (merci idarius) -
J'avoue que faire un tuto pour les hdmi timing n'est pas du même niveau beaucoup plus de détail et d'explications necessaires. Perso je calcule pas grand chose, j'ai essayé de passer par des hdmi timing pour mon crt et je n'ai abouti à rien
-
@idarius parce qu'il n'en existe pas, de méthode facile ... Ironic a bcp cherché, moi aussi, et à part pomper des trucs existants ou des modelines de X11, on galère. Je ne sais pas si @ironic a joué les apprentis sorciers sur des timings exotiques en sacrifiant une TV sur l'autel du pixel perfect ou s'il a fait hdmi_timings 2e langue, mais ... sujet très compliqué oui
-
J'ai effectivement sacrifié un TV dans mes expériences d'apprenti sorcier
Durant mes essais, elle sifflait, criait, hurlait, m'affichait un tas de forme de synchro...J'ai pas pompé de trucs existants dans la mesure ou il n'y avait presque rien et les modelines X11 sont pour la plus part du temps pour des moniteurs.
Tout en assimilant un tas d'informations d'un peu partout, j'ai appris/compris de plus en plus de choses et ma TV m'a dit merci. Elle est toujours en vie et je l'utilise tous les jours. J'ai même l'impression qu'elle est rodée et encaisse plus facilement les fréquences farfelues.
C'est une petite TV qui a un mode 16/9 en appuyant sur un bouton (comme beaucoup de tv pas trop vielle je pense).
Dans le service menu, je peux faire des reglage pour le 50Hz et le 60Hz mais aussi pour le 4/3 et le 16/9.
J'ai donc réglé tout ça pour pouvoir choisir 4 modes de fonctionnement (fullscreen sans overscan).- 50Hz (4/3) : 288 lignes
- 50Hz (16/9) : 256 lignes
- 60Hz (4/3) : 240 lignes
- 60Hz (16/9) : 224 lignes
Je vais peut être même pousser le vis à piloter la broche 8 de la péritel en fonction de la fréquence affichée.
(5v a 8v sur cette broche pour le 16/9).
Ça permettra de basculer automatiquement en 4/3/,16/9 en fonction de la fréquence utilisée.RGB-Pi étant destiné a afficher les jeux, non pas pixel perfect mais line perfect (pour le pixel perfect, on est actuellement limité par le pixel clock, je le rappel), on ne peut pas afficher les jeux verticaux dans de bonnes conditions. J'ai donc séparé les jeux verticaux des jeux honrizontaux et créé 4 themes ES.
(MAME yoko, MAME tate, FBA yoko, FBA tate). YOKO : Honrizontal, TATE : Vertical
Les jeux tate tournent automatiquement de 90° (bon, pas la TV, faut la tourner).Les jeux d'arcade lancent également, automatiquement, la bonne résolution/fréquence.
Par exemple, si je lance Montal Kombat, j'ouvre une résolution de 1920x254x53.2Hz
(hdmi_timings 1920 1 100 320 260 254 1 1 3 36 0 0 0 53.20 0 40670000 1)
L’émulation est parfaite. (Parfait, c'est la PCB originale mais on s'en approche).RGB-Pi va pas gérer une quantité astronomique de résolution, il y aura du 50Hz et du 60Hz.
C'est beaucoup de travail (et d'adaptation en fonction des TV/CRT) mais je pense que si l'on souhaite respecter le line/pixel perfect, c'est aussi très important de respecter le framerate. -
Sous ES, en éditant le config.txt,
hdmi_timings 480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1
en remplaçant 300 par 270, c'est la résolution qui m'a l'air la plus adapté (bien que j'ai encore de l'overscan à gauche et à droite, mais plus en haut et en bas, c'est une petite victoire !).
Tant que je reste dans le 480, la TV a l'air d'accepter plus ou moins bien.
Dès que je touche au 480, j'ai l'écran qui se brouille par endroit (je ne connais pas le terme pour ce phénomène), ou l'image se met à sauter.Aussi, les modifications de l'hdmi_timings SNES que je fais dans recalbox.conf n'ont aucun effet.
Je pense qu'un autre fichier avec une autre résolution à la priorité mais je ne sais pas lequel (je ne sais pas comment connaître le fichier responsable).Il y a vraiment que les émulateurs SNES et PSX (l'ES aussi bien sûr) que j'aimerais régler, le reste ne m'intéresse pas vraiment.
J'essayerais avec le thème Recalbox-multi.
Voici des photos de l'overscan sur ES avec le timing cité plus haut.
Merci beaucoup pour vos explications mais je suis assez noob dans ce domaine et je ne pensais pas que ça serait aussi compliqué (même si je comprends un peu plus à chaque fois).
Donc, désolé si je ne saisis pas tout, mais j'apprécie grandement votre aide. -
hdmi_timings 480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1
Ce HDMI_Timings est "incorrect". Néanmoins, les TV 50Hz/60Hz acceptent une large plage de fréquence. Il est a 55,36Hz/16.134kHzTu peux essayer ça :
hdmi_timings 480 1 24 45 70 270 1 10 10 8 0 0 0 50 0 9600000 1Si tu veux décaler l'écran a droite, augmente le 5eme paramètre (le back porch soit 70). Mets 75 ou 80.
hdmi_timings 480 1 24 45 75 270 1 10 10 8 0 0 0 50 0 9600000 1Tu auras un plus grand overscan a droite alors augment le 3eme paramètre (le front porch soit 24). Genre 28 ou 32. Pour réduire la surface d'affichage.
hdmi_timings 480 1 24 45 75 270 1 10 10 8 0 0 0 50 0 9600000 1
Tu peux aussi augmenter le vsync pour réduire la surface d'affichage, le 4eme paramètre.Je rentre pas trop dans les explications, je veux pas vous donner les outils pour détruire vos TV. Pas de parano, les TV encaissent les desynchro un moment, ca va pas exploser
Si t'as une desynchro, reboot rapidement le RPi en ayant préalablement remodifier le HDMI_Timings. Met de coté chaque Timings qui fonctionne, au cas ou.
-
@ironic +100000 merci de ces explications... tu serais partant pour écrire un howto à la manière de https://github.com/recalbox/recalbox-os/wiki/Connectez-votre-recalbox-ecran-crt-avec-HDMI-(FR)
ou du moins le corriger et l'augmenter avec tes compétences... moi j'utilise ce que tu a fournis, mais je ne maitrise pas toutes les subtilités des hdmi_timings ;)... tes explications sont en or
-
Je ferais bien un petit tuto mais je ne maitrise pas tout et surtout, des gars bossent sur l’éventualité de débloquer le pixel rate inférieur a 38.4Mhz.
Si c'est faisable, on utilisera les vrais timings des consoles et, je pense que ça conviendra au plus grand nombre.
Je donnerais quand même quelques explications prochainement. -
@ironic Il y a http://sommerp.net/doku.php?id=raspberry_pi_arcade qui permet un bon début quand même
-
Oui ca peut aider.
Pas mal de timings qui viennent de chez moi
Ya de quoi faire... -
Merci pour tout ces liens !
Je comprends un peu mieux le système de porch et compagnie.
Les modifications que je fais pour le timing de la SNES dans le fichier recalbox.conf ne semblent pas pris en compte.
C'est bien dans ce fichier qu'il faut effectuer les modifications ?Dois-je mettre quelque chose dans le fichier snes.cfg dans /recalbox/share/system/configs/retroarch ?
-
@ironic vi j'ai vu qu'il avait repris ted timings (mais il y a 2 mois ils n'y etaient pas), et ca m'a amené à l'issue github pour débloquer les pixel.clocks
-
@Lotageek faut recalbox 4.1 pour ça, Selena n l'endroit où tu edites