Raspberry Pi 4

For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.

The Recalbox Team.

Recalbox sur TV CRT en RGB


  • Staff
    Moderator
    Team

    @ironic said in Recalbox sur TV CRT en RGB:

    Save Configuration On Exit : ON
    Configuration Per-Core : ON

    Bonjour
    logiquement c'est l'equivalent de le faire dans recalbox.conf
    la gestion du mode video peut s'effectuait aussi dans recalbox.conf je pense que si il y a des paramètres supp pour la video dans n64.configile par exemple

    n64.videomode=
    n64.configfile=
    https://github.com/recalbox/recalbox-os/wiki/recalbox.conf-(FR)


  • CRT Fan

    @acris j'ai déjà bien regardé ce wiki, il n'y a aucune information sur le ratio custom, tout ce qu'on peut faire c'est l'activer mais pas en définir la valeur...

    Variables disponibles :
    videomode : défini le mode vidéo (utilisez tvservice pour obtenir les valeurs compatibles).
    shaders : défini le chemin vers le "shader" ou le "shader preset" (glsl ou glslp)
    ratio : défini le ratio utilisé pour les jeux (16/9, 4/3, 16/10, auto ou custom)
    smooth : lissage des jeux
    rewind : active / désactive le rembobinage en jeu (peut ralentir l'émulation)
    core : défini le core utilisé pour l'émulation (les cores libretro sont localisés dans /usr/lib/libretro)
    emulator : défini l'émulateur utilisé pour l'émulation (les émulateurs sont : retorarch, fba2x, mupen64)
    configfile : force le chargement de votre propre fichier de configuration. Recalbox n'automatisera pas la configuration de l'émulateur.


  • Staff
    Moderator
    Team

    tu as essayé d ajouter les informations videos toute simplement dans l option n64.configfile=/chemin/cfg

    Save Configuration On Exit : ON doit être remis sur off


  • CRT Fan

    @acris si je passe par là ça n'annule pas les autres parametres automatisés comme la detection des manettes ? De plus je ne comprends pas la différence entre ça et l'option Configuration Per Core. C'est la même chose mais en utilisant un deuxième fichier de config dans un autre endroit ?


  • Staff
    Moderator
    Team

    il faut que tu mettent la configuration manette dans ce fichier cfg ainsi que les paramètres vidéos. Je pense que ça devrait fonctionner jai pas testé
    ya un tuto pour configurer les manettes personnalisées sur le wiki. A tester.


  • CRT Fan

    J'alterne souvent entre un stick, une manette bluetooth, des manettes usb, souvent l'ordre et le nombre de joueurs en même temps est différent... ça me parait un peu rude de ne pas pouvoir rajouter des lignes sans perdre tout le reste. Je testerai demain.


  • Staff
    Moderator
    Team

    ah oui en plus si tu compliques les choses oublie.....


  • CRT Fan

    Je ne complique pas les choses, je te précise mon utilisation et les problèmes que j'ai rencontré en passant par la configuration par core. D'après mon interprétation de l'esprit de la distribution, la configuration de retroarch passerait par recalbox.conf, sauf que toutes les variables ne sont pas implémentées, et la sortie de secours c'est le fichier de config custom, mais qui fait sauter tout l'intérêt d'utiliser Recalbox, car son principal atout c'est la flexibilité des configurations, surtout les manettes. Je pense que dans mon cas il manque quelques variables importantes dans recalbox.conf, snes.width snes.height snes.position_y snes.position x. Ce qui permettrait d'intégrer ces valeurs dans la autogénération des fichiers sans perdre les valeurs des manettes.


  • Staff
    Team
    Creator
    Moderator

    Demandons à @subs si c'est possible :)



  • faut me résumer parce que là je ne comprends rien à ce qu'on attend de moi


  • CRT Fan

    Le but est de pouvoir jouer en RGB sur CRT. Je suis branché par HDMI>VGA>PERITEL en sortant du 240p 60hz. Je suis obligé d'éteindre l'overscan et j'ai besoin de mettre des aspect ratio et des positions custom par core pour pouvoir coller à la télé en CRT qui n'accepte pas qu'on sorte de la résolution native des consoles. En 60hz par exemple, elle demande 224 lignes horizontales à la ligne près sinon il y a du tearing. Sur chaque console la résolution est un peu différente, par exemple Atari 2600 et 7800 c'est 210, PC Engine c'est 272... etc... j'ai besoin que chaque émulateur produise sa propre résolution en gros. Quand on produit des fichiers retroarch custom on perd tous les reglages d'autoconfiguration de Recalbox, comme les manettes que dans mon usage j'alterne souvent (stick, bluetooth, fightpad, numérotation des joueurs...). Pour rester dans l'esprit de la configuration de retroarch via recalbox.conf, il faudrait pouvoir en plus du snes.ratio=custom rajouter des variables custom_ratio=1920 240 et position_x_y= 65 10, je pense que l'integer scale est déjà là. Ceci afin d'éviter de bidouiller tous les fichiers cfg un par un, vu le nombre d'émulateurs et le nombre de manettes ça risque d'être un enfer à chaque changement de configuration de jeu (multi, solo etc....). Il y a un deuxième problème c'est Kodi qui a besoin aussi d'une variable kodi.videomode sinon il choisit sa propre résolution arbitrairement... Merci !



  • @archimage c'est un peu confus tout çà, et je crains que tu ne t'emmêles dans tout ce qui est concerné. Ou alors moi qui ne comprend rien.

    Pour ma part je te conseillerais de forcer un view port unique pour chaque jeu et on verra pour ajuster. Pour les ratio gérés par recalbox (et pas retroarch, attention), on n'a que 16/9 16/10 et 4/3 (à mettre tel quel dans recalbox.onf Ca a été amélioré en 4.1). Pour ca, va dans retroarch et cale ton viewport comme il te plait. Le viewport au moins on pourra le fixer pour tout retroarch sans trop de difficultés


  • CRT Fan

    Je ne comprends pas ce qui est confus... Le viewport doit être custom et unique par console. Pour ne pas avoir de tearing j'ai besoin de sortir du 1920x224 pour la snes, du 1920x210 pour atari et 1920x275 pour pc engine, tous recentrés de 60 en y et 5 en x... c'est ma télé CRT via cette installation HDMI>VGA>SCART qui exige ça pour que l'image soit traitée correctement. Comme ça ne correspond pas aux preset par défaut dans recalbox, j(16:9, 4:3...) j'ai mis custom. Sauf qu'il retient un seul ratio custom pour toutes les consoles alors qu'elles sont toutes différentes.. . Si je mets 224 l'atari et la pc engine produisent du tearing.. J'ai cru comprendre qu'il y a deux manières pour forcer un viewport par console, soit mettre "save settings per core", soit charger une "configuration custom" depuis recalbox.conf. A partir de là apparait mon problème de manettes qui ne suivent plus les réglages d'Emulationstation. Je veux enregistrer ces réglages par console, sans perdre l'autoconf des manettes au démarrage des cores de retroarch. D'où ma proposition d'intégrer de nouvelles variables d'autoconf depuis recalbox.conf.



  • @archimage said in Recalbox sur TV CRT en RGB:

    Je veux enregistrer ces réglages par console, sans perdre l'autoconf des manettes au démarrage des cores de retroarch.

    Sans toucher à configgen, c'est impossible, comme te l'a dit @acris Tu veux du custom avec une moulinette automatique par-dessus. L'essence même du custom, ce que l'automatisation ne passe pas par là, et c'est binaire : l'un ou l'autre, pas de mix possible, les cas ambigüs deviennent alors ingérables.

    D'où ma proposition d'intégrer de nouvelles variables d'autoconf depuis recalbox.conf.

    Ce n'est pas ajouter des variables qu'il faut, c'est surtout écrire le code qui le prend en compte dans configgen. Et, en toute honnêteté, tu es bien le premier à pousser la config aussi loin, je ne promets rien sur la prise en compte de tes demandes. Et, sincèrement, ca virerait à l'usine à gaz, ca n'est pas vraiment l'esprit recalbox.

    Pour répondre définitivement à ta question : tu connais Python ? Si oui, tu auras résolu ton problème en 20 minutes


  • CRT Fan

    "Sans toucher à configgen, c'est impossible, comme te l'a dit @acris Tu veux du custom avec une moulinette automatique par-dessus. L'essence même du custom, ce que l'automatisation ne passe pas par là, et c'est binaire : l'un ou l'autre, pas de mix possible, les cas ambigüs deviennent alors ingérables."

    Quand on peut mettre snes.integerscale=on alors que c'est off par défaut, sur tous les autres c'est du custom sur de l'automatisé, ce n'est pas inconcevable de dire que je veux telle résolution pour tel core à partir du moment où on peut déclencher ces variables présentes dans Retroarch.

    Je conçois que ça paraisse compliqué et accessoire. Mais l'enjeu est important, il s'agit d'utiliser correctement l'emulation sur une télé CRT. J'essaie de faire avancer les choses du mieux que je peux. Recalbox doit rester simple je suis d'accord. Mais il gagnerait à pouvoir être utilisé sur un CRT en RGB, le rendu est absolument magnifique, largement supérieur en qualité et en fluidité à ce qu'on sort sur les écrans HD.. il faut le voir en vrai pour le croire... J'ai passé beaucoup de temps à trouver comment sortir depuis le raspberry un signal rgb sans downscaler. C'est déjà un miracle que ce soit possible par cette installation. Cela ouvre beaucoup de possibilités à l'émulation qui tend à se rapprocher du rendu réel des consoles sans shaders ou artifices. Notamment en Arcade. Ce serait dommage que ces barrières de 20 min viennent entraver le résultat. Non malheureusement je ne connais pas Python, j'aurais bien aimé aider plus, mais je ne sais pas programmer. Je vais continuer à essayer de bricoler pour voir ce que je peux trouver de satisfaisant.



  • Parce que certaines options sont gérées, oui, parce qu'on les a prises en compte dans l'automatisme. Ce n'est pas le cas des viewports

    La solution en python je peux te la faire. Elle nécessitera que tu crées un fichier .cfg par émulateur que tu veux reconfigurer, avec simplement les options qui t'intéressent. Après, au lieu de lancer retroarch tout court, je te modifierai ce qu'il faut pour que retroarch cumule le cfg de l'autoconfig + ton custom. quelque chose qu'on a déjà expérimenté pour la 4.1 avec les overlays, donc techniquement ca devrait se faire.

    Ca serait plus simple que tu passes sur IRC si tu veux qu'on fasse ca ensemble, il y a un lien dans la barre en haut

    Pour l'arcade ... yallah ! les resolutions des roms c'est le salon de l'agriculture ma parole !


  • CRT Fan

    ***Pour l'arcade ... yallah ! les resolutions des roms c'est le salon de l'agriculture ma parole !

    Le 240p intéresse pas mal de monde, et on paie des upscalers/downscalers 300 euros pour pouvoir générer cette résolution SD RGB avec des scanline sur HD, sauf que peu de gens savent que c'est possible avec le raspberry nativement directement sur un vieux CRT. Meme des cartes graphiques haut de gamme peuvent ne pas avoir l'option.

    Je te rejoins tout de suite sur irc



  • bon, résolu pour une recalbox 4.0.0-beta4 (marechera sur toute 4.0.0, meme la stable) en bossant de concert avec @archimage en faisant :

    • créer un fichier par systeme dans /recalbox/share/system/configs/retroarch (ex : snes.cfg) avec dedans uniquement les commandes propre au système qu'on (ex : aspect_ratio_index = "22")
    • modifier /usr/lib/python2.7/site-packages/configgen/generators/libretro/libretroGenerator.py pour qu'il ressemble à :
    import Command
    import libretroControllers
    import recalboxFiles
    import libretroConfig
    import shutil
    from generators.Generator import Generator
    import os.path
    
    
    class LibretroGenerator(Generator):
        # Main entry of the module
        # Configure retroarch and return a command
        def generate(self, system, rom, playersControllers):
            # Settings recalbox default config file if no user defined one
            if not system.config['configfile']:
                # Using recalbox config file
                system.config['configfile'] = recalboxFiles.retroarchCustom
                # Create retroarchcustom.cfg if does not exists
                if not os.path.isfile(recalboxFiles.retroarchCustom):
                    shutil.copyfile(recalboxFiles.retroarchCustomOrigin, recalboxFiles.retroarchCustom)
                #  Write controllers configuration files
                libretroControllers.writeControllersConfig(system, playersControllers)
                # Write configuration to retroarchcustom.cfg
                libretroConfig.writeLibretroConfig(system)
    
            # Retroarch core on the filesystem
            retroarchCore = recalboxFiles.retroarchCores + system.config['core'] + recalboxFiles.libretroExt
    
            # the command to run
            customCfg = "/recalbox/share/system/configs/retroarch/{}.cfg".format(system.name)
            if os.path.isfile(customCfg):
                commandArray = [recalboxFiles.retroarchBin, "-L", retroarchCore, "--config", system.config['configfile'], "--append", customCfg, rom]
            else:
                commandArray = [recalboxFiles.retroarchBin, "-L", retroarchCore, "--config", system.config['configfile'], rom]
            return Command.Command(videomode=system.config['videomode'], array=commandArray)
    

    et hop ...


  • CRT Fan

    Merci beaucoup ! La config marche super, c'est plus facile de customiser une bete automatisée de cette manière ! Les resolutions sont parfaites.



  • Bon, après les discussion qu'on a eues sur IRC pour les histoires de résolution, ES et tout ca ... Sachant que tu utilises une résolution particulière saisie dans /boot/config.txt et qu'elle se retrouve en DMT 87, et que tu sais en quelle résolution tu veux ES (CEA 21 HDMI pour l'exemple ici, qui apparait à 2 endroits) voilà les étapes :

    1. éditer recalbox.conf et mettre global.videomode=default (si ca ne marche pas, forcer bêtement le DMT 87 HDMI)
    2. éditer /etc/init.d/S02splash et ajouter tvservice -e "CEA 21 HDMI"entre le start) et la ligne avec fbv
    3. éditer /usr/lib/python2.7/site-packages/configgen/utils/videoMode.py et remplacer dans la dernière ligne tvservice -p par tvservice -e 'CEA 21 HDMI'

    La prochaine étape serait de rajouter ca plus joliment en passant par le recalbox.conf pour ce CEA 21 HDMI. Pas difficile, mais ca nécessite un peu plus de code et donc j'aime autant le tester avant

    Pour ceux qui lisent à titre de curiosité : @archimage veut pouvoir lancer ses émulateurs en 240p (qui est DMT 87 dans son cas, un mode video custom), mais ES est illisible en 240p. Donc on cherche à booter le pi en 240p (je ne détaillerai pas pourquoi, c'est complexe), changer la résolution en CEA 21 (du 576i je crois) pour ES uniquement, lancer un émulateur en 240p, mais quand même revenir en CEA 21 lorsqu'on quitte l'émulateur. Toutes ces options sont axées retroarch, on n'a pas testé quoique ce soit d'autre (encore ?)


Log in to reply
 

Want to support us ?

261
Online

61747
Users

18638
Topics

140048
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.