IntegerScaler

IntegerScaler — бесплатная программа для целочис­ленного масштаби­рования (integer scaling) игр без размытия. Например, в разрешении Full HD (1920×1080) на 4K-мониторе (3840×2160) каждый логический пиксел выводится как квадратная группа из 4-х (2×2) физических пикселов одного цвета.

Такое масштаби­рование без потерь качества может быть полезно как для современных трёх­мерных игр, так и для старых игр и игр на основе пиксельной графики (pixel art). См., например, скриншот игры «SimCity 2000» () (собственное разрешение — 640×480), отмасштаби­рованной до 4K с помощью IntegerScaler.

Как пользоваться: пере­ключите игру в оконный режим и нажмите Alt+F11 при активном окне игры. Если Alt+F11 для конкретной игры не сраба­тывает, сделайте окно игры неактивным, включите отложенное масштаби­рование с помощью Ctrl+Alt+F11 или пункта «Масшта­бировать через 5 секунд» меню пиктограммы IntegerScaler в области уведомлений (system tray) и снова сделайте окно игры активным. Удостоверьтесь, что игра работает в HiDPI-совместимом режиме. Подробнее читайте ниже.

Проверенные игры

См. также
  • SmartUpscale — браузерное расширение для устранения размытия изображений на веб-страницах.
  • bsnes-mt — эмулятор SNES (Super Nintendo) с поддержкой цело­численного масштаби­рования.

Функциональность

  • Целочисленное масштаби­рование без размытия для игр, поддер­живающих оконный режим.
  • Поддержка Windows 7.
  • Возможность автома­тического масштаби­рования заданных игр (файл auto.txt).
  • Возможность задать произвольный цвет фона вместо чёрного (параметр -bg).
  • Возможность ограничить область движения указателя мыши окном игры (параметр -clipcursor).
  • Возможность указать произвольный масштабный коэффи­циент (параметр -ratio).
  • Возможность изменения размеров окна игры (параметр -resize).
  • Возможность отключения горячих клавиш (параметр -nohotkeys).
  • Возможность автоматического масштаби­рования с заданной задержкой после запуска программы (параметр -scale).
  • Пиктограмма с меню в области уведомлений (system tray).
  • Поддержка двух языков интерфейса: английского и русского.
  • 100% автономное (portable) приложение:

    • не нуждается в установке — просто распакуйте и пользуйтесь;
    • не сохраняет файлов за пределами своей папки;
    • не записывает ничего в реестр Windows;
    • свободно от зави­симостей типа .NET Framework;
    • может работать с внешнего накопителя типа USB-флэшки.

Программа имитирует полно­экранный режим для игр, запущенных в оконном режиме. Отмасшта­бированное изображение выводится по центру экрана. Пространство вокруг изображения заполняется одно­тонным фоном (по умолчанию чёрным).

Цело­чис­ленный масштабный коэффи­циент, обеспечивающий максимальное заполнение экрана, вычисляется авто­мати­чески и пере­счи­тывается при изменении размеров масштаби­руемого окна при изменении разрешения в игре.

Масштабирование не применяется к развёрнутым (maximized) окнам.

Масштаби­рование авто­мати­чески выключается при закрытии масштаби­руемого окна, а также временно выключается при сворачивании масштаби­руемого окна или его развора­чивании на весь рабочий стол и авто­мати­чески включается снова при возвращении окна в обычное (не свёрнутое и не развёрнутое) состояние. Масштаби­рование также временно выклю­чается, когда масшта­бируемое окно теряет фокус, например, при нажатии сочетания клавиш Alt+Tab.

Интерфейс

Пользова­тельский интерфейс программы состоит из двух частей:

  • сочетания клавиш (горячие клавиши) для управления масштаби­рованием;
  • пиктограмма в области уведомлений (system tray) с меню.

Сочетания клавиш

Нажатие сочетания клавиш Alt+F11 включает масштаби­рование для активного в данный момент окна. Повторное нажатие выключает масштаби­рование вне зависимости от того, какое окно активно.

Нажатие сочетания клавиш Ctrl+Alt+F11 включает масштаби­рование с задержкой 5 секунд. Это позволяет включить масштаби­рование даже в играх, блокирующих обработку сторонних сочетаний клавиш при активном окне игры: просто нажмите сочетание клавиш при неактивном окне игры и в течение 5 секунд пере­клю­читесь на окно игры. Для этой же цели служит пункт «Масшта­бировать через 5 секунд» меню программы.

Программа также выключает масштаби­рование при нажатии сочетания клавиш Ctrl+Alt+Delete.

Меню

По щелчку на пикто­грамме отображается меню, позволяющее включить масштаби­рование, просмотреть информацию о программе, перейти по ссылкам на связанные веб-страницы или выйти из программы.

