Skip to content
RetrogamingFix Published Updated 5 min readViews unavailable

Fixing Stretched or Wrong Aspect Ratio in Emulators

Diagnose stretched retro games by separating core geometry, pixel aspect ratio, integer scaling, overscan, and saved display overrides.

Stretched, squashed, or unusually narrow graphics usually indicate a disagreement between content geometry, pixel aspect ratio, and the frontend’s final viewport. It is tempting to divide the emulated resolution and declare that number correct, but many consoles generated signals for televisions rather than grids of square pixels. A 256×224 framebuffer, for example, has a raw ratio near 8:7 while its intended television presentation may be closer to 4:3.

The safest repair is reversible: document the current settings, establish a clean baseline, change one layer at a time, and save an override only after multiple scenes look correct.

Step 1: identify what is actually distorted

Use a scene containing a known circle, square, character portrait, or UI frame. Do not judge only from whether the image fills the monitor. Correct 4:3 material on a 16:9 panel normally has vertical side bars; removing those bars by stretching necessarily changes geometry.

Also distinguish three symptoms:

  • Proportions wrong: circles become ovals and characters are too wide or thin.
  • Correct proportions with borders: likely normal letterboxing or integer-scale unused space.
  • Edges missing: likely overscan cropping, not aspect-ratio stretching.

Take a screenshot before changing anything. It gives you a comparison and captures whether a bezel, overlay, shader, or custom viewport was active.

Step 2: return RetroArch to the core-provided baseline

In current RetroArch menu layouts, start here:

Settings → Video → Scaling → Aspect Ratio → Core Provided

“Core Provided” asks the loaded core for its preferred geometry. It is a sensible diagnostic default, not an infallible universal answer. Some cores expose an additional region or aspect option under Quick Menu → Core Options; Snes9x, for example, offers 4:3, uncorrected, NTSC, PAL, and automatic choices while expecting RetroArch itself to remain on Core Provided.

Close and reload the content if the core documentation says an option requires restart. Then compare a known shape again. Do not save an override yet.

Step 3: remove hidden per-game and per-core state

If one game remains wrong while others using the same core are correct, inspect:

Quick Menu → Overrides
Quick Menu → Core Options → Manage Core Options
Quick Menu → Shaders

Overrides can make a local value supersede the global configuration. Core option files and shader presets can also be stored per content, directory, or core. Record which files exist before removing or renaming anything; deleting an entire configuration tree is unnecessary and can destroy unrelated mappings.

For a controlled test, unload overlays and shaders and use the plain viewport. Bezel presets frequently reserve a fixed opening, while CRT shaders may expect a particular source geometry. If the plain image is correct, restore those layers one at a time.

Step 4: treat integer scaling as a separate decision

Integer scaling enlarges source pixels by whole-number multiples. It can improve pixel consistency, but a modern screen rarely divides evenly into both the desired width and height. The expected result can be extra border space or a slightly smaller image—not distorted geometry.

Settings → Video → Scaling → Integer Scale

Test it off to diagnose aspect ratio, then enable it if crisp, evenly sized pixels are the priority. Do not compensate for the resulting borders by selecting “Full”; that defeats the geometry you just preserved. Depending on RetroArch version and platform, integer scaling may offer axis or overscale behaviors, so consult the labels shown in the installed build rather than copying a configuration value blindly.

Step 5: check region, overscan, and widescreen hacks

PAL and NTSC variants can expose different visible line counts and timing. A core’s “crop overscan” option removes areas that a CRT bezel often concealed; it should not be used to correct wide or narrow objects. Toggle cropping only while inspecting whether the problem is missing edges.

Disable widescreen hacks during diagnosis. Such hacks intentionally alter projection, viewport, or geometry and can conflict with a frontend forced to 4:3. Likewise, a game’s genuine widescreen mode should not be forced back into 4:3 merely because the underlying console is usually associated with that ratio.

Step 6: use a custom viewport only when measured

Custom X, Y, width, and height values are appropriate for calibrated cabinet openings, capture workflows, or a specific shader chain. They are a poor first-line fix because one typo can crop or stretch every game inheriting the configuration.

Settings → Video → Scaling → Aspect Ratio → Custom
Settings → Video → Scaling → Custom Aspect Ratio

If custom geometry is required, calculate the target viewport, center it, and verify it at the exact fullscreen or window resolution used in practice. Save the narrowest applicable override—content rather than core, or core rather than global—so an exceptional title does not affect unrelated systems.

Step 7: verify rather than choosing whichever fills the screen

Test a static geometric reference, gameplay in motion, menus, and a second title. Capture the final output and note the core version, region, aspect option, integer-scale state, crop setting, shader, and display resolution. That record makes the result reproducible after an update.

There is room for preference: square-pixel output can be desirable for pixel art analysis, while 4:3 presentation can better approximate a television-era composition. Label the choice honestly. “Historically intended display geometry” and “unmodified square source pixels” are different valid targets; neither should be confused with accidental 16:9 stretching.

If the problem survives a clean baseline

Confirm the core actually reports geometry by testing another core for the same system, without changing the content file. If only one core or one version fails, capture a verbose log and a before/after screenshot for its issue tracker. Include the exact content revision without distributing copyrighted game data.

Avoid downloading replacement ROMs, shader packs, or prebuilt configuration bundles from random sites. Aspect ratio is configuration metadata; replacing content rarely repairs it and introduces provenance and malware risks.

Related:

Sources:

Comments