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

    Change “console” resolution

    Scheduled Pinned Locked Moved Help and Support
    screen
    9 Posts 2 Posters 1.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.
    • C
      corey0808
      last edited by corey0808

      I have a Raspberry Pi 4 setup with an official retropie image on the latest stable version. I have a 1920x1080 LCD connected to HDMI 0 and a Waveshare 320x1480 connected to HDMI 1.

      I’ve noticed that the console resolution, any RetroPie setup screen, and game covers displayed before games start are set to the width (320) of the smaller display even though it’s being displayed on my 1920x1080 display. Effectively these screens are just a small vertical screen on the left side of the larger display.

      EmulationStation and any ROMs play fine at the full resolution of 1920x1080 of my display on HDMI 0.

      Is there any way to fix this? I have the proper resolutions set in boot config.txt but they don’t seem to impact the “console” resolution.

      Thanks!

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

        @corey0808 said in Change “console” resolution:

        Is there any way to fix this? I have the proper resolutions set in boot config.txt but they don’t seem to impact the “console” resolution.

        Can you post your config.txt file contents ?

        C 1 Reply Last reply Reply Quote 0
        • C
          corey0808 @mitu
          last edited by

          @mitu here ya go!

          dtoverlay=gpio-shutdown
          
          disable_overscan=1
          
          dtparam=audio=on
          
          hdmi_group:0=1
          hdmi_drive:0=2
          hdmi_mode:0=63
          
          hdmi_group:1=2
          hdmi_mode:1=87
          hdmi_timings:1=320 0 80 16 32 1480 0 16 4 12 0 0 0 60 0 42000000 3
          
          [pi4]
          dtoverlay=vc4-fkms-v3d
          max_framebuffers=2
          
          [all]
          gpio=5-6=op,dh
          
          
          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by mitu

            The configuration seems fine, each HDMI port with its own settings, can't figure out why this doesn't behave as such. Perhaps there's a console-mode-only limitation because of the mirroring that happens by default ?

            Seems a bit similar to this issue, where the poster couldn't set-up 2 different resolutions for the 2 HDMI connectors, though the main issue seems to have beein caused by using custom modes for both connectors which ended up overwriting the 'video mode'.

            Can you run the diagnostic commands from the issue above and post the output ?

            # tvservice
            tvservice -s -v 2
            tvservice -s -v 7
            
            # fbset
            fbset -fb /dev/fb0 -s
            fbset -fb /dev/fb1 -s
            

            Out of curiosity, can you switch the order of the hdmi_.. options in the config.txt file (i.e. have port 0 options last and port 1 first) and see if it makes a difference ?

            C 1 Reply Last reply Reply Quote 0
            • C
              corey0808 @mitu
              last edited by

              @mitu here’s the output of the commands. I’ll make those config changes later when I have a moment.

              pi@retropie:~ $ tvservice -s -v 2
              state 0xa [HDMI CUSTOM RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive
              pi@retropie:~ $ tvservice -s -v 7
              state 0xa [HDMI DMT (87) RGB full 16:9], 320x1480 @ 60.00Hz, progressive
              pi@retropie:~ $ fbset -fb /dev/fb0 -s
              
              mode "320x1080"
                  geometry 320 1080 1920 1480 16
                  timings 0 0 0 0 0 0 0
                  accel true
                  rgba 5/11,6/5,5/0,0/0
              endmode
              
              pi@retropie:~ $ fbset -fb /dev/fb0 -s
              
              mode "320x1080"
                  geometry 320 1080 1920 1480 16
                  timings 0 0 0 0 0 0 0
                  accel true
                  rgba 5/11,6/5,5/0,0/0
              endmode
              
              pi@retropie:~ $ fbset -fb /dev/fb1 -s
              open /dev/fb1: No such file or directory
              pi@retropie:~ $ 
              
              1 Reply Last reply Reply Quote 0
              • mituM
                mitu Global Moderator
                last edited by mitu

                Looking at the output from the commands, it looks like the console viewport size for the 1st framebuffer (device /dev/fb0) is set to 320x1080. If this corresponds to the 1st HDMI port, that might explain why the text based menus are shown with the wrong resolution.
                I'm not sure why the 2nd framebuffer device (/dev/fb1) is missing, since max_framebuffers=2 should allow both framebuffer devices to exist.

                To try and fix your issue, try using fbset to change the console viewport size for /dev/fb0 to 1080p - see https://manpages.ubuntu.com/manpages/focal/en/man1/fbset.1.html and the -g / --geometry parameter.

                I'm wondering if runcommand might have something to do with this situation, since it uses fbset --all to restore the resolution at the end of a gaming session. If you exit EmulationStation immediately after a fresh system start, is the resolution ok on the 1st screen (i.e. HDMI 0) ?

                C 1 Reply Last reply Reply Quote 0
                • C
                  corey0808 @mitu
                  last edited by

                  @mitu

                  So switching the order of the HDMI options did nothing. Also I saw the same behavior after exiting ES after a fresh start.

                  I was able to set the framebuffer and that did the trick:

                  fbset -fb /dev/fb0 1920 1080 1920 1080 16
                  

                  Should I just add this to the "all start" command? It seems like there should be a better way to configure this.

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

                    @corey0808 said in Change “console” resolution:

                    Should I just add this to the "all start" command?

                    Do you mean autostart.sh ?

                    It seems like there should be a better way to configure this.

                    There are options for 'framebuffer_height/framebuffer_width' for config.txt, you can try using those options.

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      corey0808 @mitu
                      last edited by

                      @mitu ya I meant autostart.sh.

                      I tried those frame buffer options in the config.txt and they work initially but get changed as part of the boot up process.

                      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.