If you left scanlines on and by just disabling the interlace/hires detection you are fine with the results, then it means:
- The core is passing an hires resolution to the shader (probably 640x400 or 640x480).
- You are using an output resolution > 1080p or you are facing moire/weavy artifacts because by disabling the hires detection, the shader is not able to trigger the fake scanline emulation.
The correct behaviour for the shader should be something like:
- lowres (320*2xx) -> double scan? -> draw 2x [optionally integer] scanlines
- hires (640x4xx) -> draw 1x [optionally integer] scanlines.
So, to correct my previous answer which was not taking moire and the possibility of different input core resolution, a double-scan switch to be used for low res content is indeed needed.
A good visual tradeoff right now is to:
- Disable Hi-res detection (iâll make this switchable by selecting 0 soon):
- force scanlines off
- Draw steep straight horizontal lines via the vertical cell mask option at 1.5 screen coordinates with no oevn/odd offset
- For the horizontal mask, probably green/magenta is needed due to the higher target TVL
Those settings seem to work ok for low res:
âŚand hires, but you can easilly notice the fact that the vertical mask is not âsyncedâ to the real scanlines.
âŚthe unsynced issue is the effect of having used screen coordinates for the vertical mask and will stay there even after an eventually proper double-scan emulation, when running at 1080p output resolutions, because one will have to use fake integer scanlines.
In that case the only solution will be to disable curvature and use integer scaling:
, but even at 400p, you can just do 2x scaling, because 400*3 > 1080 by too much.
âŚand would be something like this (switched vertical mask to core coords and set multiplier to 1x:
âŚhowever this method is not going to look good for low input resolution, due to the missing double scan option:
Lot of things!