Display pixel art or a low-resolution game with crisp enlarged pixels

Enlarge a sharp pixel-art source without smoothing its edges. You will first test a known 2× enlargement, then compare a fractional size. BetterDisplay’s Integer Scaling uses nearest-neighbor sampling to preserve hard edges. Choose source and output sizes with a whole-number ratio so each source pixel becomes an equal-sized block.

Before you begin

Check the feature requirements below before starting. This setup adds a virtual screen and a stream. It does not change a game’s renderer or enable a graphics-driver feature.

Choose the source and output sizes

  1. Open Settings > Displays > Overview > Create New Virtual Screen…. Choose Pre-configured settings (recommended) and 16:9 - HD/4K/5K/6K, then Create Virtual Screen. This creates a disconnected definition. Leave Match aspect ratio of and associate to a display unused and all Associated Displays selections off.
  2. Identify the new definition in the display list. If available, set a distinctive Virtual screen name while it is disconnected. Turn on Connect this virtual screen and wait for a real connected source. Check that the existing displays, main display and arrangement remain usable before continuing.
  3. Open App Menu > [new virtual source] > Virtual Screen Mode. Select an actually offered 1920 × 1080 LoDPI mode. Do not select its HiDPI counterpart: a 1920 × 1080 logical HiDPI source can contain 3840 × 2160 backing pixels.
  4. Open Settings > Displays > [new virtual source] > Display Information…. Under Current Display Mode, verify Logical width/Logical height and Pixel width/Pixel height are both 1920 × 1080. Check the receiver’s information too: its pixel dimensions must be 3840 × 2160, with the physical panel actually using that native output without an additional scaling stage. Select only a supported receiver mode through App Menu > [receiver] > Display Mode if a change is needed.

The steps use a 1920 × 1080 source and a 3840 × 2160 receiver. The screenshots use 2560 × 1440 and 5120 × 2880 instead. Both combinations give a 2× enlargement in each direction.

Guide Pixels reports 2560 by 1440 for both logical and pixel dimensions, with HiDPI set to No.

Check the source’s pixel dimensions as well as its logical size before calculating the enlargement.

The receiver’s logical desktop may be 1920 × 1080 HiDPI or 3840 × 2160 LoDPI. The important comparison is the captured source pixels against the final panel pixels, with no later resampling. The example gives 3840 ÷ 1920 = 2 horizontally and 2160 ÷ 1080 = 2 vertically: each source pixel can occupy a 2 × 2 panel block. A logical-size label alone does not establish that result.

Prepare a sharp source image

  1. Open the test image in Preview. Use the toolbar’s Info button to check its pixel dimensions in the Inspector. See Apple’s image-information instructions. Do not resize or edit the image for this test.
  2. Note Preview’s current image-scale preference so you can restore it later. Open Preview > Settings > Images. For Define 100% scale as, choose 1 image pixel equals 1 screen point. Then choose View > Actual Size in the image window. These are Preview’s scale definition and viewing-size commands. Use the actual choices offered on your macOS version.
  3. Move that original window onto the new LoDPI source using the real display arrangement. Keep the whole image visible without changing its scale. On this verified LoDPI source, one screen point corresponds to one captured pixel. Confirm the test image has crisp single-pixel edges before enlargement. On a HiDPI source, Preview’s screen-point definition would not mean one captured or panel pixel.

Enlarge with nearest-neighbor sampling

  1. Open the attached App Menu > [new virtual source] > Stream Virtual Screen. Find that source’s original/default entry. Only it offers Add Stream Configuration. Add one fresh configuration, wait for the entry to appear and record its actual numbered label. Preserve any default or existing additional configurations.
  2. While this new entry is stopped, leave Full Screen Window Mode, Resume Stream on Connect and Show on Lock Screen off. Leave Prevent Cursor Entering off if shown. Option or Shift exposes advanced rows. Keep recovery visible.
  3. Turn on Integer Scaling. It is off by default. Keep 1:1 Pixel Mapping and Free Aspect Ratio off. Keep Video Filters off with no enabled custom filters, Enable Cropping off, and no flip or rotation. Leave alignment centered and Zoom, Underscan and Alpha at 100%.
  4. Keep the initial Target FPS of Unlimited. Select the actual connected physical receiver in this new stream’s target list. Choose a different display from the source and one that is not a mirror target. Wait for an actual image and for pending display/menu changes to settle.

