Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
display_issues [2020/09/19 00:29]
lbrpdx
display_issues [2021/01/08 01:39] (current)
lbrpdx
Line 6: Line 6:
 Having so many pixels to render on the screen is impactful on the system performance. When you have a 4K screen or an ultra-wide screen, Batocera will limit the resolution by default to HD 1920x1080. It's more than enough to render emulators, even the most recent one. However, when you have an ultra-wide monitor, display is stretched.  Having so many pixels to render on the screen is impactful on the system performance. When you have a 4K screen or an ultra-wide screen, Batocera will limit the resolution by default to HD 1920x1080. It's more than enough to render emulators, even the most recent one. However, when you have an ultra-wide monitor, display is stretched. 
  
-Another use case is when you have 1280x720 TV, for example, and you want to use bezels that are designed for 1920x1080. Batocera 5.27 can automatically resize the bezelsbut sometimes you need to force RetroArch/libretro to take your 1280x720 resolution.+For 4K monitors, because the resolution is by default resized to 1920x1080, you might see screen that looks like this one - actually it's what 1920x1080 iscentered in a 3840x2160 screen:
  
-Tip: you can tweak your system with ''batocera.conf'' to make the aspect ratio better.+{{ :minihd_in_4k.png?nolink&400 |}} 
 + 
 +In order to cover the whole screen, the best solution is to set the **VIDEO MODE** to 1920x1080 -- you can do that on a system-by-system basis in the **PER SYSTEM ADVANCED CONFIGURATION** screen. 
 + 
 +Another use case is when you have a 1280x720 TV, for example, and you want to use bezels that are designed for 1920x1080. Batocera 5.27 can automatically resize the bezels, but sometimes you need to force the **VIDEO MODE** to take your 1280x720 resolution. 
 + 
 +If you absolutely want to use the 4K resolution for whatever reason (shaders looking better, you have a non-standard wide format on your TV/monitor...), you can force the **STRETCH BEZEL** option too. Same thing, this is something you can do on a system-by-system basis. **WARNING** this has an impact on the emulation performance. 
 + 
 +==== When EmulationStation feels sluggish on a 4K TV==== 
 + 
 +There are some SBC + TV combinations where EmulationStation feels sluggish (default theme seems to be lagging behind, with a refresh rate like 10 FPS). It's really depending on your own configuration, but we have reproduced this with a Raspberry Pi4 and a couple 4K TV models. By default, ES should negotiate with your TV to fix its resolution to 1080p, but sometimes your TV brand doesn't accept it and stays at 4K/2160p resolution. 
 + 
 +To force 1080 in those cases, edit ''batocera.conf'' and add a line: 
 + 
 +  system.es.maxresolution=1920x1080 
 + 
 +This shouldn't be necessary for most TVs, though, and the default mode can be set back with ''es.maxresolution=0'' (or just comment out or remove the line in ''batocera.conf''). 
 + 
 +===== How does that work under the hood? ===== 
 + 
 +You can do it though ES as shown above, but you can also tweak your system with ''batocera.conf'' to make the aspect ratio better.
  
 1. Know what are the resolutions available on your system + TV combination by entering the command ''batocera-resolution listModes'': 1. Know what are the resolutions available on your system + TV combination by entering the command ''batocera-resolution listModes'':
Line 53: Line 73:
 Batocera 5.27 and later will automatically resize 1920x1080 bezels to ultrawide by adding black borders on the sides. It will also resize full HD 1080 bezels to HD-ready 720p. Batocera 5.27 and later will automatically resize 1920x1080 bezels to ultrawide by adding black borders on the sides. It will also resize full HD 1080 bezels to HD-ready 720p.
  
-3. EmulationStation ignores this parameter. If you want to put ES in a specific resolution, you need to edit ''/etc/init.d/S31emulationstation'' and add the wanted resolution to the command line:+3. EmulationStation ignores this parameter. If you want to put ES in a specific resolution, you need to edit ''/etc/init.d/S31emulationstation'' and add the wanted resolution with a dedicated ''batocera-resolution setMode XX'' line in the script:
  
-   HOME=/userdata/system LANG="${settings_lang}.UTF-8" SDL_NOMOUSE=1 /usr/bin/emulationstation --no-splash --resolution 2560 1080 &+   cd /userdata # es need a PWD 
 +   batocera-resolution setMode 1 
 +   HOME=/userdata/system LANG="${settings_lang}.UTF-8" SDL_NOMOUSE=1 /usr/bin/emulationstation --no-splash &
  
 Don't forget to ''batocera-save-overlay'' to keep it upon reboot. Don't forget to ''batocera-save-overlay'' to keep it upon reboot.
  
 +4. If you ask for a 4K 3840x2160 resolution, but with a bezel that is HD 1920x1080, by default Batocera will add black borders around the bezel, like on the picture above. If you want your display to be full screen, you can either:
 +
 +  - switch to a lower resolution (like 1920x1080)
 +  - add a line ''mame.bezel_stretch=1'' in your ''batocera.conf'' for each emulator you want to stretch. Or ''global.bezel_stretch=1'' if you want to enable stretching to your native 4K resolution. **WARNING** this has an impact on the emulation performance.
  
 ===== Display issues, when xrandr is your friend ===== ===== Display issues, when xrandr is your friend =====
  • display_issues.1600468175.txt.gz
  • Last modified: 8 months ago
  • by lbrpdx