UPDATE 02/10: Sorg has added 5x modes AND a screen shift to many of the cores!!!!! Please check out the rest of this post to see why that’s so amazing for console gamers using 1080p or 4K TV’s! Just update your MiSTer the normal way and check the settings listed at the bottom of this post for more details. And once again, please consider signing up for Sorg’s Patreon! Here’s a demo: https://twitter.com/RetroRGB/status/1359542030804914179
Sorg has just posted a NES core to allow his Patreon followers to text an experimental 1080p 5x mode. I’ll soon have a video out that describes why 5x mode is so important and how it might be the best way to experience retro consoles on flat-panels, but I’ll try and give a short summary below.
NES 5x Test rbf: https://www.patreon.com/posts/nes-test-version-47314468
All classic consoles were designed to be used on CRT’s and all consumer-grade TV’s had “overscan” areas: Parts of the screen on all sides that weren’t visible to the user, as they were outside of the viewable range. As a result, almost all classic games were designed with this in mind and developers almost never put anything “important” in those areas…and in fact, there was often “interference” in the overscan areas, for some pretty interesting reasons.
So, why does this matter?
When we scale the video from classic consoles, it’s often done in nearest-neighbor, or “integer” scaling to retain the sharpness of the original. Even though we often use the term “240p” to describe the vertical resolution of retro games, it’s often less and commonly 224 pixels high. Scaled 3x to a 720p resolution, that would equal 672 pixels high, leaving 48 pixels black; 24 on top and 24 on the bottom. Scaling to 1080p 4x results in 896 pixels high, which leaves 184 pixels unused!
Now, you can use non-integer scaling to fill the screen and still get a great look. MiSTer does this now, as well as other scalers for original hardware. You can notice a sharpness difference though and scanlines (at least currently) won’t line up properly.
So why not scale the image 5x? For your average SNES or Genesis game, that’ll make the vertical height 1120, which means 20 pixels will need to but cut off from the top and bottom of the screen. This might not be a big deal anyway (more on that in a sec), but the NES (as well as SMS’) visible area is often much less than 16-bit games. Check out what happens when the new “vertical crop” feature is toggled and the image is zoomed (click for full-size):
As you can see, nothing important is cut off at all. On top of that, the “zoom” to 5x fills a lot more of the horizontal resolution, without “stretching” of any kind; The pixels are still razor sharp and there’s no shimmering when scrolling.
I’m not done yet though! Here’s an example of SNES 1080p 4x vs 5x on the OSSC:
As you can see, the very bottom of the “doorway” is almost cut off, but it won’t affect gameplay at all. However, here’s a 1:1 capture that’s been manually scaled to 1080p 5x (with 6x horizontal) and shifted slightly up:
As you can see, the entire bottom of the screen is now visible and the only information “lost” is the blank area above the HUD on the top of the screen. I’d be perfectly fine with the standard cutoff shown in the previous picture – and I distinctly remember having things like doorways cut off when using cheap CRT’s of the 80’s and 90’s – but the ability to shift the image completely solves this. If fact, Markus already offers something like this with his CPSHDMI kits and it works out perfectly. Now, I need to be clear that I’m nowhere near smart enough to understand how the scaling works in these cores and shifting the image might require a totally different set of code than it would in a basic scaler…it’s just my wishful thinking.
So, my plea is this: I think the MiSTer project should allow 1080p 5x integer scaling on all cores, with the ability to shift the image up and down to compensate for any cutoff for that particular game. Since the MiSTer can already remember controller config per game, adding the vertical position per game seems possible as well.
What’s the downside to this? #1, most important downside: It creates more work for the MiSTer dev’s, who already donate enough of their time to provide us with this awesomeness. Much less important: You’ll have the same issues with scanlines not lining up properly as you do with 1080p 4.5x modes. And…that’s pretty much it. There’s some ideas floating around to fix the scanline issues anyway for both solutions, but that’s a conversation for another time.
If you need more proof than this to convince you that 1080p 5x is the right way to go in most cases, I’ll have at least one video coming up that shows many difference scenarios and why they all work better in 5x, even with some cutoff. Heck, I might even dedicate a video just to 5x, if people feel it’s necessary!
If you’d like to try the beta core, sign up for Sorg’s Patreon, then just make sure the following conditions are met:
- Resolution is 1920×1080.
- vscale_border isn’t used (or vscale_border=0) in MiSTer.ini
- vscale_mode isn’t used (or vscale_mode=0) in MiSTer.ini
- forced_scandoubler=0 in MiSTer.ini
- In OSD menu Scandoubler Fx: None