Closed thrust26 closed 4 years ago
As mentioned before, this basically comes down to sizing the window to the destination rectangle, instead of the other way around. And of course, using only integer zoom levels instead of floats. if it's done correctly, then it needn't be restricted to only 2x zoom; it would actually work for any zoom level 2x or above.
I don't want to get into a 1x mode though. It just brings up too many other issues.
Maybe we can also take the opportunity to refactor FrameBuffer::VideoMode
stuff here, since it has gotten a little complicated.
1x is not required by Nathan, so 2x should be fine.
What are your ideas about FrameBuffer::VideoMode
?
What are your ideas about
FrameBuffer::VideoMode
?
I don't recall right now; you were the one that originally said the code was too complicated :)
Actually I wonder why we even need these modes. Couldn't we just define them on-the-fly?
IMO the FrameBuffer
class itself has become quite complex.
Yep, maybe that's what it was; just calculating on the fly rather than pre-calculating all the options. It's not like it takes a lot of time to do it for each mode change, so there's really no need to pre-allocate.
FrameBuffer has become complicated because of constantly adding new features. I think it could be refactored a little better.
This is basically the same as https://github.com/stella-emu/stella/issues/669, so I'm going to close that one and redirect all discussion here.
I still don't really understand what the result of this should be. Just the raw TIA output, without scaling to 4:3?
The following are not exact numbers, but should be enough to explain what's going on and what's required:
What is needed is as follows:
Note that the only difference is window size. If we create a 4:3 window and scale our framebuffer to that, we get a 4:3, aspect-corrected ratio. If we instead create a window the same integer-scaled size as the TIA output, we effectively disable aspect ratio correction.
Really want to get this one done for 6.3 too, if possible.
Implemented behind a command line flag -plain-video 1
. This will disable all non-integer scaling and all post-processing. Window width and height are set to the TIA output dimensions, with the width scaled by an integer factor of two.
This option should disable aspect ratio correction. Probably only available via command line because it is required for a very special case.
https://atariage.com/forums/topic/307760-stella-62-released/?do=findComment&comment=4590628