IntegerScaler

IntegerScaler is a free utility for pixel-perfect integer-ratio scaling of games with no blur. For example, at the Full HD (1920×1080) resolution on a 4K monitor (3840×2160), each logical pixel is displayed as a square group of four (2×2) physical pixels of the same color.

Such lossless scaling may be useful for modern 3D games as well as for old games and pixel-art games. See e. g.screenshot showing the “SimCity 2000” game () (640×480 native resolution) upscaled to 4K with IntegerScaler.

How to use: switch game to windowed mode and press Alt+F11 when game window is active (focused). If Alt+F11 does not work for the game, use delayed scaling via Ctrl+Alt+F11 or via the “Scale after 5 seconds” item of the IntegerScaler menu. Make sure the game is operating in the DPI-aware mode.

Tested games

See also
  • SmartUpscale — web-browser extension for preventing blurring images on web pages.
  • bsnes-mt — SNES (Super Nintendo) emulator with support for pixel-perfect integer-ratio scaling.

Features

  • Integer-ratio scaling with no blur for games that support windowed mode.
  • Support for Windows 7.
  • Ability to auto­matically scale specified games (via auto.txt file).
  • Ability to use custom background color instead of black (the -bg option).
  • Ability to limit the cursor-movement area to game window (the -clipcursor option).
  • Ability to resize game window (the -resize option).
  • Ability to disable hotkeys (the -nohotkeys option).
  • Ability to scale automatically with a specified delay after the app start (the -scale option).
  • System-tray icon with menu.
  • Support for two user-interface languages: English and Russian.
  • 100% portable app:

    • does not need installation — just unpack and use;
    • does not write any files;
    • does not write to Windows registry;
    • free of dependencies like .NET Framework;
    • can run from an external storage such a USB flash drive.

The application simulates full-screen mode for windowed games. The scaled image is centered on the screen. The screen area around the image is filled with solid-color background (black by default).

Integer scaling ratio for filling the screen as entirely as possible is calculated automatically and recalculated when scaled-window size is changed according to the game’s resolution.

Scaling is not applied to maximized windows.

Scaling is automatically disabled when the scaled window is closed, and is also temporarily disabled when the scaled window is minimized or maximized, and automatically enabled once window is returned to normal (not minimized, not maximized) state.

User interface

The user interface of the program consists of the two parts:

  • keyboard shortcuts (hot keys) for controlling scaling;
  • icon in the notification area (system tray) with a menu.

Keyboard shortcuts

Pressing the Alt+F11 keyboard shortcut enables scaling for currently active window. Pressing it again disables scaling regardless of what window is active.

Pressing the Ctrl+Alt+F11 keyboard shortcut enables scaling with a delay of 5 seconds. This allows to enable scaling even in games which block third-party keyboard shortcuts while the game’s window is active: just press the keyboard shortcut while the game window is inactive and then switch to the game window in 5 seconds. The same action can be done via the “Scale after 5 seconds” item of the application menu.

Additionally, the program disables scaling when the Ctrl+Alt+Delete keyboard shortcut is pressed.

Menu

A click on the icon shows the menu that allows to enable scaling, view information about the program, open links to relevant web pages, or close the program.

Autoscaling

It’s possible to automatically apply scaling to user-defined games. Each game is defined and identified by full path to its executable file (*.exe). Those paths should be listed one-per-line in the text file named auto.txt inside the IntegerScaler folder. An example of auto.txt contents:

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

There is currently no user interface for editing this list, so a third-party text editor like Windows Notepad should be used. It’s not recommended to use international characters in paths to game executables, otherwise autoscaling for corresponding games may not work.

Command-line parameters

The following optional command-line parameters (options) are supported:

-bg COLOR

Overrides color of background filling the screen space around the scaled image. Supported values:

  • gray — gray;
  • white — white;
  • an arbitrary color in the R,G,B format (without spaces), where RG and B are integers in the 0–255 range, corresponding to the red, green and blue color components correspondingly, e. g. 64,128,192.

