在 Wine 中设置应用程序的固定屏幕分辨率

在 Wine 中设置应用程序的固定屏幕分辨率

例如,我的应用程序(游戏)只有 640x480 分辨率。现在我有 2 个选择:以窗口模式启动它,大小为 640x480,或者启用全屏并填充整个屏幕。

我想要的是调整应用程序的大小而不进入全屏(例如到 1024x768)。

目前我已经尝试了2种解决方案:

  1. 在 中启用“模拟虚拟桌面” winecfg。起初它会启动具有该分辨率的桌面,但是当我在应用程序中启用全屏时,它会将桌面缩小到 640x480。

  2. 在内部 X-server 中启动 Wine:

    Xephyr -ac -br -noreset -screen 1024x768 :1.0 &
    ZEPHYR_PID=$!
    sleep 1
    DISPLAY=:1.0 wine game.exe
    kill $ZEPHYR_PID
    

    这里同样的问题,当我启用全屏时它会调整窗口大小。

答案1

我曾经在全屏模式下玩过,我制作了脚本来更改显示器的分辨率和刷新率,因为我使用了错误的速率,在我的显示器中出现了一个带有消息“Entrace not adm”的浮动框。为了修复我使用类似下面的东西

这是“黑桃 A”

#!/bin/bash

# Resolution Fix
echo `xrandr --current | grep current | awk '{print $8}'` >> /tmp/width
echo `xrandr --current | grep current | awk '{print $10}'` >> /tmp/height
cat /tmp/height | sed -i 's/,//g' /tmp/height
WIDTH=$(cat /tmp/width)
HEIGHT=$(cat /tmp/height)
rm /tmp/height /tmp/height
echo "$WIDTH"x"$HEIGHT" >> /tmp/Resolution
Resolution=$(cat /tmp/Resolution)
rm /tmp/Resolution
# Resolution Fix

BINARY="$HOME/.wine/drive_c/Ace of Spades/client.exe"
$(wine "$BINARY" -"$@" "%u") &
xrandr -s 800x600 -r 77

sleep 2
BINARYPID=$(pidof $BINARY)
taskset -p 0xFFFFFFFF $BINARYPID &

while Launchers=$(pidof "client.exe")
    do   
        sleep 1
    done
    xrandr -s $Resolution -r 63
exit 0

在 Resume 这个脚本中,它用于启动 Ace Of Spade,从“mimetype”和来自网络浏览器的服务器,使用协议“aos://”,这是它的另一种配置类型,我在这里不解释。

这次启动游戏,游戏启动后,显示器的分辨率变为800x600,直到我关闭游戏,当我关闭游戏时,我的分辨率又恢复了。

相关内容