IntegerScaler is a free utility for pixel-perfect integer-ratio scaling (a.k.a. integer 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. a screenshot showing the “SimCity 2000” game () (640×480 native resolution) upscaled to 4K with IntegerScaler.
How to use: switch the game to windowed mode and press Alt+F11 when the game window is active (focused). If Alt+F11 does not work for the game, make the game window inactive, use delayed scaling via Ctrl+Alt+F11 or via the “Scale after 5 seconds” item of the menu of the IntegerScaler icon in the notification area (system tray), then make the game window active back. Make sure the game is operating in the DPI-aware mode. Read below for details.
- See also
- Integer-ratio scaling with no blur for games that support windowed mode.
- Support for Windows 7.
- Ability to automatically scale specified games (via
- Ability to use custom background color instead of black (the
- Ability to limit the cursor-movement area to game window (the
- Ability to specify a custom scaling ratio (the
- Ability to resize game window (the
- Ability to disable hotkeys (the
- Ability to scale automatically with a specified delay after the app start (the
- 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 files outside of its folder;
- does not write to Windows registry;
- free of dependencies like .NET Framework;
- can run from an external storage such as 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. Scaling also disables temporarily when the scaled window loses focus e. g. as a result of pressing the Alt+Tab keyboard shortcut.
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.
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.
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.
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
D:\games\Steam\steamapps\common\Oddworld New n Tasty\NNT.exe
There is currently no user interface for editing this list, so a third-party text editor like Windows Notepad should be used.
auto.txt file should be saved using the UTF-8 encoding, this is required for international characters in paths to game executables to be correctly recognized.
The following optional command-line parameters (arguments, options) are supported:
Overrides color of background filling the screen space around the scaled image. Supported values:
- an arbitrary color in the
R,G,Bformat (without spaces), where
Bare integers in the 0–255 range, corresponding to the red, green and blue color components correspondingly, e. g.
none— disables background.
The default background color is black.
- Limits the mouse-movement area to the client area (window area except borders and title bar) of the game window.
Overrides the language of the app’s user interface. Supported values:
Default language corresponds to operating system’s user interface if it’s Russian, and English otherwise.
- Starts IntegerScaler with hot keys (keyboard shortcuts) disabled.
- Allows to specify a custom integer scaling ratio. The specified ratio is ignored if it’s lower than 1. If the ratio of 1 is combined with disabled background, scaling is not done, and just the game window is resized if the
-resizeparameter is specified.
Not intended for scaling. For specifying a custom scaling ratio, use the
Resizes the game window so that its client area (window area except borders and title bar) has the size specified in the
Hare the needed width and height in pixels correspondingly. For example,
Useful for games that:
- don’t resize the game window according to in-game resolution;
- or set a wrong window size not matching the in-game resolution;
- or don’t allow to change in-game resolution in windowed mode, but adjust it according to window size.
If you only need to resize game window — without scaling and showing background around the window, use the following parameter combination:
-resize 1920x1080 -bg none -ratio 1
- 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.
Parameter values are case-insensitive.
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.
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.
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).
“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 versions)
“Properties” item → “Compatibility” tab → “Settings” section → “Override high DPI scaling behavior. Scaling performed by” checkbox → “Application” dropdown item.
“Properties” item → “Compatibility” tab → “Settings” section → “Disable display scaling on high DPI settings” checkbox.
Perceived movement speed of mouse cursor may increase proportionally with scaling ratio.
For scaling games running as administrator, IntegerScaler should also be running as administrator.
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 DWM composition is always enabled.
Frequently asked questions (FAQ)
- Can it scale games in full-screen mode?
- No. The game to scale must be running in windowed mode. Full-screen integer scaling is possible via graphics drivers with modern graphics cards (GPUs).
- Can it scale just one display without blacking-out other displays?
- No. The only reasonable way to do this has serious performance impact that would contradict with the app’s purpose of providing the same performance as in full-screen mode, just with no blur.
- Why is game window just centered and not scaled?
- Most likely your screen resolution is not enough for integer scaling at the chosen resolution of the specific game. Both horizontal and vertical screen resolutions must be at least twice greater than the game-window size. Otherwise, the maximum integer ratio is 1.0 (100%) which is equivalent to regular centering. For example, this happens at the window size of 1280×720 (HD) and screen resolution of 1920×1080 (Full HD), because 1920 / 1280 = 1080 / 720 = 1.5. More details are in the answer to a similar question in the article about integer-ratio scaling.
- Is it open-source?
- No. The source code of the app is closed and is not a subject for opening. You might be interested in the author’s IntegerScaling library (C++/Rust/
JS/PHP) for calculations related to integer scaling.