The default background color is black.

-clipcursor
Limits the mouse-movement area to the client area (window area except borders and title bar) of the game window.
-resize WxH
Resizes the game window so that its client area (window area except borders and title bar) has the size specified in the WxH format, where W и H are the needed width and height in pixels correspondingly. For example, 1920x1080. Useful for games that don’t resize the game window according to in-game resolution or set a wrong size.
-locale LANGUAGE

Overrides the language of the app’s user interface. Supported values:

  • en — English;
  • ru — Russian.

Default language corresponds to operating system’s user interface if it’s Russian, and English otherwise.

-nohotkeys
Starts IntegerScaler with hot keys (keyboard shortcuts) disabled.
-scale [DELAY]
Applies scaling in 0.5 seconds after starting IntegerScaler (if no delay is specified) or with the delay specified in milliseconds.

In this example, background is overridden to gray, the user-interface language is overridden to Russian, hot keys are disabled and scaling is applied in 3 seconds (3000 ms) after starting IntegerScaler:

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

Parameters can be specified in the “Target” field on the “Shortcut” tab in properties of the shortcut (*.lnk) to the executable file (*.exe) of IntegerScaler. A shortcut can be created with the item “Create shortcut” of the context menu of the executable file, shown via a right click on the executable file.

Parameters should be specified after a space following a path to the app’s executable file. Parameter name and value are separated with a space. Specific order of parameters does not matter. The parameters can be used separately, independently from each other.

Differences from Windows Magnifier

IntegerScaler have the following advantages over the Windows’ built-in Magnifier:

  • only important part of the window is displayed — with no borders and title bar;
  • the space around the image is filled with black color like in full-screen mode;
  • the image is automatically centered on the screen with no need for precise mouse positioning;
  • scaling ratio is calculated automatically for filling the screen as entirely as possible.

Compatibility with games

For information about compatibility of some games with windowed mode and IntegerScaler, see the table.

Windowed mode

The application is compatible with absolute majority of games that support windowed mode, and does not work with games running in full-screen mode.

If specific game has no explicit setting for switching between full-screen and windowed modes, the Alt+Enter keyboard shortcut may help.

DPI-awareness

It’s important to make sure the game is in DPI-aware mode. The criterion is simple: the game-window size in physical pixels should correspond to in-game resolution. For example, window of a game running at Full HD resolution should occupy about 1/4 (1/2 horizontally and 1/2 vertically) of 4K screen at 200% OS-level zoom, not entire screen.

Games that are not DPI-aware require disabling DPI virtualization (DPI scaling) in executable’s (*.exe) properties, to have proper window size with no possibly blurry scaling automatically applied by Windows to non-DPI-aware applications.

DPI scaling for a specific game can be disabled via properties of the game’s executable (the “Properties” context-menu item).

Windows 10

“Properties” item → “Compatibility” tab → “Settings” section → “Change high DPI settings” button → “High DPI scaling override” section → “Override high DPI scaling behavior. Scaling performed by” checkbox → “Application” dropdown item.

Windows 10 (older builds)

“Properties” item → “Compatibility” tab → “Settings” section → “Override high DPI scaling behavior. Scaling performed by” checkbox → “Application” dropdown item.

Windows 7

“Properties” item → “Compatibility” tab → “Settings” section → “Disable display scaling on high DPI settings” checkbox.

Mouse

Perceived speed of mouse-cursor moving may increase proportionally with scaling ratio.

Administrator mode

For scaling games running as admini­strator, IntegerScaler should also be running as admini­strator.

Aero / DWM composition in Windows 7

For scaling to work in Windows 7, the Aero mode (DWM composition) must be enabled (the Windows’ built-in Magnifier app has the same requirement). IntegerScaler automatically tries to enable Aero if it’s disabled. This is irrelevant to Windows 8+ where the DWM-composition feature is always enabled.