I don't have a FullHD monitor to check what values would fit, but I think the problem is that:
- With Hatari SDL2 auto-scaling, that scaling check is done with non-zoomed resolutions. So max resolution needs to be something between 320-416 x 200-276
- atari screen conversion functions require horizontal border sizes to be divisable by 16, so Hatari enforces that
- After that, Hatari expects both dimensions to have integer scaling before allowing nearest neighbor scaling. This is done because otherwise Hatari window contents resize results would look bad
Therefore, for my 1680x1050 monitor, I would need to use this (which leaves just insignificant amount of top/bottom, so I won't bother):
Code: Select all
--borders on --statusbar off --zoom 2 --max-width 336 --max-height 210
For your FullHD monitor, you probably need to use something like:
Code: Select all
--borders on --statusbar off --zoom 2 --max-width 384 --max-height 216
(Only 1/5th of monitor resolution divides evenly while still being in correct value range, but it leaves fairly small amount of borders.)
You can debug this by setting "DEBUG" define in src/screen.c to "1", re-compiling Hatari and seeing what it outputs when running with above options.
You should be seeing something like this:
Code: Select all
resolution limit:
resolution limit:
384 x 216
limited resolution:
1 * (32 + 320 + 32) x (8 + 200 + 8)
= 384 x 216 (+ statusbar)
SDL screen request: 384 x 216 @ 32 (fullscreen) -> window: 768 x 432
768x432 / 384x216 -> scale = 2, Render Scale Quality = 0
SDL screen granted: 384 x 216 @ 32
resolution limit:
384 x 216
limited resolution:
1 * (32 + 320 + 32) x (8 + 200 + 8)
= 384 x 216 (+ statusbar)
1920x1080 / 384x216 -> scale = 5, Render Scale Quality = 0
In above "window" size is limited to your desktop size, and render scale quality of zero means nearest pixel:
https://wiki.libsdl.org/SDL_HINT_RENDER_SCALE_QUALITY
And last line is what happens when Hatari gets info of the actual fullscreen resolution.
PS. In fullscreen (where SDL support letterboxing the other dimension), it should be enough if only the dimension closer to screen size would be evenly divisible (while that's not problem for FullHD, it's for resolutions that run afoul of second rule with rule three, like the resolution of my monitor).
Attached patch should fix do that:
Fix-SDL2-filtering-selection.patch.txt
You do not have the required permissions to view the files attached to this post.