Re: [hatari-devel] Hatari screen options (was: Hatari manual.html) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Hi,
On tiistai 25 helmikuu 2014, David Savinkoff wrote:
> Previously, I had made the comments (below) and mentioned
> that Hatari regressed. Hatari probably has not regressed.
>
> I believe that I would get the same results if I used
> the same method to discover video modes as I did with
> my CRT monitor years ago.
>
> The reason is that Hatari requests and gets the 416
> when providing 416x276 or 416x288 etc.
> Then the monitor then selects the best it can do.
> (416x312 for CRT // 416x312 scaled to 832x624 for LCD)
>
> When requesting 400x300:
>
> resolution limit:
> 400 x 300
> limited resolution:
> 1 * (32 + 320 + 32) x (29 + 200 + 47)
> = 384 x 276 (+ statusbar)
> SDL screen request: 384 x 276 @ 0 (windowed)
> SDL screen granted: 384 x 276 @ 32
Above shows that Hatari does what it's supposed to do:
- screen.c asks resolution.c for smallest resolution
where max ST screen size fits
- resolution.c checks that, and if user's max size is
smaller (or no suitable resolution was found), returns
user's max size instead
- screen.c selects zoom level and border sizes that
fit into that size
- screen.c requests frame buffer of that size from
SDL, and based on above output, gets it
SDL will then select suitable resolution for that frame-
buffer and center the framebuffer to that resolution [1].
What it selects, is resolution equal, or next up from size
Hatari requested for framebuffer. If no user max size is
specified, SDL selected resolution is same as reported limit.
[1] With earlier SDL versions Hatari needs to do the padding
/ centering itself, newer SDL versions do it for Hatari.
The purpose of what Hatari does is avoid Hatari aborting
because it asked for too large (non-existing) resolution.
Purpose of user specified max size is to help in that,
and limiting Hatari window size in windowed mode
(very useful for Falcon mode).
> Then the monitor then selects the best it can do.
> (400x300 for CRT // 400x300 scaled to 800x600 for LCD)
So this is what you actually wanted?
> It looks like Hatari could be improved though.
> Hatari should be primed with standard video modes so
> that it can make smarter requests.
Smarter how?
> My suggestion is
> to prime Hatari with the xrandr results that I gave
> for my LCD monitor (unless you can find a more
> inclusive list). Note that the important video modes
> are the low resolution modes, or multiples thereof.
Hatari uses SDL, not Xrand. SDL is portable, Xrandr not.
- Eero
> (below)
> **** EXHIBIT (1) *************************************
> I asked for 416x312 and got 416x276 because
> Hatari has regressed from when I tested years ago on
> my CRT monitor (by laboriously incrementing through
> sequential numbers with the Hatari SDL GUI to observe
> video modes. Notably, being able to see when 400x300
> and 416x312 popped up).
>
> Hatari used to provide the resolution requested with
> the status bar disabled. Now the user-requested
> resolution is ignored and replaced with something else.
>
> I did not notice because the visual impact is insidious.
>
> ******************************************************
> !!! SURPRISE !!!
>
> I ask for 416x312
> Hatari requests:
> SDL screen request: 416 x 276 @ 0 (windowed)
> SDL screen granted: 416 x 276 @ 32
> I say WRONG and WRONG
> Monitor says (on screen independently):
> 832x624
> I get a full screen at 416x312 (see xrandr below)
> *******************************************************
>
> $ xrandr
> SZ: Pixels Physical Refresh
> *0 1280 x 1024 ( 361mm x 292mm ) *60
> 1 1280 x 960 ( 361mm x 292mm ) 60
> 2 1280 x 800 ( 361mm x 292mm ) 75 70 60
> 3 1280 x 768 ( 361mm x 292mm ) 85 75 70 60
> 4 1280 x 720 ( 361mm x 292mm ) 85 75 70 60
> 5 1152 x 864 ( 361mm x 292mm ) 75 70 60
> 6 1024 x 768 ( 361mm x 292mm ) 75 70 60 85
> 7 832 x 624 ( 361mm x 292mm ) 75
> 8 800 x 600 ( 361mm x 292mm ) 75 72 60 56 85
> 9 720 x 400 ( 361mm x 292mm ) 70 85
> 10 640 x 480 ( 361mm x 292mm ) 75 73 67 60 85
> 11 640 x 400 ( 361mm x 292mm ) 85
> 12 640 x 350 ( 361mm x 292mm ) 85
> 13 640 x 360 ( 361mm x 292mm ) 85 75 70 60
> 14 416 x 312 ( 361mm x 292mm ) 75
> 15 400 x 300 ( 361mm x 292mm ) 85 75 72 60 56
> 16 320 x 240 ( 361mm x 292mm ) 85 75 73 60
> 17 360 x 200 ( 361mm x 292mm ) 85
> 18 320 x 200 ( 361mm x 292mm ) 85
> 19 320 x 175 ( 361mm x 292mm ) 85
> Current rotation - normal
> Current reflection - none
> Rotations possible - normal
> Reflections possible - none
>
> xrandr output looks very reasonable. Resolutions
> 416x312 and less appear undocumented for the LCD
> monitor. Maybe the R100 [Radeon 7200 / All-In-Wonder]
> video card does something.
>
> Sincerely,
> David Savinkoff