Stuttering, tearing, dropped frames, juddering. Chances are if you are into video gaming you will have come across this at some point. That little ‘hiccup’ as an image scrolls, that moment where the picture tears in two. In the world of video gaming there are all sorts of reasons why this occurs, but this article will focus on why it occurs when using retro consoles on HDTVs. So what exactly causes stuttering? It is true that the deinterlacing that HDTVs apply to retro consoles can cause issues with scrolling, but the main cause of stuttering, tearing or even the dreaded white streaks (see the picture below for an example) is mismatching of input and output frame rates.
Frame rate conversions
Frame rate conversions occur when the input frame rate is slower or faster than the output frame rate. One place you might encounter this is when playing PAL material at 60hz, for example through an upscaler. Many of the popular upscalers such as the cga2vga Scaler PCB or the GBS8200 output 60hz VGA only, meaning if you feed in a PAL signal at 50hz, then a frame-rate conversion must take place. This isn’t as bad as it might sound and many users have systems that convert 50hz to 60hz material without even noticing tearing or stuttering. For videophiles of course it’s usually unacceptable unless no alternative exists.
How does the movie industry deal with this?
Films are usually recorded at 24 frames per second. This presents something of a problem since PAL tv’s are 50hz and NTSC tv’s are 60hz. 24 into 50 or 60 just doesn’t go. In the USA video is actually broadcast at 29.97 frames a second, but of course 24 won’t divide evenly into that either. What happens is the video is pre-processed and re-output, converting it from 24 fo 29.97 frames per second using a process called Telecine (2:3 pulldown). I don’t want to go into the intricacies of how this works, suffice it to say you can look on Wikipedia for an example, but basically the speed of playback is adjusted and extra frames are inserted. Of course, this process can’t be applied to videogames, since they are not pre-recorded, so that leaves us with a little bit of a dilemma. In some instances the problem can be solved, we simply need a way of making the input and output frame rates match. On video processors that support this, it’s usually called v-sync lock or v-lock. In this case, input vertical refresh and output are ‘locked’ to one another. No conversion needs to be done and therefore no tearing/juddering will take place.
50 to 60hz
The problem of using PAL material with a VGA converter is something of a thorny one. 50Hz RGB is common, most PAL retro consoles will output it on a SCART lead, for instance. However 50hz VGA is rare, most monitors and TV’s will simply flat out reject it. Because of this many converters will not even support it. There are exceptions, the venerable XRGB3 is one such converter that simply line-doubles the input and can output at exactly the same refresh rate. You can either feed this into a compatible display or push the output through a VGA to DVI/HDMI converter. If you’re thinking of going down this route though, consider the XRGB Mini Framemeister instead, as of Firmware 1.07 there’s full PAL support and HDMI output. Since HDMI supports PAL directly there’s no issue of potentially having to frame-rate convert first.
When 60hz isn’t 60hz
We’ve established that for silky smooth scrolling, all we need to do is make sure that the input refresh rate matches the output. Since HDMI supports 50hz and 60hz, this should be easy, right? In retro gaming we talk about 50hz consoles and 60hz consoles, but actually there’s probably no such thing. Retro consoles rarely have a vertical refresh that is bang on 60hz. My Saturn, for instance, has a vertical refresh of 59.82hz. Older CRT TV’s were much more tolerant to this kind of variation, but newer TV’s can actually fail to display the picture properly if the refresh is too far out of spec. When this happens, you’ll see tearing, stuttering or the white streak lines across the image (as seen in the picture above). In practise most consoles are fine. Genuine NTSC consoles seem to fare better than PAL consoles that have been modded to output at 60hz. Some of the biggest offenders of out of spec 60hz are listed below:-
Sega Megadrive:- The vertical refresh rates on my 60hz modded PAL Megadrive is a problematic 59.37hz, too far off spec to v-lock with most TV’s. Genuine Japanese Megadrives report a much more respectable 59.91hz.
Neo Geo – The Neo Geo MVS and AES’s video output vertical refresh is a way out of spec 59.15hz or 61.18hz. This is outside of the tolerance of most HDTVs and the only option is to turn off the v-sync lock and put up with a little stuttering. Some more adventurous Neo Geo owners are investigating actually changing the machines timing crystals to remedy this, but so far I don’t know of anyone who has pulled it off successfully.
Amiga CD32 – My Amiga CD32 is reported as having a vertical refresh of 59.28hz when running in 60hz mode. Again, too far outside the spec of my TV to be usable with v-sync lock on. I’d be interested to know if the rarer NTSC model of the CD32 also has this problem. Since the timing crystals are different between NTSC and PAL Amigas, the chances are it does not.
Are emulators the answer?
I am the first to admit I prefer playing on the real hardware where possible, but I’m certainly not an anti-emulator snob. When it comes to dealing with out of spec refresh rates, emulators can go further than is possible with the real hardware and video processing. The triple buffering option in many emulators, although adding more input lag, can help eliminate screen tear/judder. Using Neo Geo games on emulators like Mame, with the new HLSL pixel shaders, is certainly not a bad way to experience them and is almost certainly better than using a Neo Geo plugged directly into a HDTV.
References and further reading
Extron page describing the problems of frame-rate conversion.
Wikipedia page on screen tearing
Wikipedia page on Telecine techniques
Back from Stuttery Scrolling to Home Page