Problème avec CRT avec RGB-Pi
-
en quelle résolution es tu ? peut tu coller ton fichier config.txt (entre des balises
et
pour afficher du code)
normalement, tu devrais avoir une résolution de 320 x 240 pixels. peut importe que tu passe par rgbpi, gpio ou hdmi.
Donc 256 pixels de large (on parle bien de l'horizontal) doit largement rentrer, et tu aura des barres noires a gauche et a droite (car en large tu devrait avoir 320.)Pour ne pas avoir de tearing, il faut que la résolution soit un multiple de la résolution réelle.
Pour exemple en horizontal, tu peux afficher du 320 sur 320 pixels, mais aussi sur 640 ou 170. Si tu sors des multiples, tu aura du tearing. -
Désolé d'avoir empiété sur un autre post, vu que mon problème était similaire, j'ai cru bien faire.
J'ai pensé que de passer par RGB-Pi était plus simple vu qu'il était basé sur le câble que j'ai acheté.
Voilà le config.txt (c'est celui qui est fourni avec RGB-Pi).gpu_mem_512=256 gpu_mem_1024=512 avoid_safe_mode=1 kernel=zImage dtoverlay=pi3-disable-bt-overlay dtparam=audio=on dtoverlay=pwm-2chan,pin=18,func=2,pin2=19,func2=2 dtoverlay=rgb-pi enable_dpi_lcd=1 display_default_lcd=1 dpi_output_format=6 dpi_group=2 dpi_mode=87 hdmi_timings=480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1 # PINN Auto-generated Settings: hdmi_force_hotplug=1``` J'ai essayer de modifier l'hdmi_timings par 320 1 14 45 56 240 1 10 5 5 0 0 0 60 0 9600000 1 mais la résolution n'est pas acceptée. Aussi, je n'ai trouver nul par une explication de chaque valeur des hdmi timings. Est-ce que l'utilisation des Hdmi_timings au lieu des cvt est obligatoire quand on passe par le GPIO ? Merci de prendre le temps de m'aider.
-
Je propose à taton, mais essaye de remplacer la ligne hdmi_timing par
hdmi_cvt=1920 240 60 1 1
sinon essaye 320 240 60 1 1
je ne comprends pas pourquoi tu force une résolution de 480 x 300, quel est le type de ton écran?
-
Aucune ne passe.
J'ai essayé en mettant 50 au lieu de 60, ça passe pas non plus.
Soit l'écran est brouillé, soit j'ai un écran noir et je peux pas redémarrer (à l'aveugle avec la manette), ce qui est assez bizarre.Je vais tenter avec Recalbox 4.1, peut-être que ça passera mieux.
J'ai juste un peur d'être perdu dans les réglages qui ont l'air un peu plus compliqué. -
Si tu passe par hdmi timing, il faut trouver le réglage exact de ta tv. De ce que j'ai lu, c'est loin d'être évident.
Si tu veux un peu de lecture, ce post rassemble pas mal d'info, bien qu'éparpillées : https://www.raspberrypi.org/forums/viewtopic.php?t=24679Je n'ai pas de RGB-pi donc je ne connais pas les réglages necessaires dans le config.txt.
Mais tu ne m'a pas répondu, pourquoi 480 x 300 en résolution ? -
Merci pour le lien !
Désolé, j'ai oublier la moitié de mon post en l'écrivant.
Le 480x300 est la résolution qui est d'office dans le config avec le programme RGB-Pi.
C'est étrangement la seule résolution que j'arrive à faire tourner.Voilà pour la TV.
Elle est indiqué en 50hz mais les hdmi timings étaient en 60hz et ça passait. -
Je ne trouve pas beaucoup d'information sur ton CRT, mais il n'a pas l'air d'accepter le 60 Hz. De plus il devrait tourner en 240P, ou du moins l'accepter, car c'etait la résolution de pas mal de consoles.
Donc tout ça me laisse perplexe, et ne connaissant pas la config du fork, je ne peux pas t'aider plus
peut être que @ironic pourrait plus t'aider, il passe aussi par rgb pi coté connectique, mais avec un recalbox modifié. -
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.