The virtual stream has Integer Scaling on, with 1:1 Pixel Mapping, Free Aspect Ratio, Video Filters and cropping off.

Integer Scaling selects nearest-neighbor sampling. Source and output dimensions determine whether the enlargement is a whole number.

The ordinary borderless overlay fills the receiver. Operate the original source window, keeping the independent physical desktop available. A stream can transfer the main display when its receiver was main. Check which display is main after starting. 1:1 Pixel Mapping uses logical dimensions, so it is not a shortcut to one physical panel pixel per captured pixel.

Check the result

  1. Look at the actual receiver. On the unchanged test image, single-pixel lines should become equally wide two-pixel blocks in both directions under the verified 2× conditions. Confirm the complete source fits without cropping, stretching or an unexpected border. A screenshot or an enabled setting alone does not prove the panel’s final sampling.
  2. In the same new stream entry, temporarily set Zoom to 75%, keeping Integer Scaling on and every other choice fixed. With the verified full-fit 2× setup, the centered image becomes 2880 × 1620 panel pixels: 1.5× in each direction. Nearest-neighbor sampling can keep edges hard while distributing unequal one- and two-pixel blocks. The surrounding receiver background is expected.
  3. Restore Zoom to 100%, let the geometry settle, and check the equal blocks again. If the actual dimensions or later scaling differ, the numerical comparison does not apply. Check them before comparing pixel blocks.

A sharp block test image in native Preview on the 2560 by 1440 LoDPI source, streamed to the separate 5120 by 2880 XDR output.

The whole XDR output shows the source at a 2× enlargement with Integer Scaling enabled. This still does not measure panel sampling or performance.

For a movable PIP instead, Integer Scaling uses the same sampling choice, but window dimensions and later backing scale still determine the ratio. Snap to 25% Steps only helps a nearby resize snap to a percentage. It does not lock a whole-number panel enlargement. See the PIP reference before changing that separate workflow.

Try a compatible game after the image test

Stop the stream and let pending changes finish before replacing the test image with a game. Note the game’s current resolution, display, window/full-screen and graphics settings. Select the actual virtual source and a supported low-resolution mode that gives a whole-number ratio to the receiver. Begin windowed if possible. Restart this stream and inspect the actual game output.

A game can blur its own scene before capture, refuse a virtual display or exclusive full-screen capture, or produce protected content that cannot be captured. Nearest-neighbor sampling cannot recover detail already smoothed by the game. Test movement and input responsiveness. A virtual refresh-rate selection or Target FPS request does not establish delivered game frames, latency or stability.

Troubleshooting

Stop and remove the setup

  1. Turn Resume Stream on Connect off. Let pending capture and display changes finish, then choose Stop Streaming and check that the stream is inactive.
  2. While the virtual source remains connected, restore any changed game settings and move the original image/game windows back to a visible physical desktop. Restore Preview’s original scale definition and document viewing scale. Keep the file itself unchanged.
  3. After pending menu work has finished and the stream is stopped, choose Remove Stream Configuration only in the new additional entry. Removal finishes after the menu closes. Wait until that entry is actually gone. Preserve every original default/additional stream and PIP.
  4. Open Settings > Displays > [new virtual source] > Discard…, then Discard Virtual Screen. Discard only the new definition. You do not need Discard & Remove Color Profile. Turning off Connect this virtual screen instead disconnects it while retaining the definition.
  5. Choose your preferred physical-display mode, main display and arrangement. Re-enable any rules you paused if you still use them. Restore the virtual-screen reconnect option if you want that behavior for other sources.

Additional information

This section explains feature availability and platform requirements.

Features requiring Pro license

Streaming and the Integer Scaling, mapping, geometry, filter and capture preferences used here require Pro or an active app trial. Basic virtual-screen creation and connection are available without Pro. Custom virtual configuration and naming require Pro. PIP and its sizing/sampling preferences require Pro if you choose that separate alternative. Stopping and removing an additional stream remain available for cleanup.

Platform compatibility

The documented app requires macOS 26.3 or later. The source mode, capture permissions, compatible app and actual receiver output must all be available on your Mac. The ordinary SDR virtual-screen, streaming and Integer Scaling features described here are available on both Apple silicon and Intel Macs, subject to actual supported modes, capture and receiver output. The first-connection layout-restoration behavior described above differs on Apple silicon. Game compatibility, final physical-pixel mapping and performance remain dependent on the actual setup.