Wineでアプリケーションの固定画面解像度を設定する

Wineでアプリケーションの固定画面解像度を設定する

たとえば、私のアプリケーション(ゲーム)の解像度は640×480です。今2つのオプションがあります。 640x480サイズのウィンドウモードで起動するか、フルスクリーンを有効にしてフルスクリーンを埋めることです。

私が望むのは、フルスクリーンに切り替えることなくアプリのサイズを変更することです(例:1024x768)。

現在、私は2つの解決策を試しました。

  1. で「仮想デスクトップシミュレーション」を有効にしますwinecfg。最初はその解像度でデスクトップが起動しますが、アプリケーションでフルスクリーンを有効にすると、デスクトップは640x480に縮小されます。

  2. 内部 X サーバーで 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」というメッセージが表示されたフローティングボックスが表示されました.修正するには、次のようなものを使用してください。

「エースオブスペード」です。

#!/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では、このスクリプトは「mimetype」とWebブラウザサーバーで「aos://」プロトコルを使用してAce Of Spadeを起動するために使用されます。プロトコルの別の構成タイプについてはここでは説明しません。

今回ゲームを実行すると、ゲーム実行後にゲームを終了するまでモニター解像度が800x600に変わり、ゲームを終了すると再び800x600に戻ります。

関連情報