Key-controlled Magnify ReShade Shader

Download ControlledMagnify.fx

This as an alternate method from the built-in Windows Magnifier of magnifying the screen to read small text and the like when playing a Windows game. It is in the form of a ReShade shader that can be controlled via keyboard input (and by extension, gamepad input via many utilities that map gamepad buttons to keyboard keys). It is modeled after the magnifier used by consoles like the Nintendo Switch and PS5, meaning it magnifies the entire screen (window) at once and can be zoomed in and out and panned around.

Why would you need this method instead of just using Windows Magnifier? The problem with using the Windows Magnifier is that it is mouse-cursor focused. If you are playing a game using a controller, or if the game responds to mouse movement by shifting your game camera around instead of moving a cursor, then it can be difficult to magnify the specific portion of the screen you need help reading. This method ignores the mouse entirely, instead being controlled by buttons. When played in a window, it also only affects the game itself, rather than your entire desktop. Finally, many games won't work with the Windows Magnifier in full-screen mode, or crash or exhibit other strange behaviour, yet will work fine with this method.

The downside is this requires more initial setup than just using Windows Magnifier:

  1. You'll need to install ReShade for each individual game you want to magnify, and set ReShade's settings for that game to find and use this shader.

  2. You may need to configure the keys the shader uses to be ones that aren't used by the game, so it won't interfere with gameplay while manipulating it (because ReShade doesn't prevent the input checked by shaders from passing through to the game). The keys are mapped via keycodes set under the "Preprocessor definitions" section of the shader configuration options in the ReShade UI. ReShade sadly doesn't provide a more convenient method for configuring specific keys for use by shaders. This means you'll need to look up what keycode number each key you want to map to actually is. By default, the shader uses the numpad keys (+ and - for zoom in/out, 5 for toggling it on or off, and 2/4/6/8 to adjust its position) since those are rarely used by modern games, but that does mean you'll need to make sure NumLock is turned on to use them.

  3. You'll likely need to use a key remapper like ReWASD, XPadder, joy2key, DS4Windows, or Steam to create button combinations on your controller that map to the keys you've set to control the magnifier. For example, I use DS4Windows and set PS+Square as a "Special Action" on my DualShock 4 controller to switch to a Magnify profile which has the controller buttons mapped to the numpad keys. Then I can press PS+Square again to return to my default profile.

Keep in mind that the speed of panning and zoom is based on the framerate of the game, since the input is checked and responded to every render frame. This is why the movement and zoom speeds can be adjusted per-game via the ReShade UI. You'll likely want to use a frame limiter or VSync setting for games to avoid inconsistent movement of the magnifier.

If you aren't familiar with ReShade, it is a generic post-processing injector for games that basically runs shaders on the final image after the game is done rendering it, that modify said image before it is copied to your screen. This means it is generally not flagged by anti-cheat software because it can't be used to see through walls or whatever, since it runs only after everything in the game has already drawn. It's kind of like the Steam overlay, but mostly intended to enhance game images in some way like adding ambient occlusion or anti-aliasing. You have to place certain files in the same directory as each individual game's .exe file you want to use it with, but it doesn't directly modify the game's files in any way.

The simplest way to use this magnifier is to run ReShade's setup.exe, point it at the game you want to magnify, and install just the basic effects. Then navigate to that game's folder and put a copy of ControlledMagnify.fx into the reshade-shaders\Shaders folder that should now be there. Then run the game, press the "Home" key on your keyboard to bring up ReShade's UI, turn on this effect and configure it as needed for that game. You can set the key codes you want in the ReShade UI, or feel free to edit them directly in the ControlledMagnify.fx file (it can be edited with notepad as it is just a plain text format). There are fancier ways of setting it all up though if you are regular user of ReShade.

Feel free to use and modify this shader however you want, as I am releasing it into the public domain under the CC0 license in hopes it will help others like me that struggle reading tiny fonts in a lot of games these days, especially when my PC is hooked to my TV and I'm playing using a gamepad.

Download ControlledMagnify.fx