Improve 2D Rendering on CRTs by Forcing 640x240 Output
Many 2D games (e.g. Metal Slug 6) output at 480i or 480p despite using assets designed with 240p-style presentation. On 15khz CRTs, these games often look clearer and more stable when forced into a 640x240 (super) resolution. This improves scanline visibility and eliminates flicker, more closely replicating a native 240p arcade output. This would give users better per-game control, improve compatibility with larger super resolutions, and help retain visual fidelity for 2D games with high-res textures.
Currently switching to 320x240 only downscales the textures; the output resolution remains 480i/p, resulting in degraded image quality and persistent interlacing artifacts.
Some arcade cabinets used hardware converters to transform 480i output into 240p for progressive scan CRTs. This feature brings that same capability to users running emulators on real CRT setups.
https://www.arcade-projects.com/threads/naomi-video-on-15khz-looks-pretty-terrible.22081/
If the video selection area is the wrong place to put this , it could instead be added as a toggle under Emulation Hacks for a forced 240 height output no matter the video size chosen, and would allow for larger super resolutions. I can make the change and re-submit if needed :)
Testing on the below games has phenomenal results. Basically any 2D game just looks great.
Metal Slug 6 Knights of Valour: The Seven Spirits Marvel vs. Capcom 2 Capcom vs. SNK / CVS2 Street Fighter Zero 3 Upper Guilty Gear X
In regards to deinterlacing games, there is a PS2 rom hack to deinterlace games like metal slug 6. So the demand is there from a user perspective. https://shmups.system11.org/viewtopic.php?f=6&t=61532#p1293228 https://www.reddit.com/r/crtgaming/comments/fxxycj/metal_slug_anthology_ps2_slim_hex_edited_to_run/
I don't exactly know what this change does but it doesn't force 640x240 output. The internal rendering resolution is set using config::RenderResolution, which you set to 480 (implying a render resolution of 640x480).
However you ignore the game aspect ratio, which breaks the use of widescreen cheats/hacks:
Also, all Atomiswave, Naomi and Naomi2 games render at 640x480 natively, and I fail to see any difference between native 640x480 resolution and this "640x240" mode:
Normal 640x480
Hacked 640x240
Finally, considerations regarding real hardware output at 480i vs 480p are irrelevant for emulation since the video DAC isn't emulated. Flycast always outputs a 640x480 frame for arcade games, and Dreamcast games in VGA and Composite/interlaced video modes.
Ill send some photos. This would be for CRTs which does not have a horizontal resolution and can be very large, you will not see any difference on LCD and would probably just look odd. Im refactoring it a bit since some DC 2D games have 239p or even 223/224p assets. This is still rendering the assets as 640x480, its just forcing a 240 window so that the framebuffer picks it up as a progressive 15khz signal vs interlaced. Unless I coded this wrong and its changing the assets as well like it does when changing to 320x240.