![进入全屏模式时,如何强制 WINE 对特定分辨率使用特定的刷新率?](https://linux22.com/image/939570/%E8%BF%9B%E5%85%A5%E5%85%A8%E5%B1%8F%E6%A8%A1%E5%BC%8F%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%20WINE%20%E5%AF%B9%E7%89%B9%E5%AE%9A%E5%88%86%E8%BE%A8%E7%8E%87%E4%BD%BF%E7%94%A8%E7%89%B9%E5%AE%9A%E7%9A%84%E5%88%B7%E6%96%B0%E7%8E%87%EF%BC%9F.png)
我尝试使用 WINE 玩一些稍旧的游戏,但遇到了以下问题。游戏以 640x480 的分辨率进入全屏模式。我的显示器在此分辨率下有两种可能的刷新率,60Hz 和 75Hz。问题是 75Hz 始终被选为首选模式,但游戏设计为以 60Hz 垂直同步运行,因此它们要么运行速度过快,要么运行不稳定(取决于游戏)。对于其中一款游戏,我可以通过 alt tab 键、使用 xrandr 设置适当的刷新率并 alt tab 键返回游戏来修复此问题,但大多数游戏在返回游戏时只是将显示器重新设置为 75Hz。我尝试使用 xrandr --remmode 和 --delmode 选项删除 640x480 模式,但似乎不可能,因为它是内置模式。(尝试这样做会产生此错误:
X Error of failed request: BadAccess (attempt to access private resource denied)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 19 (RRDeleteOutputMode)
Serial number of failed request: 39
Current serial number in output stream: 40
)。我还尝试使用 --preferred 选项设置 640x480 60Hz 模式,但同样不起作用。我还尝试使用 WINE 模拟虚拟桌面,但它所做的只是在窗口中运行游戏。当显示器以 640x480 运行时,我是否可以将 60Hz 模式设置为首选模式?或者,在切换到 640x480 全屏时,是否有办法强制 WINE 选择 60Hz 模式或忽略 75Hz 模式?这是我执行此操作时得到的输出xrandr -q
VGA-0 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.02*+ 75.02
1152x864 75.00
1024x768 75.03 60.00
832x624 74.55
800x600 75.00 60.32
640x480 75.00 59.94
720x400 70.08
640x480_60.00 59.38
最后列出的模式是我自己添加的
cvt -v 640 480 60
xrandr --newmode "640x480_60.00" 23.75 640 664 720 800 480 483 487 500 -hsync +vsync
xrandr --addmode "640x480_60.00"
我这样做是因为我注意到设置常规 640x480 60Hz 模式(xrandr 列出的另一个模式)时,我的桌面稍微放大了。无论是内置的 60Hz 模式还是选择这个模式,我都会很高兴。
提前致谢。