Hacker News new | ask | show | jobs
by mikejmoffitt 3382 days ago
That isn't quite correct. The C64 outputs a progressive-scan image, which is a hack on top of NTSC or PAL. In this configuration, there are only even or odd fields, which double-strike the same area. Thusly, it is 60 fields per second, and since only one field forms the full frame, it's 60 frames per second as well.

There is no scanline striping; that is strictly an artifact of poor NTSC capture devices (like most HDVTs) that naively assume the incoming signal is a 480i image with odd and even fields.

1 comments

A progressive-scan image emitted as an interlaced image results in, well, an interlaced image. That the scanline pairs are usually identical merely means that it's wasting vertical resolution.

And nonetheless a CRT from the time would show these as different scanlines.

No, this isn't correct. The image isn't "progressive" or "interlaced" until the output stage. Whether or not they are identical is secondary to the timings, which is all that matters. If every frame has an integer number of scanlines (and VSYNC begins during H-blank), it's going to be a progressive scan image.

A "CRT from the time" - the things littered around my apartment that occupy a little too much of my time - can easily illustrate the effect I am describing of a progressive scan image without alternating scanline positions. Go grab almost any '90s game console, or have fun with the Sega Genesis, which supports 240p as well as 480i; Sonic 2 uses 480i to fit two viewports into the two-player mode, but uses 240p during a single-player game.

Well, alternate fields have a 0.5 scanline offset, so that's sort of true. But you definitely don't see them both at once. Are you sure you've ever used a proper CRT TV? ;) - you can get the alternating effect with LCD TVs, but that's because LCD TVs handle analogue input in a different way.

Justifications for this:

0. TV hblank rate is 15,625Hz - at 50 fields/sec, that's 312.5 lines/field, some way short of the 400 you'd need to display 2 fields

1. Out of the 312.5 lines/field, only 288 are booked for the visible area, and most TVs can barely resolve them precisely anyway

2. When the TV is displaying one field in one set of scanlines, and the previous in the other, where does the data for the previous field come from?

2.1. TVs of the period have no buffer

2.2. Computers of the period don't generally have the RAM (or sometimes the hardware) to double buffer

2.3. The image produced is based on more than just the contents of the RAM anyway, increasing the RAM requirements (if you were to try to do this)

2.3. Cheap DRAM of the period doesn't have the bandwidth to scan out two frames'-worth at once)

Here's a pic of my BBC Micro, with interlaced output, running a program that flashes the screen alternating red and white: http://i.imgur.com/1XvkRso.jpg - you can see that at the top it's scanning out an entirely white frame, and at the bottom there's the end of the previous entirely red frame that's in the process of decaying.

As an example of 2.3 - note that the difference between one frame and the next here is entirely the video registers - the RAM stays exactly the same. Only one of the palette registers changes (and the flashing cursor is added by the hardware as a sort of post process step).

(I suspect the red/green/blue blur at the bottom of the white region is an artefact of my phone's terrible camera. Photos from my (slightly) better camera don't have that, but they do look overall the same. However today only my phone is willing to play ball with my PC.)

Alternate fields have an offset, but only if the horizontal sync timings make it so. If a machine is built to output a progressive image, there aren't really "fields", or you can consider them "all odd" or "all even" fields. I don't know anything about the BBC micro, but the Commodore 64 outputs a progressive image.
It's definitely interlaced output, though in most display modes the content is progressive (i.e., both fields look the same) - which is a bit of a dumb arrangement, really, since you get all of the flicker and none of the benefit.

Fortunately there's a command to switch it off, and no TV seems to mind displaying 50.08Hz output rather than 50Hz...

Are you referring to the BBC Micro, or the Commodore 64?
No, the signal indicates whether a given field is for even or odd scanlines. I used plenty of computers and CRTs around that time and not one incorrectly displayed progressive as interlaced.
To clarify, I'm talking about CRT TVs, not computer monitors. The latter aren't (usually†) interlaced.

†There's some interesting exceptions!

Neither are most CRT TVs, if you keep feeding them the odd/even field repeatedly. I keep CRT TVs and monitors at home and can easily verify this. The effect is usually dark gaps between the lines or doubled lines (where the corresponding field would otherwise have been drawn). Doubled lines, as in the same as the previous line of the same field, not from the previous field. It's not a particularly obscure subject or uncommon trick, so I don't see why you would keep insisting that it isn't so when any source that possibly could have proven you right, if you were, will prove you wrong.
I think I misunderstood the responses I got at first, and I couldn't easily find a source. Now that I do understand, it's quite interesting.
I'm talking about televisions and similar. You are still simply wrong. Nearly all of the 8-bit and 16-bit consoles and computers that output to CRT default to non-interlaced, without the TV alternating fields.

Look at other responses in this thread to see how interlacing used to be achieved and the flexibility it had.

Ah, I see now. Your comment about the half-length scanline made me understand.