Recalbox sur TV CRT en RGB
-
@lolo le advmame.rc que recalbox utilise n'est pas dans le chemin par défaut de advancemame. Il faut ajouter
-rc ~/configs/advancemame/advmame.rc.origin
en paramètre pour "espérer" que l'utilitaire reporte bien la config dans le fichier. Je te conseille quand même de faire une copie de sauvegarde de ce advmame.rc.origin avant. -
Bon, je pense avoir trouvé la ruse pour advancemame. A faire en SSH :
TERM=xterm advcfg -rc ~/configs/advancemame/advmame.rc.origin
De là, sélectionner son écran, et la magie devrait opérer. Je n'ai pas de CRT, mais en réglant sur une TV NTSC, mon moniteur a bien relevé des résolutions biscornues avec des fréquences tout autant biscornues. Exemple qui plaira à @ironic : rtype était bien en 55Hz. Par contre ce n'etait pas la résolution d'origine, elle semblait avoir été calée pour tenir en 480 à qq pixels prêts.
Penser à faire une copie du
~/configs/advancemame/advmame.rc.origin
avant ce genre de manip -
Bon ben ça avance un peu... même si c'est pas parfait... ici en hdmi-vga-peritel
De mon coté la commande de @Substring ne fonctionne pas :
cd ~/configs/advancemame/ advcfg -rc config.rc
une fois la config réalisée, je la copie dans le fichier
advmame.rc.origin
display_mode auto display_adjust generate_yclock device_video_clock 4-100 / 15.73 / 60 device_video_format 15730 0.875 0.0416667 0.0833333 0 0.927481 0.00763359 0.00763359 0.0572519
ya encore pas mal d'options à tester....
-
@ian57 surtout que ton config.txt a mis le dawa
-
Salut tout le monde !
Après avoir pris un peu de recul et expérimenté pas mal de choses je reviens un peu sur mon tuto express pour la méthode VGA>HDMI>SCART qui me semble encore assez convaincante et la moins éprouvante pour le moniteur.
Je n'ai pas encore testé la méthode timings, qui m'a l'air plus juste, mais il faudrait pouvoir comparer les deux. J'ai lu par ailleurs que la différence se réduit à des marges mais je dois le vérifier pour y croire.
Je rajouterais les points suivants qui me semblent importants maintenant :
1 - Dans les paramètres de Retroarch, sauf dans des cas exceptionnels je pense qu'il vaut mieux utiliser une résolution "integer scale" tout en désactivant "integer scale" par la suite pour déterminer les résolutions de chaque console dans les cfg, mais avec un positionnement qui va bien. Je m'explique : Lorsqu'on "integer scale" Retroarch définit un "ratio correct" adapté à la résolution de la console et la résolution choisie (1920x240). Ces ratios ne sont pas toujours justes, j'ai eu le cas avec l'Atari 7800 où l'integer scale donne un résultat qui est faux, j'ai dû y aller en 240 ce qui n'est pas forcément logique... ou avec la Snes, qui me propose du 240, mais qui est plus correcte en 224. Je ne sais pas encore comment cette fonction propose les ratios, ça marche souvent mais ce n'est pas tout le temps fiable. Par exemple si la snes donne du 240 et que vous avez du tearing, ou de l'irrégularité dans les horizontales il faut forcer manuellement du 224 sur Retroarch. Une fois j'ai écrit plus haut qu'on pouvait adapter le viewport comme on pouvait et que ça ne posait aucun problème du moment qu'on respecte la résolution verticale (224). C'est faux, l'option Vsync=on cachait un problème de scrolling dû à la déformation il vaut mieux avoir un ratio correct et éliminer les sources de tearing, de flous, de déformations et de lag que de vouloir absolument rentrer toute l'image dans l'écran depuis Retroarch. C'est en jouant des SHMUP super rapides, et en testant du materiel d'arcade d'origine que je me suis rendu compte de ces légères différences. On peut se retrouver avec un écran qui dépasse légèrement, ou des marges noires si on suit la logique du ratio correct. Cependant de mon experience je préfère maintenant cela au lag et à la déformation des pixels qui sont induits par un faux ratio. Si vous voulez jouer au jeu au plus proche de l'arcade, évitez de déformer les réglages depuis Retroarch, et optez pour une modification sur le moniteur dans le service menu. C'est comme ça qu'on fait quand on utilise du vrai materiel arcade, on ne change pas de PCB tous les 4 matins en vrai, par contre quand on le fait on règle l'image à l'écran, ça n'a pas d'incidence sur le framerate ou la qualité.
2 - Des fois les problemes de scrolling sont cachés par l'option Vsync=on des fois on ne peut pas faire autrement faute d'identifier le problème, mais il faut savoir que cette option peut aussi induire du lag. Si le jeu tourne parfaitement sans, il vaut mieux résoudre les problèmes par les ratios ou la fréquence estimée, et la désactiver. Si vous n'arrivez pas à résoudre les problèmes de scrolling il faut la réactiver quitte à créer du lag.
3 - Le rôle de la fréquence estimée du moniteur affichée dans Retroarch joue un rôle crucial dans le framerate affiché. Au départ j'ai fixé une fréquence pour toutes les consoles. C'était une erreur, chaque console, voire chaque jeu doit avoir sa fréquence. Je dirais même que cette valeur fluctue constamment. Il faudra actualiser la valeur de la fréquence sur celle qui est estimée pour éviter le lag de framerate qui me gênait depuis le début. Des fois on se rapproche de 1% de différence, mais ça peut retomber à 10%, et si on n'actualise pas ça crée du lag.
4 - J'ai un problème lorsque je reviens à Emulationstation (passage de 240p à 480i), il y a de la perte de synchro intempestive, j'ai besoin de débrancher et rebrancher le cable hdmi, ou réinitialiser l'affichage pour que ça disparaisse, si quelqu'un sait comment régler ça, ce serait vraiment cool. J'ai le même problème sur plein de moniteurs différents.
Voilà, je suis assez satisfait du résultat, qui se rapproche beaucoup de mon hardware Neo Geo, CPS2, consoles, ou PC, je teste sur des PVM et BVM, ça me permet de voir précisément les différences.
C'est super proche, mais les différences que j'observe sont vraiment très légères. (Qualité du RGB qui joue un rôle, qualité des cables, la méthode des timings aussi doit jouer un rôle, mais j'ignore encore à quel point comparé à une compensation par l'overscan physique du moniteur.
Si vous avez la moindre question ou correction à apporter à ces précisions n'hésitez pas, peut être que je ne vous apprends rien, mais je tenais à faire un point sur mes observations.
-
Bon je comprends un peu mieux... mais encore pas mal de test à faire :
-
Plop !
Pour info, si ça peut éclairer du monde, ou permettre une révision des bases :
https://github.com/recalbox/recalbox-os/wiki/Connectez-votre-recalbox-ecran-crt-avec-HDMI-(FR)
n'hésitez pas à me corriger en éditant !Pour advance mame, impossible de lui faire accepter une résolution sur mon écran, aucune ne passe même en configurant avec l'utilitaire fourni.
ps : @archimage j'en suis arrivé au même constat pour régler mes viewports, je me base sur le integer scale, puis je le désactive, et règle l'overscan à partir de là.
Je me retrouve donc avec une super nes avec bandes noires, mais ratio original, bien plus cohérent que de chercher à remplir l'écran.Tests effectués sur PVM 2950.
-
@idarius Beau travail de synthèse !
J'ai deux questions :
-
La résolution de la Dreamcast en 3D est 640x480i sur CRT, et 480p sur écran VGA. Le 240p est utile uniquement sur les jeux 2D qui le supportent comme les jeux Capcom (ce mode 240p s'active en maintenant Start + L avant l'apparition du logo capcom, et pour d'autres en natif). Pour les 95% des autres jeux, ça se passe en 480, pourquoi passer 320x240 en priorité ?
-
Il me semble que la Megadrive ça se passe en 240 et non en 224, pour la nes j'ai un doute, je pense que ça dépend du core. A confirmer, peux-tu vérifier ça ?
-
-
Pour l'instant ma recalbox est dans un sac suite à une soirée crt chez des potes
Je vérifie ça dès que je la rebranche, mais de mémoire le 240 me sortait du tearing. Mais selon les jeux pal et ntsc, devrait yavoir 2 résos différentes. Bref avec ma configuration, aucun soucis sur tous les jeux testés, à voir si j'ai pas changé mes réglages depuis le wiki, c'est bien possible.
Pour la Dreamcast, c'est simple, mon écran n'accepte que le 240p et le 480i, j'ai préféré forcer le 240p, ce que fait parfaitement l'émulateur, plutôt que d'avoir du scintillement.
-
@idarius Pour la dreamcast sur les jeux en 2d j'entends bien ce sont des sprites, le 240p est préférable. En revanche pour la 3d, même si le passage en progressif fait disparaitre le scintillement, tu descends aussi en résolution de rendu vectoriel, même si les textures restent à la même taille, donc tu obtiens plus d'effets escaliers sur les vecteurs, et un scanline plus volumineux, ce qui n'a pas le même effet sur l'image quand ce n'est pas du pixel art rasterisé, c'est une logique complètement différente à mon avis. Quitte à choisir pour la 3d je préfère le scintillement de l'entrelacement aux escaliers sur les vecteurs en diagonales. C'est valable aussi pour la N64. Le progressif 480p serait l'idéal mais comme tu dis indisponible sur nos PVM à moins que tu trouves un crt 31khz.
-
Bien entendu, tu as raison ! Mais j'avoue n'avoir que peu testé la Dreamcast, hormis lancer Power Stone 2 pour voir comment ça tournait.
Il me semble même que depuis je l'ai laissé en 480i.
Bref faut que je repasse sur le wiki pour les résolutions -
N'empêche que la solution advancemame semble la plus accessible (mais limitée à l'arcade pour le moment). Donc, à titre perso, je préfère poursuivre dans cette voie.
@idarius on a réussi à avoir des résultats interessants sur une tv toyte naze, tu ne vas pas me faire croire que ton pvm ne va pas y arriver
@archimage merci pour tes investigations perpetuelles, ca permet de mieux comprendre comment ça marche
-
@Substring Ouais enfin quand je vois comment l'écran à fini (reste en paix !)
PS : bon c'est pour quand l'organisation d'une soirée CRT? -
@idarius sur irc ?
-
@Substring Dur de trinquer en virtuel
-
@idarius tu as des échéances en Mai si je me souviens bien on en reparle après ^^
-
Bonjour,
En parcourant cette discussion, j’ai une crainte sur l’avenir de ma TV. En effet, il y a quelques temps j’ai relié mon raspberry en composite à une TV cathodique pour des soirées retro entre nostalgiques. En vous lisant, j’ai cru comprendre que la télévision pouvait souffrir de ce traitement. Pensez-vous que la durée de vie de la TV va être raccourcie ? Merci -
@julien-carpezat par definition un crt finira par mourir un jour quelle que soit l'input, si tu veux qu'il dure fais le reviser sinon achetes en un autre en stockage. Si tu ne lui envoies pas des frequences trop eloignées de 15khz ou des voltages exotiques tu n'as rien a craindre de ton raspberry je pense...
-
Je viens à peine de démarrer le Python alors soyez indulgent.
Voici le script que j'utilise pour calculer mes Timings à la volée.
Il reste beaucoup de chose à faire mais il fonctionne.
Jusque maintenant, j'utilisais le Bash mais je reconnais que le Python est plus adapté.Je l'utilise avec une base de donnée de jeux dans laquelle il va piocher les paramètres dont il a besoin.
Cette version ne fait que calculer les Timings, le plus important.-> Pour un test rapide et sans Rpi.
- https://repl.it/languages/python
- Cliquez sur
continue as Anonymous
- Collez le code suivant à gauche.
- Cliquez sur
Pour ceux qui maitrise le Python, ces infos sont inutiles.
J'utilise les paramètres (H_Pos=6, H_Zoom=-25, V_Pos=5) sur un SONY Trinitron KV-M1400B (36cm).
(image de 320x240, on peut voir que l'écran affiche environ 232 lignes).
Pas de service menu, pas de mode 16/9, le strict minimum mais ... une qualité de fou...Ça serait cool de trouver un "Timings" moyen qui passe sur toutes les TV et qui soit centré au mieux.
Je ne peux pas le tester sur mes autres TV car j'ai déjà modifié les paramètres de base via le service menu.
(Et bien sur, j'ai rien noté, grrr...)Difficile de vous expliquer pourquoi j'utilise cette méthode de calcule de Timings, elle est basée sur mes innombrables recherches et tentatives.
Apparemment, les écrans PVM sont très récalcitrants aux grandes variations de Timings.-> Concernant Retroarch et le "pixel perfect", c'est vrai que c'est un peut la galère.
Exemple : Moon Patrol. Ce jeux est en 240x252@56.737589 HzEn activant le Integer Scale, il passe en 248p.
De plus, difficile de se fier aux informations trouvées sur le net, de versions en versions, les émulateurs corrigent certaines résolutions de jeux.Ex : Mortal Kombat.
Depuis la version 0.114u1, la résolution est passée de 400x254 à 399x253. Mème la fréquence à changée.
C'est pas grand chose mais ya pire...Avec une base de donnée de jeux, je peux corriger le nombres de scanlines de chaque jeux si je vois un probleme de tearing.
De plus, ça me permet de centrer l’écran au mieux.Pour Retroarch, j'utilise :
NEOGEO 224p à 59.186Hz (Core fba_libretro_0.2.97.37.so)
PCENGINE 240p à 59.94Hz (Core pce_libretro.so)
PLAYSTATION 240p à 60Hz et 288p à 50Hz (Core pcsx_libretro.so)
MEGADRIVE 240p à 59.92Hz et 288p à 49.70Hz (Core genesisplusgx_libretro.so)
MASTER SYSTEM 240p à 59.92Hz et 288p à 49.70Hz (Core genesisplusgx_libretro.so)
NES 240p à 60.10Hz et 240p à 50.01Hz (Core fceumm_libretro.so et nestopia_libretro.so)
SNES 224p à 60.10Hz et 239p à 50.01Hz (Core snes9x_next_libretro.so)@julien-carpezat
Et meme si tu la torture, elle encaissera longtemps...
La mien a laché mais j'en lui ai mis plein la tete, vraiment plain.......
J'y suis allé sans pitié car j'ai 4 TV et ca se trouve pour rien, presque partout.
Rien à craindre tant que tu joues pas à l'apprenti sorcié -
une explication intéressante pour ceux que ca intéresse : https://github.com/libretro/RetroArch/pull/1308