Batocera使用4K和超宽显示器进行仿真,或者在屏幕未完全显示时出现问题
较旧的8位和16位系统,或80年代和90年代的街机系统都使用4:3 CRT屏幕。现在,现代显示器的尺寸为16:9或更宽,可以达到4K,即2160像素高(当时为480或546!)。
要在屏幕上渲染这么多的像素会影响系统性能。当您使用4K屏幕或超宽屏时,Batocera默认将分辨率限制为HD 1920×1080。渲染仿真器(甚至是最新的仿真器)已绰绰有余。但是,当您使用超宽显示器时,显示会被拉长。
对于4K显示器,由于默认情况下分辨率已调整为1920×1080,因此您可能会看到类似这样的屏幕-实际上就是1920×1080,以3840×2160屏幕为中心:
为了覆盖整个屏幕,最好的解决方案是将VIDEO MODE设置为1920×1080-您可以在PER SYSTEM ADVANCED CONFIGURATION屏幕中逐个系统地进行设置。
另一个用例是,例如,您有一台1280×720的电视,并且您想要使用专为1920×1080设计的边框。Batocera 5.27可以自动调整边框的大小,但是有时您需要强制“视频模式”采用1280×720的分辨率。
如果您出于任何原因绝对想要使用4K分辨率(阴影看起来更好,您的电视/显示器上都有非标准的宽格式...),您也可以强制使用STRETCH BEZEL选项。同样,您可以在逐个系统的基础上执行此操作。警告这会影响仿真性能。
当EmulationStation在4K电视上感觉迟钝时
在某些SBC + TV组合中,EmulationStation感觉很慢(默认主题似乎落后,刷新率约为10 FPS)。这实际上取决于您自己的配置,但是我们已经用Raspberry Pi4和几个4K电视模型重现了这一点。默认情况下,ES应该与您的电视协商以将其分辨率固定为1080p,但是有时您的电视品牌不接受它,而是将其保持在4K / 2160p分辨率。
在这种情况下要强制1080,请编辑batocera.conf并添加一行:
system.es.maxresolution = 1920x1080
不过,对于大多数电视来说,这不是必需的,并且可以将默认模式设置为es.maxresolution=0(或仅注释掉或删除 batocera.conf)。
它是如何工作的?
您可以通过如上所示的ES来做到这一点,但也可以通过调整系统batocera.conf来提高纵横比。
1.输入以下命令,了解系统+电视组合上可用的分辨率batocera-resolution listModes:
# batocera-resolution listModes
0:2560x1440 60Hz
1:2560x1080 60Hz
2:1920x1080 60Hz
3:1920x1080 60Hz
4:1920x1080 60Hz
5:1920x1080 60Hz
6:1920x1080 60Hz
7:1920x1080 50Hz
8:1920x1080 50Hz
9:1680x1050 60Hz
10:1600x900 60Hz
11:1280x1024 75Hz
12:1280x1024 60Hz
13:1440x900 60Hz
14:1280x720 60Hz
15:1280x720 60Hz
16:1280x720 50Hz
17:1024x768 75Hz
18:1024x768 60Hz
19:800x600 75Hz
20:800x600 72Hz
21:800x600 60Hz
22:720x576 50Hz
23:720x576 50Hz
24:720x480 60Hz
25:720x480 60Hz
26:720x480 60Hz
27:720x480 60Hz
28:640x480 75Hz
29:640x480 60Hz
30:640x480 60Hz
31:720x400 70Hz
2.然后,从列表中选择要强制执行RetroArch的模式。例如,如果我想强制2560×1080使用仿真器,则可以添加以下内容batocera.conf:
global.videomode = 1
然后,仿真器将从上面的列表中全部选择模式1 = 2560×1080,作为其屏幕分辨率。如果我只想为特定的仿真器选择特定的分辨率,则可以使用例如来实现n64.videomode=1。
Batocera 5.27和更高版本将通过在侧面添加黑色边框来自动将1920×1080边框的尺寸调整为超宽。它还会将全高清1080边框的尺寸调整为支持高清720p的尺寸。
3. EmulationStation忽略此参数。如果要将ES设置为特定的分辨率,则需要在脚本/etc/init.d/S31emulationstation中用专用batocera-resolution setMode XX行编辑并添加所需的分辨率:
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 &
不要忘记batocera-save-overlay在重新启动后保留它。
4.如果您要求4K 3840×2160分辨率,但边框为HD 1920×1080,则默认情况下,batocera将在边框周围添加黑色边框,如上图所示。如果希望全屏显示,则可以:
切换到较低的分辨率(例如1920×1080)
mame.bezel_stretch=1在您batocera.conf要拉伸的每个仿真器中添加一行。或者,global.bezel_stretch=1如果您想启用拉伸至本机4K分辨率。警告这会影响仿真性能。