Change “console” resolution
-
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!
-
@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 ? -
@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
-
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 theconfig.txt
file (i.e. have port 0 options last and port 1 first) and see if it makes a difference ? -
@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:~ $
-
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, sincemax_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 usesfbset --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) ? -
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.
-
@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. -
@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.
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.