Skip to content

Image distortion when using ScaleFX9 filter in fullscreen (Ymir emulator, 4K display, DPI scaling disabled) #226

@Curioso9998

Description

@Curioso9998

🧩 Description

When using ShaderGlass together with the Ymir emulator (Saturn core) in fullscreen mode, applying the ScaleFX9 shader causes a noticeable geometric distortion of the image — particularly visible on 2D games such as Marvel vs. Street Fighter for Sega Saturn.

This distortion does not occur when using the same shader (scalefx-9x.slangp) in RetroArch, which produces a perfectly rectangular and proportionally correct image.

I am using:

Emulator: Ymir (latest build)

Game: Marvel vs Street Fighter (Sega Saturn)

Shader: scalefx-9x.slangp

Pixel size: 9x (matches my 4K display resolution)

Display mode: Fullscreen

Windows DPI scaling: Disabled for Ymir executable (to avoid scaling conflicts)

🧠 Expected behavior

The shader should upscale the image cleanly (as in RetroArch), maintaining the correct 4:3 aspect ratio without any curvature, barrel, or edge distortion.

⚙️ Actual behavior

When applied through ShaderGlass:

The image becomes slightly warped or “barrel-shaped.”

Vertical and horizontal lines no longer align straight.

This persists regardless of aspect ratio settings in ShaderGlass.

🧪 Steps to reproduce

Run Ymir emulator in fullscreen mode.

Open ShaderGlass overlay.

Load the shader scalefx-9x.slangp.

Set pixel size to 9x.

Disable DPI scaling on the Ymir executable.

Observe distortion in 2D elements (e.g., character select screen in Marvel vs Street Fighter).

✅ Proposed solutions

Add an option to disable all geometry warping in ShaderGlass, ensuring pixel-perfect scaling for shaders that do not require curvature.

Improve scaling alignment when system DPI scaling is disabled, to match RetroArch behavior.

Add a “Flat Output Mode” toggle that forces 1:1 rectangular projection for 2D content.

Optional debug overlay showing active aspect ratio and warp values to help users verify geometric correctness.

💬 Additional notes

This issue seems limited to how ShaderGlass interprets the projection or geometry pass in fullscreen mode on 4K monitors with custom DPI settings.
The same shader file, when loaded in RetroArch, behaves correctly without any modification.

❤️ Appreciation

Thank you very much for your amazing work on ShaderGlass — it’s an invaluable tool for upscaling and applying modern shaders to emulators like Ymir.
I really appreciate the effort that goes into keeping it compatible with multiple backends and would be glad to help test any fixes or beta builds for this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions