Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fullscreen: support different display resolutions to minimise vertical borders #488
Email thread with Paul Berberich, from 23/9/2017.
Do you have any plans in the near future to make full screen mode work properly (i.e. edge to edge without black borders) in AppleWin? (re: issue #168)
See this issue (#358) which explains that we use integer scaling due to poor GDI float scaling results.
What is the resolution of your PC's screen?
And from this other issue (#280), there's this comment:
...which I assume it your point too?
I run AppleWin on a widescreen monitor at 1920x1080 resolution, which I'm guessing is typical these days. Yes I agree about the huge waste of screen real-estate.
A first improvement that might be easiest to accomplish, is to have AppleWin detect the Windows Y resolution, and expand each pixel size that AppleWin outputs to an amount that will fit the most. For example, the resolution on an Apple ][ was 192, so 5x that would be 960 with Windows Y resolution set to 1080.
What do you think? Would that be do-able in the next version?
Many thanks for your consideration,
From issue #358:
AppleWin will try to integer scale the base resolution of 560x384.
So this means:
The scaling you are after is: x2.5, ie. 1400 x 960 - which is a non-integer multiplier.
The reason why we render at 560x384 (and not 280x192) is this retains the correct aspect ratio - the Apple II video display is non-interlaced, so alternate lines are blank.
NB. All video modes render to this base 560x384 bitmap - there's no concept of a 280x192 bitmap in AppleWin. I guess that if we scaled by 0.5 then by 5 the resulting full-screen image would be terrible!
The current integer scaling is not ideal (eg. in your case). I think using DirectX/GPU to scale is the approach we need to investigate.
Currently I don't see any activity in improving this in the short term (and probably not for the next release).
Ah I see, thanks Tom!
Some displays (like mine) have a 1280x768 resolution mode. 768 is 384 x 2. Would it be possible for AppleWin to detect if this video mode is available, and if so set full-screen mode to this resolution? That would create a true full screen mode!
Of course the "windowed" mode would be unaffected - this would only be the full screen non-windowed mode, and wouldn't disrupt the normal resolution windows runs under.
Many thanks again,
Well, as a crude workaround you could manually change resolution to 1280x768, run "AppleWin.exe -f" (to start-up in fullscreen), then manually restore the resolution after exiting AppleWin.
Obviously automating this would be better.
Probably, but I'd need to check the Win32 API (or the DirectX API) to understand what is involved here.
A quick search turned up this:
I'll have a quick go and see if it will do the job.
added a commit
Sep 29, 2017
Email from Paul:
As I said above, DirectX/GPU should be the better solution, but that requires more effort/time than I'm prepared to invest in this for now.