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
    705834
    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.
    • Substring
      Substring @ian57 last edited by

      @ian57 please share anything that would be worth

      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 0
      • ian57
        ian57 Staff last edited by

        @substring Of course i will do... but I think there is a great difference between the VG666 mode and the HDMI-VGA mode in terms of hmdi_timings...

        "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

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

          @ian57 Great, finally try the cable, I think it will not be necessary to generate hdmi_timings, the games are not seen in a correct aspect ratio if we generate the hdmi_timing, for example snes is 256x224 but this is 8:7 aspect ratio and need to rescale to 4:3, with the timing and nothing more the image show with much overscan. So it is better to start from a resolution like 1920x240 and expand it horizontally to 4:3 but keeping the 224 pixels vertical.

          I've been testing for a long time and this is definitely the best option because in this way we do two jobs in one, we have a universal timing and at the same time we rescale the games to 4:3

          The tests that I am currently doing are 480x300 for fronend and recovery (this is a custom timing the most "HD" posible), default for n64 and 1920x240 for global.videomode.

          After each machine has its .cfg with the necessary rescaling and center parameters, the next step is to create .cfg for each game as a temporary solution to see all games in the original aspect.

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

            @aTg

            Hi.
            I tried RGB-Pi40Beta3, nice job 🙂

            First boot, all was so ... ugly 😉
            Of course, i use my home made GPIO2SCART so i put :
            dpi_output_format=5 in config.txt
            and change dtoverlay=rgb-pi by dtoverlay=vga666
            (but dtoverlay=rgb-pi works)

            Let see how i prefer use Rpi/CRT :

            For emulationstation :

            • I Prefer to use this timings : hdmi_timings 506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
              (But your timings ar ok)
            • Another skin, this one isn't very nice on CRT.

            For RetroArch :

            • I use vertically pixel perfect but not horizontally.
              So INTERGER SCALE must be DISEABLE !!
              and vertical pixels must be set in CUSTOM_VIEWPORT_HEIGHT.

            • I use horizontally high resolution as :
              hdmi_timings 1920 1 52 208 260 240 1 6 10 6 0 0 0 60 0 38400000 1
              (i use this timings for all emulators)

            • I Disable THREADED VIDEO (less input/video lag)

            • I Disable HW Bilinear Filtering (no nee with 1920 pixels)
              (But needed if i use this timings - hdmi_timings 996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1)

            • I use ASPECT RATIO INDEX : 22 (Custom)

            This is my custom Viewports for Genesis :
            aspect_ratio_index = "22"
            video_smooth = "false"
            video_scale_integer = "false"
            video_threaded = "false"
            custom_viewport_width = "1920"
            custom_viewport_height = "224"
            custom_viewport_x = "-14"
            custom_viewport_y = "12"

            I always use 240p, all consoles/computers (usually) use 240p and clip to 239, 224, 192...
            (Master System use 192p and have nice black bordes 🙂

            Have a high honrizontal resolution is perfect for all systems. No need to

            Do not forget there a lot a game in 50Hz, open a 60Hz screen isn't adapted for scrolling quality

            I see Mednafen pcengine isn't pixel perfect, 1x ratio is 288x232. Must use other emulator.

            Some of Timings i use/used :
            hdmi_timings=996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1
            hdmi_timings=506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
            hdmi_timings=336 1 10 30 34 252 1 15 3 42 0 0 0 50 0 6400000 1 AVEC BORDURES
            hdmi_timings 480 1 29 35 66 234 1 4 10 18 0 0 0 60 0 9600000 1
            hdmi_timings=990 1 22 94 116 240 1 6 10 6 0 0 0 60 0 19200000 1
            hdmi_timings=820 1 42 260 100 240 1 6 10 6 0 0 0 60 0 19200000 1

            Perfect
            hdmi_timings=320 1 12 32 44 240 1 6 10 6 0 0 0 60 0 6400000 1
            hdmi_timings=506 1 8 44 52 240 1 6 10 6 0 0 0 60 0 9600000 1
            hdmi_timings=996 1 24 96 120 240 1 3 10 6 0 0 0 60 0 19200000 1
            hdmi_timings=1920 1 52 208 260 240 1 6 10 6 0 0 0 60 0 38400000 1
            hdmi_timings=512 1 16 48 64 288 1 3 5 6 0 0 0 50 0 9600000 1

            I'm will search for more 50Hz resolution.

            • Yes, in this way, RetroArch GUI isn't pixel perfect.

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

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

              I think i found why Mednafen PcEngine uses 232 lines.

              The PcEngine can render several resolutions.
              256x224 to 512x242, most commonly 256x239.
              (here, timings in 1920 are welcome).

              Mednaden render first line at 4 (0 to 239), the 4 first lines are ignored.
              Mednaden render last line at 235 (0 to 239), the 4 last lines are ignored.
              On a 240p (i think, 239 lines are useable on 240) game, 4 to 235 = 232 lines.

              I think the first 4 lines and the last 4 lines are unused to show pixels because games never use them.

              All that remains to verify.

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

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

                @ironic Have a look at https://github.com/libretro/RetroArch/blob/master/retroarch.cfg#L226-L228

                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 0
                • ironic
                  ironic last edited by

                  i always set video_crop_overscan to false.
                  This is only a retroarch option.

                  Mednafen PcEngine standalone also "crop" to 232p.

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

                  lolo 1 Reply Last reply Reply Quote 0
                  • ian57
                    ian57 Staff last edited by ian57

                    @ironic thanks again for your work around hdmi_timings, it saves time to all of us. On my side, I finished a VGA-SCART cable with external power supply on the pin 8 on the SCART, to auto switch the TV on AV mode on start up. It is required for arcade cabinet integration. The wiring schema is below :

                    alt text

                    "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

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

                      @ian57 The 5V from the Pi isn't enough ?

                      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 0
                      • ian57
                        ian57 Staff last edited by ian57

                        @substring Nop, it does not work on my TV... As i read somewhere else, sometimes 5v will be ok, but most of the time not. I tested a 6.5V phone power supply successfully.

                        "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

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

                          The ultimate VGA-RGBScart cable for arcade cabinet integration 😉

                          alt text

                          "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

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

                            Nice cable.

                            I give you Timings i use.

                            ** 60Hz Timings ** Up to 224p
                            hdmi_timings 960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1
                            hdmi_timings 1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1

                            ** 50Hz Timings ** Up to 256p
                            hdmi_timings 1920 1 48 192 240 302 1 3 10 6 0 0 0 50 0 38400000 1
                            hdmi_timings 960 1 24 96 120 302 1 3 10 6 0 0 0 50 0 19200000 1

                            Do not forget you can change CRT parameters (as overscan) if you CRT isn't too old.
                            If you use Arcade monitor, use potentiometers.

                            I think 960 horizontal pixel is enough but, feel free to try.
                            (Hum, up to 1920 is better...).

                            If you want to play arcade games in 224p/60Hz, it is better to sort them.
                            I made a script (.bat) to extrach all 224p games from mame and fba romsets.
                            85% of best arcade games are 224p, never mind honrizontal resolution.

                            There's others game which can"t be run in 224p. like R-Type (384x256x55Hz)
                            Let's see what wee can do...later....

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

                            ian57 1 Reply Last reply Reply Quote 0
                            • aTg
                              aTg last edited by aTg

                              @ironic but the horizontal resolution needs to adjust to the screen, by default many machines resice the native resolutions to 4:3 format and if you expand horizontal many games to 1920x224 the aspect ratio of the game is not 4:3

                              In SNES for example I need to put 1778x224 in snes.cfg (using 1920 timing) to view the correct aspect of the game.

                              The case of CPS3, is inside the list of 224p games but is 384 in the horizontal resolution, this shows incredible ovescan for inportant games like sf2.

                              I think the solution is a database, based on a one standar resolution and with the resicing parameters for every rom, is a lot of work I know but is the only way.

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

                                Yes, of course, i also resize horizontally to have 4/3 screen.
                                If not, the horizontal overscan is big and the game isn't 4/3.
                                In snes, i have approximately the same resolution.

                                For a games of 256x224, 320x224 or 384x224, it's the same viewport.
                                If viewport is setup for a 224p 4/3 game, it can accept all 224p games.

                                I have an arcade database of over 8000 games with many games informations. i'm writing severls small batabases of games, by vertical resolution and refresh rate.

                                I think also, databases are the only way to handle games specs.
                                (i do it since a year with games lists for severals Fba.libretro versions)

                                We must do for MAME and FBA :
                                Databases of :

                                • 190p at 50Hz
                                • 190p at 60Hz
                                • 200p at 50Hz
                                • 200p at 55Hz
                                • 200p at 60Hz
                                  ...
                                  240p at 60Hz
                                  ...
                                  256p at 55Hz
                                  ...

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

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

                                  @ironic mame can generate .dat files with resolution info. I've been using that for some time, but take care to take an old mame version because the format changed on latter versions. As I've worked pretty much with advancemame which is based on Mame 0.106 i have the XML file.

                                  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 0
                                  • onaryc
                                    onaryc last edited by onaryc

                                    Hi,

                                    I follow this thread for some time trying to keep up with all the work/solutions when i will have time to do this.

                                    There is one thing which is not clear for me : who is setting the correct resolution? Is it done by script before launching the emu (libretro core,...) or are you setting the timings and then when the emu ask for a particular resolution, the system changes accordingly (like emu, i.e. mame with autoswitch res, on a PC with soft15khz for example)?

                                    If this is the first solution, how is the resolution modification during game execution is taken into account?

                                    Of course, imho, the second solution seems to be the best one, but perhaps there is some limitation from the emu themselves.

                                    Anyway, keep up the good work, it will be amazing to have a simple 15khz RGB output on the PI!

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

                                      @Substring
                                      Is it this type of database ?
                                      8000 arcade games

                                      @onaryc
                                      RGP-Pi (Recalbox 4.0)
                                      For this time, there is one resolution by libreto core.
                                      All resolutions can be found in config.txt file.
                                      It's ready to play. emulator resolution is launched before emulator and emulationstation resolution is restored before back to emulationstation .

                                      I think changing resolution on the fly in game is impossible.

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

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

                                        @ironic it's just from a mame .dat file 🙂 find a mame exe, check its command line switches and you will see 🙂

                                        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 0
                                        • ironic
                                          ironic last edited by

                                          @Substring
                                          Ok, the MAME XML 😉

                                          Let see how i handle multiple resolutions by emulator.
                                          Sorry, i don't use Configgen.

                                          Emulator :

                                          • MAME

                                          Few games :

                                          • R-Type (rtype.zip) : 384x256x55Hz
                                          • After Burner II (aburner2.zip) : 320x224x60Hz
                                          • Golden Axe (goldnaxe.zip) : 320x224x60Hz
                                          • Caveman Ninja (cninja.zip) : 320x240x60Hz

                                          I use 4 resolutions (more come soon) :
                                          1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1 For fullscreen 224p at 60Hz games.
                                          1888 1 48 184 232 278 1 3 10 6 0 0 0 55 0 38400000 1 For fullscreen 256p at 55Hz games.
                                          960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1 For all others games which are not in databases (just for try games).
                                          480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1 For EmulationStation.

                                          In datadases, i have referenced 2 games :

                                          [aburner2.zip] to use 224p x 60Hz
                                          [rtype.zip] to use 256p x 55Hz

                                          From emulationstation/MAME, i have :

                                          After Burner II
                                          Caveman Ninja
                                          Golden Axe
                                          R-Type

                                          If i choose After Burner, the game is launching in fullscreen 224p 60Hz with "retroarchcustom.cfg" AND 224-60.cfg (for adapted viewport of all 240p games)
                                          If i choose R-Type, the game is launching in fullscreen 256p 55Hz with "retroarchcustom.cfg" AND 256-55.cfg (for adapted viewport of all 256p games)
                                          If i choose Golden Axe, the game is launching in a 960x240x60Hs screen with "retroarchcustom.cfg" AND standart.cfg (small viewport to try games) because is not in database
                                          If i choose Caveman Ninja, the game is launching in a 960x240x60Hs screen with "retroarchcustom.cfg" AND standart.cfg (small viewport to try games) because is not in database

                                          I think is the perfect way to handle multiple resolutions per core.
                                          It works great

                                          The databases is a file named "resolution.cfg" in recalbox/share/roms/mame/ folder
                                          In this file there's :

                                          declare -A mame_games
                                          #320x224x60Hz
                                          mame_games[aburner2.zip]="224-60"
                                          mame_games[goldnaxe.zip]="224-60"
                                          mame_games[shinobi.zip]="224-60
                                          ...
                                          #384x256x55Hz
                                          mame_games[rtype.zip]="256-55"
                                          ...

                                          It's very easy to add game to resolution.

                                          CODE :

                                          . /recalbox/share/roms/mame/resolutions.cfg
                                          
                                          
                                          if [[ "$emulator" == "mame" ]]; then
                                          
                                          	if [[ -n ${mame_games[$filename]} ]]; then
                                          
                                           		if [[ ${mame_games[$filename]} == "224-60" ]]; then
                                           	          vcgencmd hdmi_timings 1920 1 48 192 240 248 1 3 10 6 0 0 0 60 0 38400000 1
                                                 		  tvservice -e "DMT 87"
                                                  	  fbset -depth 8 && fbset -depth 16
                                                 		  retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/${mame_games[$filename]}.cfg $1
                                          		elif [[ ${mame_games[$filename]} == "256-55" ]]; then
                                          		  vcgencmd hdmi_timings 1888 1 48 184 232 278 1 3 10 6 0 0 0 55 0 38400000 1
                                                 		  tvservice -e "DMT 87"
                                                  	  fbset -depth 8 && fbset -depth 16
                                                 		  retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/${mame_games[$filename]}.cfg $1
                                          		fi
                                          	else
                                                    vcgencmd hdmi_timings 960 1 24 96 120 248 1 3 10 6 0 0 0 60 0 19200000 1
                                                 	  tvservice -e "DMT 87"
                                                    fbset -depth 8 && fbset -depth 16
                                                    retroarch -L /usr/lib/libretro/mame078_libretro.so --config /recalbox/share/system/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/share/system/configs/retroarch/resolutions/standart.cfg $1
                                          	fi
                                          
                                          vcgencmd hdmi_timings 480 1 14 45 56 300 1 10 5 5 0 0 0 60 0 9600000 1
                                          tvservice -e "DMT 87"
                                          fbset -depth 8 && fbset -depth 16
                                          
                                          fi
                                          

                                          Of course, it can (will) be optimised...

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

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

                                            @ironic As 4.1 is coming closer and closer (have you seen the blog is back ?) this will be a little different as you can :

                                            • add per system .cfg (well, you can already do it, that's something we made quite early in this topic)
                                            • add per rom .cfg (not much different in fact)
                                            • have configgen use hdmi_cvt or hdmi_timings resolutions. What is truly missing is to handle a per game resolution. Haven't found yet an elegant way to do it, except having a massive file saying which resolution for which game (that needs to be written. I wanted to have, for each arcade rom : resolution + screen rotation angle)

                                            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 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            92
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com