我尝试使用 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 模式还是选择这个模式,我都会很高兴。
提前致谢。