RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Seeing only one video mode on raspberry pi 4

    Scheduled Pinned Locked Moved Help and Support
    videomodevideo moderaspberry pi 4custom
    21 Posts 2 Posters 3.0k Views
    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.
    • R
      renepela
      last edited by renepela

      I have a tabletop arcade cabinet with a 1024x600 screen resolution.
      To make this resolution available in retropie I added the following lines to config.txt

      hdmi_group=2 
      hdmi_mode=87 
      hdmi_cvt 1024 600 60 6 0 0 0
      

      This works just fine. In retropie the 1024x600 is used.
      However I do have a problem with this when using the raspberry pi 4 (on the latest retropie 4.6).
      I used to use a raspberry Pi 3B+ with these settings.
      After starting an emulator and pressing a button I came in the runcommand menu and was able to change the resolution. Because sometimes I didn' t want to use the optimal 1024x600 resolution, but a different one.
      I saw a whole list of video modes (87 was the 1024x600 one) and could just pick one.

      However on the raspberry pi 4 this no longer seems possible. Whatever I do, I only see the 1024x600 resolution which I added in the config.txt. So I can only choose one video mode now.
      The weird thing is, when I start raspi-config I can see all video modes (not just the 1024x600 one) in the list.
      So how can I make the list of video modes visible again in the runcommand menu so I can choose different resolutions ?

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @renepela
        last edited by

        @renepela said in Seeing only one video mode on raspberry pi 4:

        The weird thing is, when I start raspi-config I can see all video modes (not just the 1024x600 one) in the list.

        Probably because it uses tvservice.

        So how can I make the list of video modes visible again in the runcommand menu so I can choose different resolutions ?

        We'll have to see if your display reports the video modes available correctly. Can you run the following 2 commands and post the output

        tvservice -m DMT
        /opt/retropie/supplementary/mesa-drm/modetest -r
        
        1 Reply Last reply Reply Quote 0
        • R
          renepela
          last edited by

          I will do that as soon as I'm at home, but it works just fine on the raspberry pi 3B+ with that display. So I don't think the display is causing the problem.

          mituM 1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator @renepela
            last edited by

            @renepela The PI4 has a different GPU and a set of different drivers, so it's quite different than the previous models.

            1 Reply Last reply Reply Quote 0
            • R
              renepela
              last edited by

              I tried the commands you asked for, but don't know how to post the screen output. Because I'm typing this on my pc.

              First the output without the hdmi_cvt option and hdmi_mode options in config.txt
              The tvservice command gives me 17 available video modes.
              The second modetest-r command gives a lot of output but it's scrolling up to fast to read it. Don't know how to scroll back.

              Now with the hdmi_cvt and hdmi_mode option in config.txt:
              The tvservice command still gives me 20 available video modes (option 87 was added and has the word (prefer) next to it). Also a mode 88 was added automatically with the same settings. Probably for the second hdmi port.
              The second command is still hard to capture.

              How can I capture the output of the second comand? Is there anything specific I should look at?

              Looks like tvservice detects the modes just fine. So why aren't these modes available in retropie on a raspberry pi 4 and why are they available on the raspberry pi 3B+?

              mituM 1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator @renepela
                last edited by

                @renepela Try redirecting the output to the ROMs folder and get the files via file shares:

                cd $HOME/RetroPie/roms
                tvservice -m DMT >  tvservice_output.txt
                /opt/retropie/supplementary/mesa-drm/modetest -r > modetest-output.txt
                

                Looks like tvservice detects the modes just fine. So why aren't these modes available in retropie on a raspberry pi 4 and why are they available on the raspberry pi 3B+?

                Because tvservice will not properly scale the screen on a Pi4, like it was the case for the previous models.

                1 Reply Last reply Reply Quote 0
                • R
                  renepela
                  last edited by

                  Here is the modetest-output

                  trying to open device 'vc4'...done
                  Encoders:
                  id	crtc	type	possible crtcs	possible clones	
                  Encoder map: 50 to 49
                  50	49	TMDS	0x00000001	0x00000000
                  
                  Connectors:
                  id	encoder	status		name		size (mm)	modes	encoders
                  51	50	connected	HDMI-A-1       	0x0		1	50
                    modes:
                  	name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
                  Mode: 1024x600 @ 60 Hz n/a (49.00 Mhz, phsync, pvsync, preferred, driver) connector 50 0
                    props:
                  	1 EDID:
                  		flags: immutable blob
                  		blobs:
                  
                  		value:
                  	2 DPMS:
                  		flags: enum
                  		enums: On=0 Standby=1 Suspend=2 Off=3
                  		value: 0
                  	5 link-status:
                  		flags: enum
                  		enums: Good=0 Bad=1
                  		value: 0
                  	6 non-desktop:
                  		flags: immutable range
                  		values: 0 1
                  		value: 0
                  	19 CRTC_ID:
                  		flags: object
                  		value: 49
                  	52 left margin:
                  		flags: range
                  		values: 0 100
                  		value: 0
                  	53 right margin:
                  		flags: range
                  		values: 0 100
                  		value: 0
                  	54 top margin:
                  		flags: range
                  		values: 0 100
                  		value: 0
                  	55 bottom margin:
                  		flags: range
                  		values: 0 100
                  		value: 0
                  	56 Broadcast RGB:
                  		flags: enum
                  		enums: Automatic=0 Full=1 Limited 16:235=2
                  		value: 0
                  
                  CRTCs:
                  id	fb	pos	size
                  49	59	(0,0)	(1024x600)
                  Mode: 1024x600 @ 60 Hz n/a (49.00 Mhz, phsync, pvsync, preferred, driver) crtc 49 0
                    props:
                  	20 ACTIVE:
                  		flags: range
                  		values: 0 1
                  		value: 1
                  	21 MODE_ID:
                  		flags: blob
                  		blobs:
                  
                  		value:
                  			68bf0000000428049004200500005802
                  			5b026202700200003c00000005000000
                  			4800000046495845445f4d4f44450000
                  			00000000000000000000000000000000
                  			00000000
                  	18 OUT_FENCE_PTR:
                  		flags: range
                  		values: 0 18446744073709551615
                  		value: 0
                  
                  Planes:
                  id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
                  28	49	59	0,0		0,0	0       	0x00000001
                    formats: XR24 AR24 RG16 RG24 BG24 YU16 YU12 YV12 NV12 NV21
                    props:
                  	7 type:
                  		flags: immutable enum
                  		enums: Overlay=0 Primary=1 Cursor=2
                  		value: 1
                  	16 FB_ID:
                  		flags: object
                  		value: 59
                  	17 IN_FENCE_FD:
                  		flags: signed range
                  		values: -1 2147483647
                  		value: -1
                  	19 CRTC_ID:
                  		flags: object
                  		value: 49
                  	12 CRTC_X:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	13 CRTC_Y:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	14 CRTC_W:
                  		flags: range
                  		values: 0 2147483647
                  		value: 1024
                  	15 CRTC_H:
                  		flags: range
                  		values: 0 2147483647
                  		value: 600
                  	8 SRC_X:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	9 SRC_Y:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	10 SRC_W:
                  		flags: range
                  		values: 0 4294967295
                  		value: 67108864
                  	11 SRC_H:
                  		flags: range
                  		values: 0 4294967295
                  		value: 39321600
                  	27 IN_FORMATS:
                  		flags: immutable blob
                  		blobs:
                  
                  		value:
                  			01000000000000000a00000018000000
                  			03000000400000005852323441523234
                  			52473136524732344247323459553136
                  			59553132595631324e5631324e563231
                  			ff030000000000000000000000000000
                  			00000000000000000700000000000000
                  			00000000000000000100000000000007
                  			00010000000000000000000000000000
                  			0400000000000007
                  		in_formats blob decoded:
                  			 XR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 AR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG16:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG24:  LINEAR
                  			 BG24:  LINEAR
                  			 YU16:  LINEAR
                  			 YU12:  LINEAR
                  			 YV12:  LINEAR
                  			 NV12:  LINEAR (UNKNOWN MODIFIER)
                  			 NV21:  LINEAR
                  	30 alpha:
                  		flags: range
                  		values: 0 65535
                  		value: 65535
                  	31 rotation:
                  		flags: bitmask
                  		values: rotate-0=0x1 rotate-180=0x4 reflect-x=0x10 reflect-y=0x20
                  		value: 1
                  	32 COLOR_ENCODING:
                  		flags: enum
                  		enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1 ITU-R BT.2020 YCbCr=2
                  		value: 0
                  	33 COLOR_RANGE:
                  		flags: enum
                  		enums: YCbCr limited range=0 YCbCr full range=1
                  		value: 0
                  	34 zpos:
                  		flags: range
                  		values: 0 127
                  		value: 0
                  35	0	0	0,0		0,0	0       	0x00000001
                    formats: XR24 AR24 RG16 RG24 BG24 YU16 YU12 YV12 NV12 NV21
                    props:
                  	7 type:
                  		flags: immutable enum
                  		enums: Overlay=0 Primary=1 Cursor=2
                  		value: 0
                  	16 FB_ID:
                  		flags: object
                  		value: 0
                  	17 IN_FENCE_FD:
                  		flags: signed range
                  		values: -1 2147483647
                  		value: -1
                  	19 CRTC_ID:
                  		flags: object
                  		value: 0
                  	12 CRTC_X:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	13 CRTC_Y:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	14 CRTC_W:
                  		flags: range
                  		values: 0 2147483647
                  		value: 0
                  	15 CRTC_H:
                  		flags: range
                  		values: 0 2147483647
                  		value: 0
                  	8 SRC_X:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	9 SRC_Y:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	10 SRC_W:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	11 SRC_H:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	27 IN_FORMATS:
                  		flags: immutable blob
                  		blobs:
                  
                  		value:
                  			01000000000000000a00000018000000
                  			03000000400000005852323441523234
                  			52473136524732344247323459553136
                  			59553132595631324e5631324e563231
                  			ff030000000000000000000000000000
                  			00000000000000000700000000000000
                  			00000000000000000100000000000007
                  			00010000000000000000000000000000
                  			0400000000000007
                  		in_formats blob decoded:
                  			 XR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 AR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG16:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG24:  LINEAR
                  			 BG24:  LINEAR
                  			 YU16:  LINEAR
                  			 YU12:  LINEAR
                  			 YV12:  LINEAR
                  			 NV12:  LINEAR (UNKNOWN MODIFIER)
                  			 NV21:  LINEAR
                  	37 alpha:
                  		flags: range
                  		values: 0 65535
                  		value: 65535
                  	38 rotation:
                  		flags: bitmask
                  		values: rotate-0=0x1 rotate-180=0x4 reflect-x=0x10 reflect-y=0x20
                  		value: 1
                  	39 COLOR_ENCODING:
                  		flags: enum
                  		enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1 ITU-R BT.2020 YCbCr=2
                  		value: 0
                  	40 COLOR_RANGE:
                  		flags: enum
                  		enums: YCbCr limited range=0 YCbCr full range=1
                  		value: 0
                  	41 zpos:
                  		flags: range
                  		values: 0 127
                  		value: 0
                  42	0	0	0,0		0,0	0       	0x00000001
                    formats: XR24 AR24 RG16 RG24 BG24 YU16 YU12 YV12 NV12 NV21
                    props:
                  	7 type:
                  		flags: immutable enum
                  		enums: Overlay=0 Primary=1 Cursor=2
                  		value: 2
                  	16 FB_ID:
                  		flags: object
                  		value: 0
                  	17 IN_FENCE_FD:
                  		flags: signed range
                  		values: -1 2147483647
                  		value: -1
                  	19 CRTC_ID:
                  		flags: object
                  		value: 0
                  	12 CRTC_X:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	13 CRTC_Y:
                  		flags: signed range
                  		values: -2147483648 2147483647
                  		value: 0
                  	14 CRTC_W:
                  		flags: range
                  		values: 0 2147483647
                  		value: 0
                  	15 CRTC_H:
                  		flags: range
                  		values: 0 2147483647
                  		value: 0
                  	8 SRC_X:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	9 SRC_Y:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	10 SRC_W:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	11 SRC_H:
                  		flags: range
                  		values: 0 4294967295
                  		value: 0
                  	27 IN_FORMATS:
                  		flags: immutable blob
                  		blobs:
                  
                  		value:
                  			01000000000000000a00000018000000
                  			03000000400000005852323441523234
                  			52473136524732344247323459553136
                  			59553132595631324e5631324e563231
                  			ff030000000000000000000000000000
                  			00000000000000000700000000000000
                  			00000000000000000100000000000007
                  			00010000000000000000000000000000
                  			0400000000000007
                  		in_formats blob decoded:
                  			 XR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 AR24:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG16:  LINEAR MOD_BROADCOM_VC4_T_TILED
                  			 RG24:  LINEAR
                  			 BG24:  LINEAR
                  			 YU16:  LINEAR
                  			 YU12:  LINEAR
                  			 YV12:  LINEAR
                  			 NV12:  LINEAR (UNKNOWN MODIFIER)
                  			 NV21:  LINEAR
                  	44 alpha:
                  		flags: range
                  		values: 0 65535
                  		value: 65535
                  	45 rotation:
                  		flags: bitmask
                  		values: rotate-0=0x1 rotate-180=0x4 reflect-x=0x10 reflect-y=0x20
                  		value: 1
                  	46 COLOR_ENCODING:
                  		flags: enum
                  		enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1 ITU-R BT.2020 YCbCr=2
                  		value: 0
                  	47 COLOR_RANGE:
                  		flags: enum
                  		enums: YCbCr limited range=0 YCbCr full range=1
                  		value: 0
                  	48 zpos:
                  		flags: range
                  		values: 0 127
                  		value: 0
                  
                  Frame buffers:
                  id	size	pitch
                  
                  mituM 1 Reply Last reply Reply Quote 0
                  • mituM
                    mitu Global Moderator @renepela
                    last edited by mitu

                    Your display reports only 1 video mode is available, so that's why you don't have any other resolution shown.

                    Mode: 1024x600 @ 60 Hz n/a (49.00 Mhz, phsync, pvsync, preferred, driver) connector 50 0
                    

                    I was more curious to see what tvservice reports. Can you try dumping the EDID from the display:

                    cd $HOME/RetroPie/roms
                     tvservice -d edit.dat
                    

                    then upload the edit.dat file from \\retropie\roms\ just to check what the display reports.

                    1 Reply Last reply Reply Quote 0
                    • R
                      renepela
                      last edited by

                      I have the file, but how do I upload it?

                      mituM 1 Reply Last reply Reply Quote 0
                      • mituM
                        mitu Global Moderator @renepela
                        last edited by

                        https://send.firefox.com/ !

                        1 Reply Last reply Reply Quote 0
                        • R
                          renepela
                          last edited by

                          [https://send.firefox.com/download/27d6c4d2f9f1196e/#T5TKfmqzeDVC0TSu2h5WZw](link url)

                          1 Reply Last reply Reply Quote 0
                          • mituM
                            mitu Global Moderator
                            last edited by mitu

                            So your display reports a bunch of resolutions - none of them being (natively) 1024x600. From the information extracted by the edidparser - is this the display ?

                            What happens if you remove the HDMI configuration lines and leave config.txt as default ?

                            1 Reply Last reply Reply Quote 0
                            • R
                              renepela
                              last edited by

                              @mitu said in Seeing only one video mode on raspberry pi 4:

                              So your display reports a bunch of resolutions - none of them being (natively) 1024x600. From the information extracted by the edidparser - is this the display ?
                              What happens if you remove the HDMI configuration lines and leave config.txt as de

                              I will try that when I'm at home again. But I think I already tried that yesterday. Not sure though. What I do know is when I don;t add the videomode 87 retropie/emulationstation uses the wrong resolutions, making it look terrible.

                              The display is part of a kit: The waveShare ARcade-101-1p. So I don;t know the exact brand of the screen.
                              [https://www.waveshare.com/arcade-101-1p.htm](link url)

                              1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator
                                last edited by mitu

                                According to the information reported by the display, it may be choosing 576p

                                HDMI0:EDID preferred mode remained as CEA (17) 720x576p @ 50 Hz with pixel clock 27 MHz
                                

                                EDIT: see if, without any HDMI configuration, the runcommand shows a list of resolutions, like before.

                                1 Reply Last reply Reply Quote 0
                                • R
                                  renepela
                                  last edited by

                                  Sorry for the late reply.

                                  I tried it again an without the lines in config.txt I do see a list of resolutions in the run command.
                                  Even 1024x600 is in that list. (option 49-0) 1024x600 @ 60 Hz n/a
                                  So it does show it, but is n/a so not working. When I try it anyway my screen turns red and says the resolution is not supported.

                                  So without the lines in config.txt the resolutions do show up in runcommand, but I can no longer use 1024x600 which is the native resolution of the monitor which looks best.

                                  With the lines in config.txt I only see 1024x600 which looks perfect, however I can't choose other resolutions anymore which I sometimes need (e.g. Amiga works best at a 50Hz resolution etc.)

                                  Is there any way to have the best of both options? So all resolutions + 1024x600 as option 87?

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @renepela
                                    last edited by mitu

                                    So it does show it, but is n/a so not working. When I try it anyway my screen turns red and says the resolution is not supported.

                                    That's probably because the resolution is improperly configured in the display's EDID and what it reports is not correct.

                                    HDMI:EDID failed to find a matching detail format for 1024x600p hfp:5 hs:13 hbp:270 vfp:2 vs:3 vbp:17 pixel clock:49 MHz
                                    HDMI:EDID calculated refresh rate is 60 Hz
                                    HDMI:EDID guessing the format to be 1024x600p @60 Hz
                                    HDMI:EDID found unknown detail timing format: 1024x600p hfp:5 hs:13 hbp:270 vfp:2 vs:3 vbp:17 pixel clock:49 MHz
                                    HDMI:EDID established timing I/II bytes are AF EF 00
                                    

                                    This is why the installation instructions make you configure the 'best' resolution explicitly with hdmi_cvt. Unfortunately, using the hdmi_cvt line makes all other supported resolutions 'disappear' for the video driver.

                                    I don't know enough about EDID specs and detailed video timings to be able to edit it and fix it. You could ask the vendor about Pi4 compatibility, though from what I've seen on the Waveshare wiki, they recommend disabling the new OpenGL driver - I think especially because this kind of issue. That's not an option if you want to use Retropie.

                                    Try to find a video mode - from the ones that the device supports - that's closest to the one you've used and set it in config.txt via hdmi_group/hdmi_mode and set it to be the main resolution.

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      renepela @mitu
                                      last edited by

                                      @mitu I already asked the vendor. Unfortunately no reply so far.
                                      I hope someone knows how to change the edid of the monitor to fix this issue.
                                      Disabling the OpenGL driver is something I already tried, but retropie won't start anymore and gives a render error message.

                                      Anyway, thanks for your help. I really appreciate it.

                                      1 Reply Last reply Reply Quote 0
                                      • mituM
                                        mitu Global Moderator
                                        last edited by mitu

                                        I did a few more tests and it might be possible to work around this in a different way, but I've hit a bug in runcommand that makes the resolution switching impossible.

                                        I'll see if we can get this sorted out in runcommand.

                                        1 Reply Last reply Reply Quote 0
                                        • mituM
                                          mitu Global Moderator
                                          last edited by mitu

                                          @renepela I have another idea we could test to see if can remedy the problem.

                                          First, you'll have to update the RetroPie-Setup script so you're on the latest version and make sure to update the runcommand package, from the core section.

                                          Seconds, there's another way to set a custom resolution for your display, without modifying the config.txt file. So perform these steps:

                                          • remove any configurations you made in the config.txt boot file for the video mode settigns - comment/remote the hdmi_group, hdmi_mode and hdmi_cvt parameters
                                          • open the cmdline.txt file - should be next config.txt - and add the following at the end of the line
                                            video=HDMI-A-1:1024x600@60
                                            
                                            Note that the file contains only one line, make sure you don't add extra lines to it, everything should be on a single line.

                                          Reboot and see if the system boots with the correct resolution, then check if you can select additional resolutions when starting a game.

                                          R 1 Reply Last reply Reply Quote 0
                                          • R
                                            renepela @mitu
                                            last edited by

                                            @mitu Thanks for the help. I'v tried it but unfortunately it didn;t work. It's booting in the wrong resolution. Is there a way to use fake edid data?

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

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.