Интерфейс программы поддерживает русский и английский языки, язык выбирается автоматически на основании языка интерфейса операционной системы.

Авто­масшта­бирование

Возможно автоматически применять масштабирование к заданным пользователем играм. Каждая игра задаётся и иденти­фицируется с помощью полного пути к её исполняемому файлу (*.exe). Такие пути следует указать каждый на отдельной строке в текстовом файле с именем auto.txt в папке IntegerScaler. Пример содержимого файла auto.txt:

D:\games\Steam\steamapps\common\GRID Autosport\GRIDAutosport_avx.exe
D:\games\Steam\steamapps\common\Oddworld New n Tasty\NNT.exe
D:\games\Steam\steamapps\common\pCars\pCARS64.exe

Пользова­тельский интерфейс для редакти­рования этого списка не преду­смотрен, поэтому следует использовать сторонний текстовый редактор типа Блокнота Windows.

Файл auto.txt следует сохранить в кодировке UTF-8, это необходимо для правильной интер­претации национальных символов (например, кириллицы) в путях к файлам игр.

Параметры командной строки

Поддер­живаются следующие необяза­тельные параметры командной строки:

-bg ЦВЕТ

Пере­опре­деляет цвет фона, заполняющего пространство экрана вокруг отмасштаби­рованного изображения. Поддер­живаемые значения:

  • gray — серый;
  • white — белый;
  • произвольный цвет в формате R,G,B (без пробелов), где RG и B — целые числа в диапазоне 0—255, соответ­ствующие красной, зелёной и синей составляющим цвета соответ­ственно, например, 64,128,192;
  • none — отключает фон.

По умолчанию используется чёрный фон.

-clipcursor
Ограничивает область движения указателя мыши клиентской областью (областью окна за исключением рамок и заголовочной панели) окна игры.
-locale ЯЗЫК

Пере­опре­деляет язык интерфейса программы. Поддер­живаемые значения:

  • en — английский;
  • ru — русский.

По умолчанию используется язык интер­фейса операционной системы, если он русский, и английский язык — в любом другом случае.

-nohotkeys
Запускает IntegerScaler с отключением горячих клавиш (сочетаний клавиш).
-ratio ЧИСЛО
Позволяет указать произвольный цело­численный масштабный коэффи­циент. Указанный коэффи­циент игнори­руется, если он меньше 1. Если задан коэффи­циент 1 в сочетании с отклю­чённым фоном, масштаби­рование не осущест­вляется, и только изменяется размер окна игры, если задан параметр -resize.
-resize ШxВ

Не пред­наз­начен для масштаби­рования. Для указания произвольного масштаба используйте параметр -ratio.

Изменяет размеры окна игры так, чтобы клиентская область окна (область окна за исключением рамок и заго­ловочной панели) имела заданные размеры в формате ШxВ, где Ш и В — нужные ширина и высота в пикселах соответ­ственно. Например, 1920x1080.

Полезно для игр, которые:

  • не изменяют размеры окна в соответствии с внутри­игровым разрешением;
  • или устанав­ливают неправильные размеры окна, не соответствующие разрешению игры;
  • или не позволяют изменять разрешение игры в оконном режиме, но под­страивают его под размеры окна.

Если требуется только изменить размеры окна — без масштаби­рования и отображения фона вокруг окна, используйте такое сочетание параметров:

-resize 1920x1080 -bg none -ratio 1

-scale [ЗАДЕРЖКА]
Применяет масштаби­рование через полсекунды после запуска Integer­Scaler (если задержка не задана) или с задержкой, заданной в милли­секундах.

В этом примере фон переопределяется в серый, язык интерфейса — в английский, отключаются горячие клавиши и применяется масштаби­рование спустя 3 секунды (3000 мс) после запуска IntegerScaler:

IntegerScaler_64bit.exe -bg gray -clipcursor -resize 1920x1080 -locale en -nohotkeys -scale 3000

Параметры можно указать в поле «Объект» на вкладке «Ярлык» в свойствах ярлыка (*.lnk) исполняемого файла (*.exe) IntegerScaler. Создать ярлык можно с помощью пункта «Создать ярлык» контекстного меню исполняемого файла, вызываемого щелчком правой кнопкой мыши на испол­няемом файле.

Параметры указываются через пробел после пути к исполняемому файлу программы. Значение параметра указывается через пробел после его названия. Порядок указания параметров не имеет значения. Параметры можно исполь­зовать по отдельности, независимо друг от друга.

Регистр символов значения параметров не имеет значения.

Отличия от «Экранной лупы»

