Skip to content

Respect display pixel proportions in widescreen and guard Linux picker fallback - #41

Merged
mstan merged 2 commits into
mainfrom
codex/mmx-bug-burndown
Sep 20, 2026
Merged

mstan merged 2 commits into
mainfrom
codex/mmx-bug-burndown

Conversation

@mstan

@mstan mstan commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Widescreen used a fixed CRT pixel shape even when Display Aspect selected square pixels or a square frame. Fit to screen and fixed widescreen ratios now choose the visible stage width using the selected pixel proportions. For example, fit to a 16:9 window uses 398 logical columns with 8:7 square pixels, versus 342 with CRT proportions. The existing renderer limit remains; bounded views box instead of stretching sprites.

Fixes #39.

The Linux packaging step now exercises both kdialog and zenity for selection, cancellation, backend failure, and loader failure, plus systems with no picker. It verifies fallback decisions and sanitized subprocess environments without opening desktop dialogs. This guards the #38 fixes already shipped in v1.6.1. Shared engine/UI pins remain at the versions released on current main.

Validation:

  • Fresh Windows Release build and all 4 CTests passed. The aspect fix also passed ROM-backed state/replay checks and live captures across the three Display Aspect modes; the owner verified 8:7 with fit to screen in a window.
  • The published v1.6.1 Windows ZIP and Linux AppImage matched their GitHub SHA-256 hashes.
  • Windows release: repeated relative and absolute ROM-path launches preserved the ROM hash and cache, emitted no default Tier 2 JSON, and did not copy the ROM to the install root. Moving the installation retained the relative ROM path, including launches from an unrelated working directory (Tons of Tier 2 JSON files. #36/Rom Path issues #37).
  • Linux release under WSL/Xvfb: the actual built-in browser selected and verified a ROM with missing desktop pickers and simulated KDE picker failures. Fullscreen and adaptive VSync edited in the UI survived Quit and relaunch (Unable to load ROM on Linux #38/Fullscreen and V-sync settings not saving #40).
  • Existing AppImage layout test and all 9 packaged picker cases passed. Shell syntax and diff checks passed. Arch/KDE itself was not available for testing.

@mstan
mstan merged commit 3f32f5c into main Sep 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Widescreen not reflecting Display Aspect

1 participant