MiSTer-devel / Template_MiSTer

Template with latest framework for MiSTer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adding a 100% scanlines option in the scandoubler fx

mathieulh opened this issue · comments

The way the scandoubler fx is written only allows for up to a 75% scanlines option, considering the scanline filters do not work while using the scandoubler, this feature remains relevant, having a 100% scanlines option would allow to simulate a lower resolution PVM on a computer monitor.

On a CRT, 480p already has scanlines, so fake scanlines have to match/scale the existing ones, thus a 100% option makes sense, 25% and 75% look odd when paired with the monitor's native scanlines.

I tried that actually and I found that brightness gets affected too much. You can imagine that having every second line black cuts brightness by half.
Maybe that's ok for a VGA CRT monitor, I don't know...

I tried that actually and I found that brightness gets affected too much. You can imagine that having every second line black cuts brightness by half.
Maybe that's ok for a VGA CRT monitor, I don't know...

Brightness gets halved, which is normal since you have half the scanlines, this can be mitigated in high brightness monitors (either LCD or Tubes with high brightness like HD CRT or Monitors such as Diamondtron with Super Bright features allowing much higher brightness and luminance levels)

I can look into adding it for my cores as a test case. If people (and you) like it you can make the argument again here for the general MiSTer cores.

Hi Mathie,

It looks like people prefer using the scaler for scanlines anyway. Please join the conversation in discord to discuss it.

To sum up what I've posted on discord:

The main thing isn't about whether or not you'd prefer to use the scaler or scandoubler fx for scanlines
the scaler filters are not available to people who do not use the scaler
if you go through the scandoubler all you have available is the scandoubler fx
and there are reasons people don't use the scaler

such as improper scaling at lower resolutions
(due to a too low horizontal resolution for proper hscale)
added input lag (1 frame or more)
(scandoubler is lag free)

the fact that scanline fx is missing a 100% option makes it irrelevant to use on a CRT VGA monitor
since it already has native scanlines (albeit sharp ones)
so if you run at 480p (which the scandoubler will) and use 25% or 75% it will look unscaled and the scanlines will be at odd intervals.

Thus you can only really use 0% (off); 50% (which matches the monitor's native scanlines, so no point either) or 100% (which does not exist on MiSTer (it does on the OSSC for example).

Aside from whether black scanlines are personally desirable, it would seem to be a logical option to be able to pick from 25, 50, 75, then 100% in this case.

Is there anything that prevents or complicates adding the value of 100 to this list, which may have caused it to not be added in the first place?

If people (and you) like it you can make the argument again here for the general MiSTer cores.

Not having a zero option seems arbitrary. In any case, I can think of some arguments:

  • no weird faint lines between the main scanlines
  • not having to use filters
  • it's objectively missing from the available options, like having a volume knob that doesn't go to zero
  • it photographs better
  • I've seen it asked for on the forums and on reddit by multiple people

I don't suppose it's as simple to implement as adding an entry to a list of values?

EDIT: I see now that it would require a new case in scanlines.v plus whatever changes to the main menu ui and setting saving functionality

master...birdybro:Template_MiSTer:100sl - I think this is the way it would have to be changed?

Either way, brightness is not halved compared to it being turned off, brightness is 1/8th compared to it being turned off which is significant. I need to test this and see if it's even worth me submitting a PR since I suspect it's going to look pretty awful on anything that isn't solely a super bright computer CRT.