Score:0

How can I force WINE to use a specific refresh rate for a specific resolution when going into fullscreen mode?

in flag

I am trying to play some sightly old games with WINE and I run into the following problem. The games go into full screen mode at 640x480. My monitor has two possible refresh rates for this resolution, 60Hz and 75Hz. The problem is that 75Hz is always selected as the preferred mode but the games are designed to run at 60Hz vsynced, so they either run faster than they should or run jerky (depending on the game). For one of the games I can fix it by alt tabbing, setting the proper refresh rate with xrandr and alt tabbing back to the game, but most games just set my monitor back to 75Hz when returning to the game. I've tried removing the 640x480 mode with xrandr --remmode and --delmode options but it seems that it's not possible since it's a built in mode. (Trying to do it yields this error:

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

). I've also tried to set the 640x480 60Hz mode with the --preferred option but it didn't work either. I've also tried emulating a virtual desktop with WINE but all it does is run the game in a window. Is there a way I can set the 60Hz mode as the preferred one for when the monitor is running at 640x480? Or, is there a way to force WINE to choose the 60Hz mode or ignore the 75Hz mode when switching to 640x480 fullscreen? Here's the output I get when I do 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  

The last mode listed is one I've added myself after doing

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"

I did it because I noticed that setting the regular 640x480 60Hz mode (the other one listed by xrandr), my desktop was sightly zoomed in. I would be happy with either the built in 60Hz mode or this one to be selected.

Thanks in advance.

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.