Recalbox sur TV CRT en RGB
-
Salut, j'ai fait quelques recherches qui m'ont permis d'enlever le tearing, mais sur le chemin un tas de question m'arrivent à l'esprit. Mon objectif étant d'obtenir un rendu le plus proche possible de la console en hardware. En fait il faut vraiment se concentrer sur une seule console sinon on est vite perdu.
Prenons le cas de la Snes. Elle sort d'origine du 256x240p50hz et du 256x224p60hz. Si la résolution en NTSC est plus basse comment se fait-il qu'elle passe en fullscreen en NTSC et qu'en PAL on a les bandes noires ? L'option pixel perfect poussait l'emulateur à me mettre en 768x240p, mais je crois que ma télé est en 240p60hz quand je rentre 224p en resolution verticale sur Retroarch le tearing disparait..
Première question : Je n'arrive pas bien à comprendre comment fonctionne le pixel perfect. Ce sont des valeurs prédéfinies stockees comme un preset ou c'est une fonction qui trouve automatiquement le bon ratio ? Il y aurait des chances que ces resolutions soient faussées par une liste qui ne prend pas en compte les différentes résolutions verticales en fonction de la fréquence ? Je suis étonné qu'elle ne propose pas le 224p.
Deuxième question : Il y a une autre truc que je ne comprends pas, je suis en 720x240p (CEA 8), et l'option pixel perfect me propose 768x240 pour la Snes, or je sais que je dois passer en 224 maintenant, est-ce que je dois modifier aussi la resolution horitonale en conséquence 768 ? Ce sont des choses qui m'échappent complètement. Car d'emblée je ne comprends pas comment la télé produit des bandes noires en PAL alors qu'elle sort du 240p qui est supérieur au 224p Si la Snes dispose de deux resolutions, 256x240p 256x224p quel ratio est le bon ?
Troisième question, quand on définit une resolution dans recalbox.conf pour l'emulateur est-ce que ça correspond à un espace téléviseur ou la résolution de sortie de la console ? Je pose la question parceque je me demande si je dois créer une résolution custom pour chaque emulateur en dehors du CEA 8 en plus de regler Retroarch.
Dernière question : J'ai le problème des bandes noires et du tronquage ou le tearing, que je n'arrive pas à résoudre... Une idée ?
-
pourquoi tu n'utilises tout simplement pas la sortie composite du pi ???
-
@subs Parceque ce n'est pas du RGB, c'est horrible comme rendu...
-
@ironic J'ai bien vérifié, la télé est bien en 60hz, quand on passe en 50hz le framerate tombe... Je suis étonné qu'on ne puisse pas sortir du 280p en 60hz (PAL-60) d'ailleurs... Là en faisant le tour je me suis rendu compte que je suis coincé un peu par le fait d'avoir à choisir entre le tearing et les bandes noires/debordement parceque la télé n'accepte d'afficher correctement que la resolution réelle de la console, et que je n'arrive pas à éliminer les bandes noires et les débordements dans Retroarch, car l'overscan est valable pour toute la session de Raspberry Pi et pas par parametres custom de Retroarch
-
Les résolutions sur un CRT c'est extrêmement compliqué ou plutôt complexe.
C'est vrai que c'est la jungle ces résolutions et comme on peut avoir plusieurs résolutions par consoles...
La SNES affiche bien du 256x240 mais seulement 256x224 sont utilisés pour afficher des pixels. (NTSC).
Il y a donc 2 lignes de pixels noirs en haut et en bas (des-fois invisible car les TV sont plus ou moins bien réglées).En PAL, on affiche une image de 240 pixels de haut (dont 224 sont utilisés) sur une résolution de 256 pixels de haut.
(suis pas sur mais c'est a peu près ça).
C'est pour ça qu'on a toujours des bandes noires sur les consoles avec des TV PAL contrairement a des TV NTSC.Pour le pixels perfect, faut pas oublier que les pixels ne sont pas carré !!!
L'option pixel perfect de RetroArch, utilise un multiple en résolution vertical pour que tous les pixels soient de taille identique.
Il te multiplie la résolution verticale/honrizontale et t'interdit autre chose.
Si ta résolution de RetroArch est de, par exemple, 1280x1024 et que tu veux afficher la SNES (256x240), il te propose :- 256x240
- 256x480
- 256*720
- 256*960
- 512x240
- 512x480
- 512*720
- 512*960
- 768x240
- 768x480
- 768*720
- 768*960
- 1024x240
- 1024x480
- 1024*720
- 1024*960
...
Je disait que les pixels ne sont pas carré, a ne pas oublier.
Exemple, si on prend une capture d'écran d'un jeu SNES, on aura en sortie une image de 256x240 avec des bandes noires en haut et en bas de 8 pixels.Si on affiche cette image sur nos moniteurs, on aura une image/ratio déformée.
Ici : 256x240 (L'image est en 512x480 pour mieux voir).Pour avoir un affichage correct de 4:3, il faut modifier la capture.
L'image doit être de 256x192 (ici 512x384).
C'est pour cela que vous verrez que vos scraps de jeux ne sont pas fidèles aux jeux.
quand on définit une resolution dans recalbox.conf pour l'emulateur est-ce que ça correspond à un espace téléviseur ou la résolution de sortie de la console ?
C'est la résolution envoyé au moniteur, rien a voir avec l’émulateur et ça résolution.Utilise pas le pixels perfect, défini ta propre "résolution" (ou plutôt format de sortie) d'affichage dans RetroArch.
Comme ça tu occuperas un maximum de l’écran sans déformation.
Le tearing est forcement du a la synchro, rien d'autre. -
@ironic Merci pour tous ces détails ! Si le tearing est dû à la synchro pourquoi disparait-il en 224p ? L'image est parfaite à l'exception des bandes noires. Comment résoudre ce problème de synchro ? Par le hardware ou software ?
-
je suis coincé un peu par le fait d'avoir à choisir entre le tearing et les bandes noires/debordement
Tu peux faire ce que tu veux sous RetroArche, agrandir ou diminuer en X et en Y, pixel par pixel, l'affichage de l'émulation.
Le but et de caler la surface d'affichage du jeu sur la surface visible de ta TV.RETROARCH MENU
- Aspect Ratio Index : CUSTOM
- Custom Ratio : (A toi de caler ton coin gauche/haut et droit/bas)
- Integer Scale : OFF
Affichage "normal"
Affichage modifié 1
Affichage modifié 2
-
@ironic c'est justement là le problème, lorsque je change la taille de la résolution verticale par rapport à celle d'origine de la console (224p toujours dans le cas de la snes en 60hz) le tearing apparait
-
J'ai reglé le problème côté Retroarch, c'était l'overscan que j'avais mis au début pour caler Emulationstation, le 224p60hz tourne en fullscreen à présent ! Bon il faut que je trouve une méthode pour qu'emulationstation rentre en 4:3 !
-
Sujet très intéressant car je souhaite faire de même. Garder la résolution native du système d'origine.
Question bête mais on fait comment pour modifier la résolution dans recalbox ?
Merci -
Si tu veux jouer avec les resolutions d'origine il te faut une télé CRT pour accepter du 240p60hz, c'est une resolution qui passe mal sur les télés modernes. Il faut bidouiller config.txt pour passer le signal adapté à ces télés. Ne pas mettre d'overscan, éviter l'acquisition d'EDID, hdmi_drive=2 pour sortir le son depuis le convertisseur hdmi-vga en jack, ignorer le hdmi_safe, et enfin te munir d'un cable convertisseur hdmi > vga puis cable vga > peritel. Ensuite il faut régler la résolution sur recalbox.conf en 240p en créant un CVT custom, j'ai mis 1920x240p60hz. Puis sur les émulateurs un par un sur retroarch en respectant la résolution verticale d'origine que tu trouves sur wikipedia (224, 240 etc...). Il te calera directement ça quasiment en fullscreen car c'est proche du 240p, la résolution horizontale tu l'adaptes pour te rapprocher du 4/3, si t'es pointilleux tu fais un rapport de proportion avec la résolution d'origine. Une fois que tu connais la résolution d'origine évite le pixel perfect qui aura tendance à ne pas te donner assez de flexibilité pour customiser. Voilà pour moi ça a marché du feu de dieu, le rendu est magnifique, j'ai passé la chose en 1920x240p, et ça sort un signal super propre. Mon seul souci maintenant c'est emulationstation, je n'arrive pas à régler ses proportions, je l'ai mis en 480i depuis config.txt mais il déborde allègrement car je pense qu'il était conçu pour du 16/9, et quand je touche à l'overscan je tombe dans le problème que j'avais... une image avec des marges...
-
Pour EmulationStation, ça doit être le thème qui pose probleme.
Il faudrait essayer un thème adapté pour du 640x480. -
J'ai créé un résolution custom avec sur config.txt pour les émulateurs avec la ligne hdmi_cvt=1920 240 1 0 0 1 1, ça crée un mode hdmi sur mesure sur la liste des DMT, c'est le 87, est-il possible d'en créer d'autres pour déterminer une résolution qui forcerait une déformation ? Sinon il n'y a pas un moyen d'incruster l'affichage dans des bandes noires sans interferer avec l'affichage des ému ? Bricoler le thème est long et fastidieux pour les mises à jour...
-
Le thème rexalbox est en svg, il te pose problème ? Tu peux faire un screen sous ES (utilise la commande
raspi2png
stp et profite du png généré) -
il déborde de l'écran sur les 4 côtés, le screen m'a sorti une image aux bonnes dimensions pourtant... il faudrait un overscan mais le problème c'est que ça affecte les emulateurs...
-
@reivax le theme recalbox a été conçu pour quelle résolution au minimum ?
-
@subs Je ne sais pas, mais là en 720x576 ça déborde en tout cas, idem pour 720x480, meme si le screenshot sort l'image aux bonnes dimensions sans la tronquer
-
si un screen avec
raspi2png
est bon mais pas ton affichage, alors je parie que le plastique qui encadre ton CRT te mange des pixels -
raspi2png capture tout la surface d'affichage (qui n'est pas forcement la surface visible).
L'overscan de ta tv (overscan d'origine, ça dépend du réglage des tv) doit être trop grand.
Je sais pas si tu peux définir un overscan en négatif, un underscan. -
Si c'est possible, je l'ai fait en premier, mais ça a altéré la resolution de Retroarch. En désactivant l'overscan j'ai réussi à obtenir une image non alterée sur Retroarch, c'est à dire que le 224p et le 240p des emulateurs s'affiche dans la surface 240p sans réajustements. Si je modifie une ligne horizontale en positif ou en négatif j'obtiens le fameux tearing que j'avais au début. Il faudrait pouvoir séparer les parametres d'Emulation Station et Retroarch, mais ça ne me semble pas possible tel que c'est conçu. La seule piste que je vois serait de faire une résolution custom supplémentaire pour Emulation Station genre 1280x480 ou rajouter des marges sur les images des thèmes actuels mais est-ce possible ?