进入全屏模式时,如何强制 WINE 对特定分辨率使用特定的刷新率?

进入全屏模式时,如何强制 WINE 对特定分辨率使用特定的刷新率?

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

提前致谢。

相关内容