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.1k 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.
    • 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
                                  • R
                                    renepela
                                    last edited by

                                    I've been reading a littl emore and it seems it is possible to ignore the screens edid data. Instead I can use an edid.dat file with the values I want.

                                    I think I have to add hdmi_ignore_edid and hmi_edid_file to config.txt

                                    The only thing I don't know is how to create a an edid.dat file with the correct information.
                                    If someone knows (or even better, give me a better edid file) how to do this I think this problem is solveable.

                                    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.