Hi, I’m using Batocera v30 on a Lenovo M93P with Intel HD4600 graphics, and a Tim Worthington VGA to SCART adapter to a Sony Trinitron TV. As Intel GPUs have a 25MHz minimum dot clock, I use 1280×480i as the boot resolution. I’ve followed the guide in the Wiki to set this up. When Batocera boots up I see the splash screen (squished horizontally due to the wide resolution), but then the screen goes blank. By entering via SSH:
# export DISPLAY=:0.0
# xrandr
I can see the output is at 1024×768 @85Hz, the highest available. The screen is blank because the adapter blocks non-15KHz signals, by design. If I enter:
# xrandr -display :0.0 –output VGA-1 –mode 1280×480i –scale-from 1060×780
EmulationStation then appears normally. Whilst this works, it’s obviously inconvenient, so I want to get ES showing properly from boot.
I tried adjusting ES resolution following the advice here: https://wiki.batocera.org/display_issues. If I enter:
# exec emulationstation –windowed
I get the following errors:
ERROR Could not find joystick to close (instance ID: 0)
ERROR Resource path not found: :/splash.xml
And can’t continue. If I terminate the session and log back in, then issue the remaining commands:
/etc/init.d/S31emulationstation stop
/etc/init.d/S31emulationstation start
I get a series of errors after trying to start ES, along the lines of:
X Error of failed request: BadName (named color or font does not exist)
Then the joystick and splash errors mentioned above. The screen remains blank. I have no idea how to proceed with this method.
I then tried a different approach, adding the following line to a custom.sh in the System folder, to be executed at boot:
# xrandr -display :0.0 –output VGA-1 –mode 1280×480i –scale-from 1060×780
This gets an image on screen, but it’s only in the top half of the screen and around 1.5x screen width, stretching off the screen to the right. If I enter the above xrandr command again via SSH, it now has no effect. If I enter a game then quit, first_script.sh issues a similar command, which again, does nothing here.
Xrandr reports that the resolution and scaling (‘current resolution’) is already at the desired values. Certainly, the VGA resolution (1280×480i) must be correct, or I wouldn’t be getting a picture on the TV. It therefore appears as if ES has configured its resolution incorrectly for the 480i resolution on boot. Switching to another resolution (e.g. by playing a game, or via xrandr) then back to 480i doesn’t help – the incorrect ES resolution persists.
I’m at a loss for how to continue here. I’m a total Linux noob and have muddled through this with lots of trial and error. Could anyone advise on either of the above two approaches? Or suggest a better one?
Incidently, I have found that the –scale-from command for ES seems to persist into games, giving uneven, non-integer scaling. This is particularly noticeable with text (e.g. Robocop’s title screen), and can easily be seen with RetroArch menu text when running 240p Switchres and no bilinear filtering (certain lines of text are fuzzy, others are reasonably sharp). To fix this, I modified first_script.sh so that at game Start the scaling is effectively set to 100% before loading a game:
xrandr -display :0.0 –output VGA-1 –mode “1280×480i” –scale-from 1280×480
After including this, game display (in e.g. 240p) is always crystal clear, as is RA menu text.