Recalbox sur TV CRT en RGB
-
@subs said in Recalbox sur TV CRT en RGB:
quelle est la nécessité de faire tourner les émuls en 240p plutôt qu'en 480p ?
-
@ironic et @archimage ce que vous faites est extraordinaire.
En résumé, je comprends que les exigences sont les suivantes:
- rPi (tous les modèles?)
- GPIO > SCART
- installation du driver VGA666
- modification du config.txt
C'est vrai?
J'ai un modèle Raspberry Pi B1, j'offrir à «volontaire» pour acheter un prototype GPIO > SCART pour le test! ; D -
@subs
Comme la dit @archimage , les TV CRT (pas les moniteurs CRT) ne peuvent pas dépasser une certaine résolution verticale.
Pour le progressif 50Hz, c'est probablement de l'ordre de 288p.
Après on passe en entrelacé, la permet de doubler le nombre le ligne mais les ligne paires sont affichées les trames (ou frames) paire et les autres lignes, les frames impaire (en gros). Ce qui rend l'écran difficile a supporter pour des jeux non prévus.
La tv CRT a une résolution de soit 288p ou en doublant on obtient 2x228=576i. (PAL). Pour du NTSC c'est 240p et 480i.
Attention, je parle des lignes visibles, en faite en PAL il y a 625 ligne et en NTSC 525 lignes.@Scandy
Pour le moment, ce n'est pas évident de fair fonctionner le Rpi sur la TV.
Si tu veux essayer, tu peux achete :
Un GPIO2VGA (c'est toi qui a donné le lien, je crois. J'en ai même commandé 2 sur Pi-Supply).
Et un câble VGA2SCART comme cité plus haut.Faire un GPIO2SCART me parait problématique.
La connectique Péritel est énorme pour tenir sur une petite platine posée sur le Rpi.
Autant utiliser que qui existe déjà.Et pour la configuration/essais, lis le forum (je pense que t'as tout suivi) mais ça reste expérimental.
Pour les Rpi compatibles VGA666 :
Rpi1B+ : OK
Rpi2 : OK
Rpi3 : Je vais tester mais je pense que oui.Attention, NOOBS/PINN non compatible.
Il y a surement un petit truc a faire mais j'ai pas cherché.Sinon, je crie pas youpi mais j'arrive a changer de résolution a la volée.
Lire le post jusque la fin et installer directement le 2eme firmware, le 1ere fonction pas comme on veut.
https://github.com/raspberrypi/firmware/issues/637
Et sa fonctionne par SSH, trop de la balle vais pouvoir optimiser mes résolutions sans rebooter a chaque fois.Par contre, il faut utiliser :
vcgencmd hdmi_timings
car l'autre ne fonctionne pas en dessous de 640x480
vcgencmd hdmi_cvt -
Un tuto express hdmi avec une résolution 480i pour ES et Kodi et 240p60 pour les emulateurs qui auront chacun un fichier de recalibrage du viewport custom.
hdmi_cvt=1920 240 60 1 1 0 0
hdmi_disable_edid=0xa5000080
hdmi_pixel_encoding=2
avoid_safe_mode=1
disable_overscan=0
hdmi_drive=2
hdmi_group=1
hdmi_mode=6
hdmi_force=1-
Modifier les fichiers comme subs l'a indiqué plus haut dans le topic en attendant une intégration totale dans une version ultérieure
-
Créer des resolutions custom qui auont le même nom que la console dans le dossier \RECALBOX\share\system\configs\retroarch\snes.cfg
Par exemple dans snes.cfg :
aspect_ratio_index = "22"
custom_viewport_width = "1792"
custom_viewport_height = "224"
custom_viewport_x = "63"
custom_viewport_y = "16"Ainsi chaque émulateur chargera son propre fichier de configuration au démarrage de Retroarch.
-
Utiliser le thème CRT pour réduire l'impact de l'overscan naturel de la télé sans activer l'overscan du PI.
-
Editer le fichier recalbox.conf:
system.es.videomode=CEA 6 HDMI
global.videomode=DMT 87 HDMI- Pas d'overscan
- Pas de format automatique 4/3 ou 16/9
- Pas de lissage ni de shaders
Avec ça tu devrais te débrouiller pour faire fonctionner toi même assez simplement.
NB : tu peux remplacer le 1920 par 720 et tu devras regler les fichier snes.cfg nes.cfg etc en conséquence...
-
-
Au-moins, celui qui veut essayer le VGA2SCART ou le GPIO2SCART a tout ce qu'il faut.
Je pense que ta solution est pour le moment la plus abordable, même si il y a une partie scripts.
Configurer des résolution avec les Timings et une vrai torture.
Heureusement que je peux changer de résolution a la volée, sinon je serais déjà fou avec mes centaines d'essais.
Je cherche obstinément a avoir une résolution de 384x224x60 sans overscan, je m'arrache les cheveuxJe me pose beaucoup de questions malgré toutes mes lectures.
Toutes le TV CRT ont un overscan, on ne peut pas y couper.
Alors pourquoi sur la Snes, si j'ouvre une résolution de 256x224 sur la TV, aucune partie de l'image ne dépasse de l'écran ?Snes a gauche
Si la résolution est de 256x224, a quoi correspondent les bandes noires en haut et en bas, a des zones non balayées ?
Quand une zone n'est pas balayée, on voit la différence, elle est extrêmement sombre, comme la TV éteinte, ici c'est pas le cas !
Ça peut se voir si on passe en NTSC sur une TV PAL ou quand on active le mode 16/9 (si il y en a un) sur les CRT.Quand on parle de résolution de console, c'est la taille qu'occupe la surface d'affichage mais a mon avis la résolution ouverte est bien plus grande.
Je lis, je lis, je lis, j’essaie, j’essaie, j’essaie et c'est de pire en pire dans ma tête
-
Si je peux donner un coup de main, il y a dans ce sujet un topic sur les modelines, donc une capture d'écran qui détaille les fréquences de la megadrive.
http://www.neo-arcadia.com/forum/viewtopic.php?t=37718 -
Pouah, ce lien est tout bonnement hallucinant et ... déprimant.
Merci @SECAM
(A lire absolument pour ceux qui veulent en savoir un peu plus sur les difficultés de l'émulation)J'ai appris beaucoup de chose, ça a confirmé beaucoup de mes suppositions et ça a le malheur de me faire comprendre que la recherche de la perfection est (je sais, inaccessible mais déjà s'en approcher) tout bonnement ... infernale !!
A mon grand malheur, je ne peux pas faire ce que je veux avec les hdmi_timings (pour le moment, j’espère).
J'ai compris la conversion Modeline//Hdmi_Timings mais ça fonctionne presque jamais.
La faute au Pixel Clock, je pense mais je ne suis pas sur. Je ne peut pas fixer le Pixel Clock que je veux, même en multiple de 8 ou 16.
(Faut que je comprenne ou est la limite/contrainte pour avancer). Pb de TV, de driver Rpi... c'est un truc de fou.Bon, pour obtenir une émulation digne de ce nom, il faudrait un Hdmi_Timings par résolution (souvent plusieurs pas console et je ne parle pas des jeux qui changent de résolutions en cours de jeu, c'est impossible a reproduire, heureusement il y en a très très peu) et (truc de fou), un Hdmi_Timings par jeu d'arcade (ou presque).
Pour finir, il faudrait peu être adapter chaque Hdmi_Timings a chaque TV CRT.
L'enfer quoi.Pour infos, je donne la méthode de conversion Modelines//Hdmi-Timings.
Une Modeline se présentée sous cette forme :
Modeline "384x224" 7.500 384 400 435 486 224 240 243 259 -hsync -vsync
Un Hdmi_Timings, sous cette forme :
hdmi_timings 384 1 16 35 51 224 1 16 3 16 0 0 0 60 0 6400000 1
Les paramètres a récupérer de la Modeline sont :
E, F, G, H, J, K, L, MPour faire un Hdmi_Timings :
S = E
T = N : (C'est la synchro horizontale).
U = F - E
V = G - F
W = H - G
X = J
Y = O (C'est la synchro verticale).
Z = K - J
AA = L - K
AB = M - L
AC = Décalage A synchro verticale, a laisser a 0
AD = Décalage B synchro verticale, a laisser a 0
AE = Pixel Rep, a laisser a 0
AF = La fréquence en Hz
AG = Non-entrelacé = 0
AH = Pixel frenquency/Pixel Clock
AI = L'aspect Ratio (1 pour le 4/3)Je pense que je vais me concentrer sur la création des quelques résolutions principales a 60Hz avec très peu d'overscan.
Dans la mesure ou l'Aspect Ratio est aléatoire et corresponde a l'overscan de la TV, la fréquence utilisé ou les réglages des moniteurs d'arcade. Je pense que le meilleur Aspect Ratio c'est celui qu'on aime, qu'on trouve le mieux proportionné et qui occupe une quasis totalité de l'écran sans trop de perte du a l'overscan. -
Pour qu'on comprenne bien cette "recherche de la perfection", mon but est de me passer de l'option RetroArch "VSync ON".
Également le Hard GPU Sync et le Threated Video qui induisent un lag
Tout en ayant une parfaite fluidité du jeu.- Pourquoi ?
- L'Input Lag...
Petit test.
Lancez Sonic 1 sur Megadrive et essayez de sauter (sur place, des le début du jeu) avec et sans Synchro.
Input Lag est flagrant.Bien-sur, il faut faire ce test sur un CRT, un LCD n'est pas assez réactif et induit déjà son propre lag.
-
Bonsoir.
Je me posais quelques questions à ce sujet.
Est-il possible de brancher la recalbox en RGB sur un crt avec les câbles du tuto d'@archimage, sans avoir à bidouiller les viewpoint et compagnie ? En mettant une résolution qui serait la même pour toutes les consoles ?
Aussi, pourquoi la résolution est de 1920 x 240 (le 1920 sur un crt, j'ai l'impression de louper un truc ^^') ?
Enfin, est-ce sans risque pour la TV ? De tâtonner avec les résolutions et tout ça, ça ne risque pas de l'abîmer ? -
Pour passer Recalbox en 240p par Péritel, quelques modifs s'imposent.
Le post est assez claire (quoi qu'il faut quand même s'y connaitre un minimum).
Le plug and play Recalbox to Péritel, c'est pas pour tout de suite mais ... qui sait...C'est beaucoup plus facile avec un convertisseur HDMI vers VGA qu’avec un VGA666 (GPIO vers VGA).
(La, on peut faire beaucoup plus de conneries...)Le 1920 pour un CRT, c'est vrai, c'est un peu trop, mais d’après @archimage ça a l'air un poil plus beau.
Bon, du 720x240 ça doit être suffisant.Sans risque pour la TV de tâtonner les résolutions, oui si tu dépasses pas le 240p
Ma pauvre TV a mangé grave avec mon GPIO2SCART, j'en lui ai mis plein la tête, des désynchros de fou et ...
No problémo, elle fonctionne toujours parfaitement ... pour le moment. -
D'accord, merci de votre réponse !
-
J'ai toujours autant de mal a comprendre pourquoi il y a une limite au pixel Clock en passant par le VGA666.
Malgré mes intenses recherches et poses de questions sur les forums, je reste perplexe.Cependant, j'ai trouvé une résolution qui est très acceptable, stable et non déformée.
Faire joujou avec les timings sur un CRT c'est vraiment la galère. Je fais que ca depuis 15 jours...Dans la mesure ou l'overscan n'est pas réglable, pas le choix si on veut respecter les scanlines, ça déborde un peu verticalement en 240p.
Pas de probleme en 224p.
A chaque fois que je modifie un paramètres, soit je perds soit la synchro, soit la fréquence n'est plus 50Hz/60Hz.Voici les timings que j'utilise :
hdmi_timings=996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1
Ça fait une résolution de 996x240x60Hz.
On respecte parfaitement les scanlines pour les jeux 224p et 240p verticalement.
Par contre, horizontalement, il faut laisser Retroarch agrandir et lisser les lignes, ce qu'il fait très très bien.
On est pas pixel perfect horizontalement mais le résultat est parfait.Je peux enfin "consoliser" un Rpi avec sortie RGB, me reste a trouver quelle console je vais vampiriser.
Il va quand même falloir que je créé des listes de jeux avec leurs résolutions pour adapter le viewport a la résolution du jeu. Surtout en arcade, la ou il y a énormément de résolutions. Je ne parle même pas de toutes les fréquences...
-
En 4.1 il y a une évolution qui permet de gérer un ficheir de parametrage de retroarch par console et un par jeu. Tu vas enfin migrer en v4.x ?
@archimage tu pourrais tester le timing de ironic ?
-
Oh lala ! vivement la 4.1 alors
C'est vrai que la, j'aurais pu trop besoin de la 3.3.Pour tous mes essais sur CRT, j'utilise un Rpi 2 et RB 4.0.
RB 3.3 est seulement sur mon Bartop.Pour ceux qui voudraient tester sur un Rpi3, ils auront probablement un manque de rouge, il y a une ou deux ligne a ajouter dans le confix.txt pour désactiver l'UART ou l'I²C, je sais pu précisément, en tout cas j'ai bien galéré, je retrouverais l'info.
Ça donne ça, avec mon Smartphone antédiluvienne
En vrai, les couleurs sont plus vives et l'image plus contrasté, comme les captures d'@archimage en un peu plus claire.
C'est pas évident de passer entres les balayages, j'ai fais ce que j'ai pu.
De plus j'ai réduit la taille de l'image qui était trop grosse, on perd en précision.Bon, je vais en blesser plus d'un, pour moi c'est plus beau que l'arcade.
(Enfin que sur 90% des moniteurs fatigués qui équipaient les bornes).@subs
Je sais pas si ça sert à quelque chose de tester les hdmi_timings à la place des hdmi_cvt.
Je pense que le résultats sera le même. mais ca merite d'etre testé.
J'ai reçu 2 VGA666 a assembler, je testerais prochainement pour voir les différences avec un convertisseur hdmi+cable.L’intérêt d'un convertisseur HDMI vers VGA et d'un câble VGA vers Péritel est de pouvoir facilement créer des résolutions avec un hdmi_cvt custom. Chose impossible en passant par les GPIO. De plus, on a bien 16,777,216 couleurs. (24bits). On peut egalement utiliser le DAC du convertisseur HDMI.
L’intérêt de passer par les GPIO, déjà si on bricole, c'est moins cher, c'est plus fun et "peu être" un chouilla mois de lag vidéo.
Ça doit également consommer un peu moins de jus, il n'y a pas de convertisseur a alimenter par le HDMI.
Malheureusement, on est en 18bits, soit 262,144 couleurs. Bon pour les jeux c'est suffisant, moins pour KODI.
(On peut néanmoins sortir du 24bits du GPIO en faisant un VGA888).
-
@ironic Bon, j'ai mon convertisseur VGA et mon câble RGB espagnol
Je fais quoi maintenannnnnnnnt ?
Possibilité de synthétiser tout ce topic ironic ? merci d'avance, ou passe sur le chan IRC, j'y suis en permanence
Ou au pire coller vos config.txt déjà tout prêts ?
-
@MeteK Le truc c'est que rien n'est encore tout prêt ... la partie console a l'air de se stabiliser. Par contre l'arcade, c'est une autre pair de manches
-
Salut.
Quand tu dis, j'ai mon convertisseur, tu parles bien d'un convertisseur HDMI vers VGA ?
Si c'est la cas, c'est pas le matériel que j’utilise mais la méthode/résultat doit être identique.T'as quoi comme Rpi ? Version de Recalbox ? Ton Rpi est en réseau ?
En fait, t'as pas grand chose a faire pour déjà tester tout ça, il suffit juste de modifier le config.txt (voir Wiki).
Fais en une sauvegarde, voici le mien, j'ai retiré la partie VGA666 :
avoid_safe_mode=1
hdmi_drive=2
dtparam=audio=on
disable_overscan=0gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=256dpi_group=2
dpi_mode=87
hdmi_timings=506 1 8 48 56 240 1 3 10 6 0 0 0 60 0 9600000 1
Bon, dans cette configuration, on n'ouvre qu'une seule résolution pour tous les émulateurs, c'est pas top mais c'est que qu'il y a de plus facile/rapide a faire.
Après, tu éteins ton Rpi, tu branches ton câble VGA vers Péritel et ta TV.
Puis tu allumes le Rpi.Recalbox devrait démarrer mais le thème (même tous les autres thèmes) ne sont pas adapté.
J'en modifie un actuellement, il est pas fini mais reste exploitable en 240p.
Thème 240pTu verras surement que l'overscan est présent sous EmulationsStation,, je ne pense pas qu'on puisse le diminuer sauf en modifiant le thème.
Avant de lancer un jeu :
OPTIONS DES JEUX/AVANCÉES
Et dans tous tes émulateurs, choisi :
FORMAT JEUX <PERSONALISÉ>Maintenant, tu peux lancer un jeu, ouvrir RetroArch et changer le VIEWPORT.
Tu peux voir que malgré le fait qu'on ouvre une résolution de 506x240, on utilise un zone d'affichage que de 480x224.
Ça permet d'avoir le moins d'overscan possible pendant le jeu et d'avoir un pixel perfect verticalement.
Horizontalement, 480 pixels permet une bonne mise a l'échelle des autres résolution.
Attention, on ouvre une résolution en 60Hz, si tu utilises un jeux 50Hz, tu risques d'avoir des saccades.
On peut également voir que les polices de RetroArch, ne sont pas pixel perfect, c'est normal, une résolution de 240p mais un affichage de 224p. Pour la PSX par exemple, on mettra 480x240 et RetroArch sera en pixel perfect (bon c'est vrai, on s'en fou, c'est très lisible).Et, ne pas se fier a la piètre qualité des photos.
De cette façon, tu utilises les hdmi_timings dans confix.txt mais avec un adaptateur HDMI vert VGA, tu peux utiliser les hdmi_cvt.
EX : hdmi_cvt=720 240 60 1 0 0 1Et l'overscan doit être réglable de cette façon. Mais je ne sais pas exactement comment il fonctionne, est ce qu'il respecte vraiment la résolution choisi ou est ce qu'il redimensionne le Frame Buffer (perte de qualité).
-
Ok mais tu peux me copier le corps entier de ton config.txt stp ?
-
@ironic Je suis sur un Rpi2 avec la dernière version de recalbox.
Je suis en réseau.
Donc avec adapt HDMI to VGA et câble de chez retrocable.es
là mon config.txt est comme ça :
# uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 disable_overscan=1 # uncomment to force a specific HDMI mode (this will force VGA) hdmi_cvt=1920 240 60 1 1 0 0 hdmi_disable_edid=0xa5000080 hdmi_pixel_encoding=2 avoid_safe_mode=1 disable_overscan=0 hdmi_drive=2 hdmi_group=1 hdmi_mode=6 hdmi_force=1 # comment to get jack audio hdmi_drive=2 config_hdmi_boost=0 # force hdmi while the tv can take time before sending the signal on the hdmi output hdmi_force_hotplug=1 # uncomment for composite PAL #sdtv_mode=2 # uncomment for lirc-rpi #dtoverlay=lirc-rpi # if you plug your tv at the same time as your rpi and that the rpi switches from the hdmi or give a low resolution because tv had no enough time to initialize it boot_delay=3 # uncomment if you don't want the rainbow at startup disable_splash=1 # Overclock gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=512 avoid_safe_mode=1 kernel=zImage # NOOBS Auto-generated Settings: hdmi_force_hotplug=1 arm_freq=1050 core_freq=525 sdram_freq=450 force_turbo=0 over_voltage=4 over_voltage_sdram=2 gpu_freq=350`
Apparemment comme ça ça tourne en interlacé pas progressif...
Edit modo : ajout de la balise code
Edit N00b : Merci -
Mon config.txt ne t’intéresse pas, je suis sous VGA666.
Sinon, le voila :avoid_safe_mode=1 hdmi_drive=2 dtparam=audio=on disable_overscan=0 gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256 # Enable VGA666 dtoverlay=vga666 enable_dpi_lcd=1 display_default_lcd=1 dpi_group=2 dpi_mode=87 hdmi_timings=506 1 8 48 56 240 1 3 10 6 0 0 0 60 0 9600000 1 kernel=zImage arm_freq=1050 core_freq=525 sdram_freq=450 force_turbo=0 over_voltage=4 over_voltage_sdram=2 gpu_freq=350
Pour moi, ton
hdmi_cvt=1920 240 60 1 1 0 0
c'est du progressif, donc du non-entrelacé.
1920, ca doit etre illisible sous EmulationStation, non ?
Je parle pas du thème dont la police est éditable mais des menus EmulationStation.Donc ça fonctionne chez toi ?