MiSTer video mode 14 (2560×1440@60) rendered frontend through an incorrect 640×720 framebuffer, stretching the UI horizontally.
Root cause
Mode 14 stores 1280×1440 timing geometry with horizontal pixel repetition (pr=1) to produce physical 2560×1440 output.
Scale-relative fb_cmd handling divided stored horizontal and vertical dimensions uniformly. Frontend’s full-then-half probe therefore produced 640×720.
Main’s normal framebuffer configuration already accounts for pixel repetition by applying different horizontal and vertical scaling.
Expected behavior
- Mode 14 uses a
1280×720 logical framebuffer.
- Physical output remains
2560×1440.
- UI renders at exact 2× scale without horizontal stretching.
- Other pixel-repeated modes follow equivalent logical scaling.
- Non-pixel-repeated 720p, 1080p, and 1440p modes remain unchanged.
Verification
- Confirm framebuffer mode and virtual size are
1280×720.
- Verify correct aspect ratio from frontend launch.
- Verify restart and game-return behavior.
- Cover scale-relative framebuffer geometry with and without pixel repetition.
MiSTer video mode 14 (
2560×1440@60) rendered frontend through an incorrect640×720framebuffer, stretching the UI horizontally.Root cause
Mode 14 stores
1280×1440timing geometry with horizontal pixel repetition (pr=1) to produce physical2560×1440output.Scale-relative
fb_cmdhandling divided stored horizontal and vertical dimensions uniformly. Frontend’s full-then-half probe therefore produced640×720.Main’s normal framebuffer configuration already accounts for pixel repetition by applying different horizontal and vertical scaling.
Expected behavior
1280×720logical framebuffer.2560×1440.Verification
1280×720.