Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Recalbox sur TV CRT en RGB

    Recalbox Général
    recalbox crt rgb
    51
    782
    706026
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • archimage
      archimage last edited by archimage

      ***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

      1 Reply Last reply Reply Quote 0
      • Substring
        Substring last edited by

        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 ...

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        1 Reply Last reply Reply Quote 2
        • archimage
          archimage last edited by

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

          1 Reply Last reply Reply Quote 0
          • Substring
            Substring last edited by Substring

            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 ?)

            Former dev - Please reply with @substring so that i am notified when you answer me
            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

            archimage 1 Reply Last reply Reply Quote 1
            • archimage
              archimage @Substring last edited by

              @subs Merci ça marche ! L'emulateur tourne bien en 240p, et Kodi aussi à défaut de pouvoir le lancer en 480i ou 576i, si quelqu'un au passage sait comment forcer Kodi à accepter le mode entrelacé ce serait cool pour pouvoir laisser le 240p uniquement pour l'emulation. Autrement l'autre variante serait de laisser ES et Retroarch en 240p, en fabricant un thème adapté car le mode entrelacé crée un flicker important qu'il est impossible de réduire sur ES.

              1 Reply Last reply Reply Quote 0
              • Substring
                Substring last edited by Substring

                Suite:

                1. éditer /usr/lib/python2.7/site-packages/configgen/utils/videoMode.py pour qu'il ressemble à :
                #!/usr/bin/env python
                import os
                import sys
                import recalboxFiles
                from settings.unixSettings import UnixSettings
                
                # Set a specific video mode
                def setVideoMode(videomode):
                    os.system(createVideoModeLine(videomode))
                
                def createVideoModeLine(videoMode):
                    return "tvservice -e '{}'".format(videoMode)
                
                # Set a specific video mode
                def isSupported(index, mode="CEA", drive="HDMI"):
                   # todo
                    return True
                
                # Switch to prefered mode
                def setPreffered():
                    recalSettings = UnixSettings(recalboxFiles.recalboxConf)
                    esVideoMode = recalSettings.load('system.es.videomode')
                    if esVideoMode is None:
                        os.system("tvservice -p")
                    else:
                        os.system("tvservice -e '{}'".format(esVideoMode))
                
                1. Editer /etc/init.d/S31emulationstation (plutot que le S02splash d'avant) pour qu'il ressemble à :
                #!/bin/sh
                #
                #
                
                log=/recalbox/share/system/logs/recalbox.log
                systemsetting="python /usr/lib/python2.7/site-packages/configgen/settings/recalboxSettings.pyc"
                
                case "$1" in
                  start)
                	enabled="`$systemsetting  -command load -key system.es.atstartup`"
                	videoMode="`$systemsetting  -command load -key system.es.videomode`"
                        if [ "$enabled" != "0" ];then
                		echo $videoMode | grep -qE "(CEA|DMT) [0-9]{1,2} (HDMI|DVI)"
                		[ $? = "0" ] && tvservice -e "$videoMode"
                		settings_lang="`$systemsetting -command load -key system.language`"
                        	recallog "starting emulationstation with lang = $settings_lang"
                                command="HOME=/recalbox/share/system LC_ALL=\"${settings_lang}.UTF-8\" SDL_VIDEO_GL_DRIVER=/usr/lib/libGLESv2.so SDL_VIDEO_EGL_DRIVER=/usr/lib/libGLESv2.so SDL_NOMOUSE=1 /usr/bin/emulationstation"
                        	recallog "Starting emulationstation with command : "
                        	recallog "$command"
                        	eval $command >> $log &
                	fi
                	;;
                  stop)
                	killall emulationstation
                	;;
                  restart|reload)
                        "$0" stop
                        "$0" start
                	;;
                  *)
                	echo "Usage: $0 {start|stop|restart}"
                	exit 1
                esac
                
                exit $?
                
                1. Ajouter system.es.videomode= dans recalbox.conf et remplir comme d'hab avec qqc genre CEA 21 HDMI

                Former dev - Please reply with @substring so that i am notified when you answer me
                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                archimage 1 Reply Last reply Reply Quote 1
                • archimage
                  archimage @Substring last edited by

                  @subs Nickel ! Merci c'est intégré et ça marche bien, il ne reste plus que le thème à refaire, je suis en train de travailler dessus, et Kodi à débloquer en 480i

                  1 Reply Last reply Reply Quote 0
                  • n3o_c59
                    n3o_c59 last edited by

                    Wow.... Le sujet m'intéresse à fond ! Mais je ne comprends rien... Lol ya moyen d'avoir un résumé pour avoir le rgb sur crt ? Parce que je ne suis pas du tout spécialiste mais l'écran n'est vraiment pas top sur crt et la sortie vidéo de raspberry

                    Merci !

                    archimage 1 Reply Last reply Reply Quote 0
                    • archimage
                      archimage @n3o_c59 last edited by

                      @cyril-wagon Oui, pour résumer tu as besoin d'un convertisseur hdmi>vga avec sortie jack, ainsi qu'un cable vga>péritel auquel tu pourras brancher la sortie audio (ou sur un autre ampli si tu préfères). Ensuite il faut créer un mode d'affichage custom pour sortir du 240p pour les jeux. Le 480i sera préférable pour le moment pour Emulationstation. Nous avons trouvé un moyen de lancer Kodi en 240p en attendant de réussir à le démarrer en 480i. Sache que cette opération est expérimentale, la télé ne doit pas recevoir des résolutions qu'elle ne comprend pas au risque de l'endommager sur le long terme. Par contre le rendu est vraiment magnifique, bien mieux que le composite et le hdmi. Sur mon vieux CRT sony ça pète en tout cas. C'est fluide, les couleurs te sautent aux yeux, et le scanline naturel de la télé fait son travail en 240p. Je ferai un tuto quand tous les tests seront finis. Je suis en train de bosser sur un thème custom CRT 4/3 avec Rockaddicted et sur l'intégration des résolutions avec Substring qui a réalisé les parties citées plus haut.

                      Dancorp 1 Reply Last reply Reply Quote 0
                      • Substring
                        Substring last edited by

                        des photos composite vs hdmi vs RGB seraient carrément éloquantes 🙂

                        Former dev - Please reply with @substring so that i am notified when you answer me
                        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                        archimage 1 Reply Last reply Reply Quote 0
                        • archimage
                          archimage @Substring last edited by

                          @subs je n'arrive pas à prendre des photos de mon CRT en évitant les balayages... enplus je n'ai pas le cable composite je l'ai donné... sur youtube on voit pas mal de video montrant la différence entre composite et rgb sur les jeux

                          1 Reply Last reply Reply Quote 0
                          • ironic
                            ironic last edited by ironic

                            Si tu regardes du coté des "convertisseurs" Rpi vers JAMMA, tu peux voir que la résolution retenue (non entrelacée) est de 720x240.
                            Avoir du 1920x240 est pas forcement utile, sauf si tu n'arrives pas a avoir un résultat satisfaisant en 720x240.

                            Je rappelle que le JAMMA est le standard de connecteur arcade entre les PCB (cartes de jeux d'arcade, CPS, MVS...) et le moniteur/manettes des bornes d’arcades. (l'ampli audio étant lui, sur les cartes).

                            (Une TV CRT et un moniteur d'arcade étant quasis la même chose) (-> 15Khz).

                            Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                            archimage 2 Replies Last reply Reply Quote 0
                            • archimage
                              archimage @ironic last edited by archimage

                              @ironic Oui c'est ce que j'ai lu aussi, ce n'est pas forcément utile, je vais faire des tests comparatifs. En fait je me suis mis par défaut sur 1920 car j'ai constaté que la définition était plus nette. Le 720 était plus pixellisé. Dans les deux cas ce n'est pas un format conventionnel, ça nécessite de réajuster sur les outils de calibrage (retroarch et kodi)

                              1 Reply Last reply Reply Quote 0
                              • archimage
                                archimage last edited by

                                La question que je me pose, c'est est-ce qu'on produit vraiment du 15khz en sortant du Pi directement, je me dis que si la télé accepte c'est que c'est bon, mais rien de sûr. Pour le moment je n'ai pas eu de problème.

                                1 Reply Last reply Reply Quote 0
                                • archimage
                                  archimage @ironic last edited by

                                  @ironic Je viens de faire le test et je peux confirmer que l'image est plus nette en 1920 qu'en 720 sur SF3. Les traits qui dessinent les personnages sont plus fins et plus nets.

                                  1 Reply Last reply Reply Quote 0
                                  • n3o_c59
                                    n3o_c59 last edited by n3o_c59

                                    @archimage Merci beaucoup les gars ce que je trouvais "décevant" venant du raspberry et l'image sur des crt va être résolu, recalbox et sa communauté c'est un truc de malade lol
                                    Par contre il y a des marques préconisées pour le convertisseur et le câble ? Pour pas que j'achète n'importe quoi et me retrouver avec du bas de gamme ? (si t'avais des références ce serait le top ^^')

                                    Pour ma part je n'utilise pas kodi alors je testerai avec ce que tu me conseilles !

                                    Merci énormément je savais que sur un CRT ce serait top (en + j'ai aussi un trinitron pour ma borne alors ça va le faire xD)

                                    1 Reply Last reply Reply Quote 0
                                    • ironic
                                      ironic last edited by ironic

                                      Tu peux donner la référence/photo exacte de ton câble VGA->RGB, stp.

                                      Si ton image est correct, c'est qu'elle (ta TV CRT) reçoit bien du 15khz
                                      A mon avis, la sortie du convertisseur HDMI->VGA est en 31khz.
                                      Je me demande qui/quoi transforme ce signal pour l'envoyer a ta TV... le câble VGA->SCART ?
                                      (De toute façon, ya pu que ça).

                                      Pour transformer le HDMI en VGA, j'utilise ce convertisseur.
                                      text alternatif
                                      6.70€ fdp inclus depuis l'Angleterre)
                                      J'ai ce convertisseur sur mon LCD 17p et je n'ai aucun probleme, même en envoyant des résolutions farfelues que le LCD a du mal a encaisser.
                                      J'en ai donné un a un ami qui l'utilise régulièrement sans aucun soucis également.
                                      Malheureusement, j'en ai un 3eme dont la sortie son ne fonctionne pas, pas de bol mais ca arrive avec ce genre de matos.

                                      Pour le 31Khz->15Khz et surtout si on veut mettre un Rpi dans une borne d'arcade via le connecteur JAMMA, le J-PAC est pas mal du tout.
                                      Je lis qu'il peut diviser le signal 31Khz vers du 15Khz (Hummm, attention, je lis que non. il faut du 15Khz pour le J-PAC).
                                      text alternatif

                                      Ici, quelques liens sur la conversion VGA vers RGB, ca peut aider :
                                      http://www.nexusuk.org/projects/vga2scart/
                                      http://thearcademan.net/connecting-a-raspberry-pi-to-an-old-15khz-arcade-monitor/
                                      http://members.optusnet.com.au/eviltim/scart.htm

                                      Il y a pas mal de convertisseur puissant comme le gbs-8100 mais il sort du 480i, ça pique aux yeux.
                                      text alternatif

                                      J'ai bien envie d'en bricoler un vite fais, j'ai tout ce qu'il faut, sauf le temps...
                                      Suis assez chaud a l'idée de faire (Pfff encore un truc à mettre sur ta liste, me dit ma femme...) un Rpi->JAMMA.
                                      Bon, j'ai pu ma borne JAMMA, faudrait déjà que je fasse un JAMMA->SCART.
                                      (Pour info, la Péritel a d'autres noms : Euro-SCART, Euroconector, Euro AV.

                                      Rpi2/Rpi3 - LCD/CRT- NES30 Pro-iBUFFALO

                                      archimage 1 Reply Last reply Reply Quote 0
                                      • archimage
                                        archimage @ironic last edited by

                                        @ironic Voici le cable que j'utilise http://retrocables.es/tienda/index.php?id_product=55&controller=product&id_lang=4

                                        Je suis en train de me demander si la fréquence 15khz ne dépend pas de la résolution verticale. Est-ce que 240p = 15khz ? Cela voudrait dire qu'il n'y a pas besoin de convertir le signal et que le pi sait le faire. J'ai quasiment le même adaptateur HDMI. Si le signal n'a pas besoin de conversion cela voudrait dire que ça devrait marcher de brancher le pi à ta borne.

                                        1 Reply Last reply Reply Quote 1
                                        • digitaLumberjack
                                          digitaLumberjack Staff last edited by

                                          Je suis bien curieux aussi, parceque meme sur la description du produit que tu as donné @archimage, il est noté "Il est impératif que la sortie PC coup 15,6kHz , car il peut être utilisé comme WinModelines services publics, Soft15khz, etc ou bien configurer l'émulateur ou de l' application si elle est autorisée." (traduction google).

                                          Ton adaptateur VGA sortirait-il du15khz ? Invraisemblable.

                                          1 Reply Last reply Reply Quote 0
                                          • digitaLumberjack
                                            digitaLumberjack Staff last edited by

                                            Moi ce qui m’intéresse la c'est aussi les options pour le hdmi sur rpi. Y'en a pas mal de non documenté comme hdmi_timing

                                            # uncomment to force a console size. By default it will be display's size minus
                                            # overscan.
                                            framebuffer_width=640
                                            framebuffer_height=480
                                            
                                            # ---------------------------------------------
                                            # HDMI timing definitions
                                            #https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
                                            # ---------------------------------------------
                                            # hdmi_timings= <h_active_pixels>
                                            #        LCD module horizontal resolution
                                            #
                                            #               <h_sync_polarity>
                                            #         0: active low
                                            #        1: active high
                                            #
                                            #               <h_front_porch> 
                                            #      <h_sync_pulse>
                                            #      <h_back_porch>
                                            #      <v_active_lines>
                                            #        LCD module vertical resolution
                                            #
                                            #      <v_sync_polarity>
                                            #         0: active low
                                            #        1: active high
                                            #
                                            #      <v_front_porch>
                                            #      <v_sync_pulse>
                                            #      <v_back_porch>
                                            #
                                            #      <v_sync_offset_a>
                                            #      <v_sync_offset_b>
                                            #      <pixel_rep>
                                            #
                                            #      <frame_rate>
                                            #        screen refrech rate (50/60Hz supported only!)#
                                            #
                                            #      <interlaced>
                                            #
                                            #      <pixel_freq>
                                            #        calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
                                            #
                                            #      <aspect_ratio>
                                            #        HDMI_ASPECT_4_3 = 1
                                            #        HDMI_ASPECT_14_9 = 2
                                            #        HDMI_ASPECT_16_9 = 3
                                            #        HDMI_ASPECT_5_4 = 4
                                            #        HDMI_ASPECT_16_10 = 5
                                            #        HDMI_ASPECT_15_9 = 6
                                            #        HDMI_ASPECT_21_9 = 7
                                            #        HDMI_ASPECT_64_27 = 8
                                            # ---------------------------------------------
                                            #hdmi_timing for LQ084V1DG43 configuration notes
                                            #h_active_pixels = 640
                                            #h_sync_polarity = 1
                                            #h_front_porch = 2
                                            #h_sync_pulse = 5 
                                            #h_back_porch = 88
                                            #v_active_lines = 480
                                            #v_sync_polarity = 0
                                            #v_front_porch = 13
                                            #v_sync_pulse = 1
                                            #v_back_porch = 34
                                            #v_sync_offset_a = 0
                                            #v_sync_offset_b = 0
                                            #pixel_rep = 0
                                            #frame_rate = 60
                                            #interlaces = 0
                                            #pixel_freq = 640 * 480 * 60 = 18432000
                                            #aspect_ratio = 1
                                            # ---------------------------------------------
                                            hdmi_timings=640 1 2 5 88 480 0 13 1 34 0 0 0 60 0 18432000 1
                                            

                                            Si on pouvait se debrouiller pour modifier le signal directement en sortie du rpi, bingo.

                                            archimage 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            85
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com