Make widescreen modes exclusive and keep presentation nearest - #7
Merged
Conversation
Zection6V
marked this pull request as ready for review
August 17, 2026 11:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch keeps the two MPH widescreen implementations separately selectable in the launcher, but they are now mutually exclusive, and it also fixes the framebuffer blur found while validating HD Rendering / Supersampling.
Widescreen controls
The launcher exposes:
Game Aspect Ratio Patchdefaults OFF, so the normal widescreen baseline remains the original Recomp host path.The launcher now behaves like a two-choice radio group:
Mutual exclusion is enforced in three places:
mods.inifiles containing bothtrueare normalized while loading;Guest-side writes remain fail-closed: only an authoritative supported MPH executable checksum can enable the projection/culling patch. Header-only fallback does not authorize it.
Supersampling / bottom-screen blur fix
The pinned frontend historically selected SDL linear framebuffer scaling whenever Supersampling > 1 or AA > 0:
After the HD direct presenter landed, the top screen can bypass SDL and remain crisp through OpenGL while the bottom screen still goes through SDL RenderCopy, explaining the observed crisp top / blurry bottom case. Without direct top presentation, both screens can be blurred.
This branch now:
SDL_HINT_RENDER_SCALE_QUALITYto nearest with override priority;SDL_ScaleModeNearest;SDL_ScaleModeNearest;GL_NEAREST.The xBR-lv2 Texture upscaling option remains a separate explicit HD Rendering feature. It is not used for final framebuffer/window scaling.
Validation
The host-only / guest-only widescreen paths and nearest-only presentation behavior were visually tested with MPH before the mutual-exclusion policy was added.
Code validation at
50271f43a4d0be9fe4c02a87c278bec80f4a4a47:The latest head only adds documentation after that validated code state; its CI rerun is expected to be equivalent. PR remains draft until intentionally promoted.