I need help using a scanline overlay on a CRT
-
@starquake how would it look using the crt-pi shader?
-
No that's not what I meant. I'm sorry, I'm not sure how to explain it better than I already did. Maybe this helps:
-
This post is deleted! -
@starquake im half retarded today. 240p and 480i.. forgot the whole 480 interlacing bit and 240 being progressive. I never use a crt so i kinda spaced out about it. Thanks for the video to remind me
-
@simillarian noticed you deleted your post. What was the issue you are having?
-
@edmaul69 Well as long as you're not going full retard. ;-)
-
@starquake great movie... 😄
-
@simillarian @starquake @dankcushions @Floob i added this in my /opt/retropie/configs/nes/retroararch.cfg
video_fullscreen_x = 320 video_fullscreen_y = 240
and i got it in fullscreen 320x240. wouldnt this fix @simillarian 's problem? i also removed the video setting from run command menu right before a game starts
-
If you want scanlines on your CRT and keep 60fps you need 240p which the Raspberry Pi doesn't support. Look it any of my links posted for more explanation. It's a subject that is hard to understand but if you read the second part of this carefully you will understand what's going wrong:
http://scanlines.hazard-city.de/Keep in mind the Raspberry Pi only outputs 480i (or 576i for PAL)
Took me quite a while to understand all this. But if you read carefully you will understand why this all doesn't work.
-
I'll past the important part here for your convenience:
"For 60+ years now, since television has been around, classic standard definition is transmitted as an interlaced signal. In the USA and Japan that's called 480i (running at 60Hz), while it's 576i in Europe, parts of Asia and parts of South America (running at 50Hz). When the first video game systems emerged in the 70s, both as arcade cabinets and as home systems, manufacturers opted for an alternative video standard instead. Instead of alternating the lines between fields, they chose a non-interlaced signal, delivering 60 progressive frames per second instead. To keep the format compatible with the millions of TV sets out there, each frame consists of (roughly) 240 lines - same as the fields in the interlaced signals. The progressive signal eliminated flicker, made text more readable and ultimately created what is known today as "8-bit and 16-bit pixel art".
Because the tubes were initially created for interlaced signals, the spacing and resolution of the tube's mask is optimized for 480i signals. If a progressiv 240p signal is fed, every second line is left blank, creating those visible dark lines, which we call "scanlines". Those lines soften the pixels and create a very distinctive look, which many people prefer to the "emulated" look of raw low-res signals on digital panels.
All the classic home systems out there, starting from early 80s Atari systems, mid 80s Nintendo and Sega systems, early 90s 16-bit systems like SuperNES, PC Engine, Mega Drive or Neo Geo, up to the early days of the 32-bit generation with Playstation One and Sega Saturn, output 240p signals (or 288p in their PAL versions) and are perfectly fitted for any classic CRT display. While the actual active lines differ on this systems (Neo Geo for example has 224 lines), 240p refers to the progressive nature and the 15khz timing of those signals."
-
@edmaul69 said in I need help using a scanline overlay on a CRT:
@simillarian @starquake @dankcushions @Floob i added this in my /opt/retropie/configs/nes/retroararch.cfg
video_fullscreen_x = 320 video_fullscreen_y = 240
and i got it in fullscreen 320x240. wouldnt this fix @simillarian 's problem? i also removed the video setting from run command menu right before a game starts
That won't work. There are three resolutions used when emulating games using retroarch on a Pi. The game resolution (e.g. 240P), the retroarch output resolution (could be 240P as in your example) and the resolution that the Pi uses for it's video output (for composite it's 480i or 576i) which is set in /boot/config.txt. Let's assume 480i in this discussion.
The problem is, even if you get retroarch to output 240P, the Pi will upscale it to 480i and alternate displaying odd and even lines on alternate frames. If you emulate scanlines (by shader or overlay) you will lose either the odd frames or the even ones effectively show a blank frame every other frame. As starquake said, this effectively cuts your frame rate in half. If you have a game that relies on showing or not showing something on alternate frames for transparency effects, you'll only get to see those frames that show (or not) something and the transparency effect will be lost. Even if you don't use games that rely on transparency, you'll only be seeing half the frames which will spoil animation effects and make the screen seem to lag.
@simillarian, You say you have a Trinitron TV. Does it have some form of RGB input? If so, you could use a HDMI to RGB adapter or a Gert VGA adapter to enable you to get a 240P signal you could feed into your TV.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.