LINUX.ORG.RU
решено ФорумGames

Запретить Wine менять разрешение экрана; Апскейлить игры с малым разрешением

 ,


0

2

Возможно ли как-то заставить игры в wine использовать малое разрешение экрана, но при этом работать в режиме апскейлинга? То есть идет рендеринг в малом разрешение, но изображение растянуто на весь экран. При этом разрешение рабочего стола остается тем же.

Зачем это надо:

  • Некоторые нативные игры (поделия от Valve, последний Unreal Tournament, некоторые другие игры на SDL2) уже умеют такое делать. Значит это как-то реализуемо.
  • Игры под wine часто меняют разрешение экрана на свое нужное. При этом при вылете (а иногда и при успешном завершении) разрешение не возвращается на прежнее. Приходится заходить в настройки системы и возвращать разрешение самому. Бесит.
★★★★★
Ответ на: комментарий от anonymous

Оно будет в мелком окне в углу с огромной черной рамкой.

steemandlinux ★★★★★
()

Напиши скрипт и вызывай его после wine, можешь кинуть на панель быстрого запуска для быстрого вызова.

xrandr -s <width>x<height>

например:

xrandr -s 1280x1024

kostik87 ★★★★★
()
Ответ на: комментарий от steemandlinux

У ТС одна из проблем в том, что его бесит:

Приходится заходить в настройки системы и возвращать разрешение самому. Бесит.

я ему и не предлагаю «апскейл», а только способ, чтобы не возюкать мышью, а раз кликнуть по срипту.

kostik87 ★★★★★
()
Ответ на: комментарий от steemandlinux

Окно игры в пропорциях к экрану будет небольшого размера. Согласись, что при разрешении монитора 1280x1024, а игры 800x600 играть уже некомфортно, но терпимо, при большем же разрешении экрана практически невозможно.

Поэтому ТС может запускать игру на весь экран, но с изменением разрешения в текущей X-сессии, а потом для простого возврата к прежнему разрешению, дабы не возюкать мышью нажать с панели кнопку для вызова скрипта.

Если ему и это неудобно, то можно запустить игру в отдельной X-сессии, где игра может спокойно менять разрешение, а после завершения игры сессия будет просто закрываться.

Основная же X-сессия останется с прежним разрешением.

kostik87 ★★★★★
()
Ответ на: комментарий от steemandlinux

Да, запустить игру как есть на весь экран, а затем после закрытия игры вызвать скрипт для быстрого возврата прежнего разрешения.

Ну либо использовать отдельную X-сессию.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

Кстати, xrandr можно на комбинацию клавиш повесить.

steemandlinux ★★★★★
()

Есть стойкое ощущение, что я так homm3 запускал. По моему, это можно натыкать в настройках самого wine, в том разделе где про виртуальный рабочий стол.

Ещё, сибирь запускал (как раз через хак с xrandr).

Ещё, можно посмотреть в сторону xephyr.

pon4ik ★★★★★
()

Лорчую реквест в плане масштабирования отдельного окна. Это и для homm и для openttd полезно (впрочем для героев есть hdmod со встроенным апскейлом).

Хорошо бы плагин к kwin.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

HOMM уже обучили такому. Называется HOMM HD.

cvv ★★★★★
()

если ыт про ползунок «качество картинки» который заменил изменение разрешения- то это особенности движка, а не какойто скрытый функционал

к старым играм без переписывания движка не применить

через вайн ты можешь только подменять текстуры и убрать/изменять API вызовы, но не переделать логику работы движка (замена логики движка через вайн равносильно по времени написанию движка игры с нуля)

anonymous
()
4 октября 2017 г.

Передаём приветы Марку, который в конечном итоге задушил Compiz.
Там был апскейл окон.

aidaho ★★★★★
()
22 августа 2018 г.

Штош, недавно завезли wine в Steam Linux, теперь разрешение там апскейлится вместо того чтобы менять системную.

xDShot ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Necroposting is life

KWin вполне способен масштабировать окна и безо всяких плагинов: https://i.imgur.com/ygWBgo8.png (в Особых параметрах окон).

Только следует помнить, что в оконном режиме размер окна считается вместе с его декорациями — их размер нужно будет сложить с желаемым размером окна.

anonymous
()
Ответ на: комментарий от anonymous

Мне кажется, это просто ресайз окна и opengl-игра, растянувшая картинку под окно. С другими программами тоже работает? Я пробовал с калькулятором и он у меня не апскейлился.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Хм, и действительно, похоже всё это в каком-то месте зависит ещё и от самой программы, которую мы пытаемся принудительно апскейлить. Калькулятор, который тоже не позволяет «добровольно» изменять размер своего окна, после такой процедуры просто меняет размер своих контролов. Пара игр на такое по большому счёту вообще не отреагировала — исходная картинка осталась неизменной, а принудительно растянутая область оказалась залита чёрным. Ну и картинка некоторых игр всё же апскейлится, как это видно на предыдущем скриншоте. Но по крайней мере, в этих играх никакого opengl точно нет, и сами они никак менять размер своей картинки не предлагают.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.