Adding more to the "forced_scandoubler" option

For topics which do not fit in other specific forums.
User avatar
Malan
Posts: 53
Joined: Sun Dec 27, 2020 5:58 pm
Has thanked: 11 times
Been thanked: 8 times

Adding more to the "forced_scandoubler" option

Unread post by Malan »

I play a lot on a CRT VGA monitor, I really like the sharpness of the image compared to a standard CRT TV.
As you probably know, there are two ways to play on a CRT using the analog output in the mister.ini file: using either "forced_scandoubler=1" or "vga_scaler=1".

I prefer the scandoubler option, I find it way more accurate because everything is timed and scaled as intended with only a x2 multiplier applied. You don't have to deal with ratio, scaling, buffering etc... as you have to do with the vga_scaler option. Plus, you can still use the HDMI as a secondary output as the definition you want (1080p for streaming for example).

However, I find myself stuck for the Gameboy core, because the image is just too small for my screen (well, not that small compared to the real Gameboy, but anyway) and I wish I could do a x3 or even x4 to really enjoy it.

PC CRTs support many definitions and can be adjusted easily, but at only 480p, I'm at 100% and it's not enough for this core.

Here's some pictures to show you what I mean:

2021-03-04_20-54-14.png
2021-03-04_20-54-14.png (1.14 MiB) Viewed 3119 times

Above, the Mega Drive core match the screen at 100% but the Gameboy core below is far from the egdes.

2021-03-04_20-53-28.png
2021-03-04_20-53-28.png (640.46 KiB) Viewed 3119 times

A x3 or x4 for the forced_scandoubler option would allow the image to be zoomed in/out, but I don't know if that's possible or if there's any technical issues that could occur.

What do you think? Could it happens?
User avatar
mapf
Posts: 164
Joined: Mon Aug 31, 2020 8:05 pm
Has thanked: 58 times
Been thanked: 56 times

Re: Adding more to the "forced_scandoubler" option

Unread post by mapf »

As a fellow VGA crt user, I can say that for cores that did not originally output to a CRT, I use the vga_scaler option in combination with a resolution that allows (or is very close to) vertical integer scaling.

This also allows the use of external filters, and the "LCD" ones are a good fit for the gameboy.
Blitzwing
Posts: 103
Joined: Sat Sep 05, 2020 9:52 pm
Has thanked: 11 times
Been thanked: 24 times

Re: Adding more to the "forced_scandoubler" option

Unread post by Blitzwing »

From the stand point of many XGA or better CRT monitors from after the early 2000's a 3x option would work as that is 960x720@60 44.6khz a 4x option should also work as that is 1280x960@60hz 59.6khz.

From the FPGA side I'm guessing it will require a somewhat significant rewrite of not just the scandoubler but also the individual cores. The biggest question mark would be giving over a more logic towards 4x compatibility that could be better used for making cores. Cores like Ao486 are already pushing 80% ALM usage and the ps1 core is upcoming. (but I can't speak much on this point, the devs would do a better job)

I suppose really does it need it when the scaler does a pretty good job already? On my CRT I've got GB and GBA set up quite nicely with the scaler.
Kaeril
Posts: 6
Joined: Thu Nov 26, 2020 3:27 pm

Re: Adding more to the "forced_scandoubler" option

Unread post by Kaeril »

mapf wrote: Thu Mar 04, 2021 10:13 pm As a fellow VGA crt user, I can say that for cores that did not originally output to a CRT, I use the vga_scaler option in combination with a resolution that allows (or is very close to) vertical integer scaling.

This also allows the use of external filters, and the "LCD" ones are a good fit for the gameboy.
I'm doing the same with my VGA crt monitor.

Something in the likes of:
[Gameboy]
vga_scaler=1
forced_scandoubler=0
At the end of your .ini file will do the trick nicely.
FoxbatStargazer
Top Contributor
Posts: 1018
Joined: Thu Dec 10, 2020 5:44 pm
Has thanked: 315 times
Been thanked: 238 times

Re: Adding more to the "forced_scandoubler" option

Unread post by FoxbatStargazer »

The whole point of analog output is to bypass the scaler, the moment we change this its not real analog anymore. The scandoubler does not really scale anything, analog is output as one horizontal line at a time, the scandoubler simply repeats the last line as it goes along. This effectively doubles the vertical resolution but it doesn't touch the horizontal. If you somehow converted the output and fed into an HDMI device it would probably try and display something super tall since it would assume that the pixels are square, the CRT however takes care of stretching everything to a 4:3 ratio.

In the case of handhelds they are typically low resolution, and the analog output is usually optimized for a 15 khz TV. The output ends up being kind of small/centered because there usually isn't enough vertical resolution available to scale it cleanly at all on a 240p TV. Not that 480p is likely to be much better.

Handhelds fortunately have 1) fixed resolution and 2) usually square pixels, so it's *very* easy to come up with a good resolution that will allow for clean integer scaling using vga_scaler.
User avatar
Malan
Posts: 53
Joined: Sun Dec 27, 2020 5:58 pm
Has thanked: 11 times
Been thanked: 8 times

Re: Adding more to the "forced_scandoubler" option

Unread post by Malan »

I have to say, the recent updates of the V-integer scaling made things more convenient for many cores and I really appreciate that kind of stuff.

I didn't really bother using the vga_scaler with the Gameboy core, it's indeed work fine, but since I started to stream, I'm stuck using the small scandoubler because my capture card doesn't recognize anything else than 1280x720 and 1920x1080 (I tested many resolution, it seems like the 4:3 aspect ratio is not supported).

That said, I have no idea of the amount of work that would be requiered for this "feature", so I may be asking too much? ^^;
Post Reply