IntegerScaler выгодно отличается от стандартной Windows-программы «Экранная лупа»:

  • отображается только значимая часть окна — без рамок и заголовочной панели;
  • пространство вокруг изображения заполняется чёрным цветом, как в полно­экранном режиме;
  • изображение авто­мати­чески центрируется на экране без нужды в точном позицио­нировании мыши;
  • масштабный коэффи­циент подбирается авто­мати­чески для макси­мального заполнения экрана.

Совместимость с играми

Информацию о совместимости некоторых игр с оконным режимом и программой IntegerScaler см. в таблице.

Оконный режим

Программа совместима с подавляющим большинством игр, поддер­живающих оконный (windowed) режим, и не работает с играми, запущенными в полно­экранном режиме.

Если в настройках игры не предус­мотрено явное пере­клю­чение между полноэкранным (full-screen) и оконным режимами, может сработать сочетание клавиш Alt+Enter.

HiDPI-режим

Важно убедиться, что игра работает в HiDPI-совместимом (DPI-aware) режиме. Определить это легко: размер окна игры в физических пикселах (точках) должен соответ­ствовать разрешению, выбранному в настройках игры. Например, окно игры, работающей в разрешении Full HD, при системном масштабе 200% на 4K-мониторе должно занимать не весь экран, а примерно 1/4 экрана (1/2 по горизонтали и 1/2 по вертикали).

Для игр, формально несовме­стимых с HiDPI, требуется отключить DPI-виртуа­лизацию (DPI scaling) в свойствах исполняемого файла (*.exe), чтобы окно игры имело правильный размер и было свободно от размытия, возможного вследствие масштаби­рования, которое Windows автоматически применяет к HiDPI-несовме­стимым приложениям.

Отключить DPI-виртуа­лизацию для отдельно взятой игры можно в свойствах её исполняемого файла (пункт «Свойства» контекстного меню файла).

Windows 10

Пункт «Свойства» → вкладка «Совместимость» → секция «Параметры» → кнопка «Изменить параметры высокого DPI» → секция «Пере­опре­деление масштаби­рования с высоким разрешением» → галка «Пере­опре­делите режим масштаби­рования высокого разрешения. Масштаби­рование выполняется» → пункт «Приложение» выпадающего списка.

Windows 10 (устаревшие версии)

Пункт «Свойства» → вкладка «Совмес­тимость» → секция «Параметры» → галка «Пере­опре­делите режим масштаби­рования высокого разрешения. Масштаби­рование выполняется» → пункт «Приложение» выпадающего списка.

Windows 7

Пункт «Свойства» → вкладка «Совместимость» → секция «Параметры» → галка «Отключить масштаби­рование изображения при высоком разрешении экрана».

Мышь

Субъективная скорость движения указателя мыши в играх, использующих системный указатель мыши, может возрастать пропор­ционально масштабному коэффициенту.

Режим администратора

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

Aero / DWM composition в Windows 7

Для работы масштабирования в Windows 7 необходимо, чтобы был включён режим Aero (DWM composition) (встроенной в Windows программе «Экранная лупа» это тоже необходимо). IntegerScaler автоматически пытается включить Aero, если он выключен. Windows 8 и выше это не касается — там функция DWM composition включена всегда.

Вопросы и ответы (FAQ)

Поддер­живается ли масштаби­рование игр в полно­экранном режиме?
Нет. Подлежащая масштаби­рованию игра должна быть запущена в оконном режиме. При использовании современной видео­карты возможно полно­экранное цело­численное масштаби­рование средствами видео­драйвера.
Возможно ли масштаби­рование экрана одного дисплея без заливки экранов других дисплеев чёрным?
Нет. Единственный целе­сообразный способ это сделать серьёзно снижает быстро­действие, что противо­речило бы назначению программы — обеспечению того же быстро­действия, как в полно­экранном режиме, просто без размытия.
Почему окно игры просто центри­руется и не масшта­бируется?
Скорее всего, разрешение вашего экрана недостаточно для цело­чис­ленного масштаби­рования при выбранном разрешении конкретной игры. Разрешение экрана по гори­зонтали и вертикали должно быть как минимум вдвое больше размеров окна игры. В противном случае макси­мальный целочисленный масштаб равен 1,0 (100%), что эквивалентно обычному центри­ро­ванию. Так происходит, например, при размере окна 1280×720 (HD) и разрешении экрана 1920×1080 (Full HD), т. к. 1920 / 1280 = 1080 / 720 = 1,5. Подробнее — в ответе на вопрос в статье о цело­чис­ленном масштаби­ровании.
Открыт ли исходный код?
Нет. Исходный код программы закрыт, и его открытие не планируется. Вас может заинте­ресовать авторская библиотека Integer­Scaling (C++/Rust/JS/PHP) для вычислений, связанных с цело­численным масштаби­рованием.