Jump to content
IGNORED

Closed Captioning and TIA?


Ze_ro

Recommended Posts

For no specific reason, I decided to look up closed captioning online, and it turns out that (for most cases anyways), closed captioning information is encoded into line 21 of the vertical blank... Thinking about television standards made me think about the days when I tried programming the 2600, and out of curiousity, I wondered: would it be possible to code the 2600 in such a way that it would actually produce closed captions on a television that supported them? Or is this data encoded in a way the TIA is incapable of reproducing? I realize VBLANK time is generally when the 2600 gets it's work done, so actually having captions as part of a game is probably not feasible... but has anyone tried this?

 

--Zero

Link to comment
Share on other sites

Can the 2600 actually generate and transmit graphics data in that time?

 

Extract from Teletext on Wiki:

 

The teletext signal is digitally coded as 45-byte packets and can use lines 6–22 and 318–335. Some teletext services use a great number of lines, others, for reasons of bandwidth and technical issues, use less. The resulting data rate is 7000 bit/s per line. (40 usable 7-bit bytes per line, on each of 25 frames per second.)

 

40x7 = 280 bits of information per scanline. Somewhat beyond the 2600's capability I'd say.

 

http://homepage.ntlworld.com/kryten_droid/...t_spec_1974.htm

 

^ Teletext specification.

 

Add in the protocol controls, and you're probably looking at 330 bits of information per scanline.

 

I'd guess that an 8-bitter computer could handle that, although there is no known method of getting ANTIC/GTIA to produce graphics output during a VBlank period.

Link to comment
Share on other sites

I realize VBLANK time is generally when the 2600 gets it's work done, so actually having captions as part of a game is probably not feasible... but has anyone tried this?

 

I do not believe it is feasible. Even if one leaves off the sinewave sync pulses (which some televisions require and some ignore) there need to be 16 oversized blobs that are 3.6 pixels wide. I too have thought it would be cook, but the 2600 just doesn't have enough thingies that could be pre-configured to make it work.

Link to comment
Share on other sites

  • 2 months later...
I do not believe it is feasible. Even if one leaves off the sinewave sync pulses (which some televisions require and some ignore) there need to be 16 oversized blobs that are 3.6 pixels wide. I too have thought it would be cook, but the 2600 just doesn't have enough thingies that could be pre-configured to make it work.

 

I think you even misread something here. According to those specs, one bit pulse is 144 ns long. In comparison to that, one pixel on the Atari 2600 is about 280 ns long. This means that you would have to output nearly two bits in the space where only one pixel occurs. This should be impossible by itself... apart from the fact that in order to display complete lines of 40 characters, you have to keep up the data stream for 51,9 ys per scanline, putting out 360 bits in that time. That's probably much more than the 2600 can do...

Link to comment
Share on other sites

I just found a link to this thread. The most important thing to mention here is:

 

>>> TELETEXT != CLOSED CAPTIONING <<<

 

The Teletext system used in the UK sends waaaaay more data than US (EIA-608 line 21) closed captioning. So much so, in fact, that it can't even be reliabily recorded on a VCR.

 

Line 21 captions only support two characters per field, with subchannels 1 and 2 on the first field of a frame, and subchannels 3 and 4 on the second field. Including parity bits, that's 16 bits, plus whatever is needed for framing.

 

But there are very few game systems that let you put anything on line 21. The 2600 and 7800 are the only ones I can think of, aside from the more modern 3D-era systems possibly having overscanned frame buffers that could do line 21.

 

Then there's getting the bit rate right. It might be possible to use playfield graphics on the 2600, but the bit timing would likely be all wrong, even if you tried to repair it with the player/missle/ball graphics. The 7800 wouldn't have much problem, but both would have a problem if the CC data needs to extend beyond the width of the 160-pixel scanline.

 

Another problem is that apprently the low-level signal is at the blanking level. A decoder might be able to handle a black level signal, but not necessarily.

 

Unfortunately there doesn't seem to be much good data on timing other than "pay $100 to get a print copy of the EIA-608 spec".

 

I did find this, though: http://www.brouhaha.com/~eric/pic/caption/ccthry5.txt

 

 

This is also worth looking into for the fun of it: http://en.wikipedia.org/wiki/Widescreen_signaling

 

Oh yeah, tweak line 23 and now you can have your Atari 2600 games in W I D E S C R E E N (where available). Most HD and HD-ready sets in the US support this, but probably not the version in the wiki page, which seems to be PAL-specific.

Link to comment
Share on other sites

Unfortunately there doesn't seem to be much good data on timing other than "pay $100 to get a print copy of the EIA-608 spec".

 

I've implemented closed-caption encoding and decoding equipment. The data rate is essentially 1.0MHz (I used an 11.0592MHz crystal divided by 11, but the 7800's 7.16/7 might also work especially if one added an extra pixel here and there). There is no way the TIA will be able to output the right amount of data--3.58/4 is going to be way too slow--but MARIA might.

Link to comment
Share on other sites

Possibly.

 

Although I think the ZX80 and ZX81 computers used the CPU to generate the playfield (?)

 

Also quite possible that other very early consoles had full control over the playfield.

Can't you turn off the OS and ANTIC in the 800/XL and then bang at the registers much like with the 2600?

Link to comment
Share on other sites

Check the Stella archives. I attempted without success to create CC using the 2600. The big problem I ran into was lack of any way to validate the output other than through the CC decoder in my TV. So I might have been creating a valid signal, just on the wrong line. http://www.biglist.com/lists/stella/archiv...1/msg00081.html

 

However, IIRC, the TIA isn't really able to generate a valid CC signal because some of the CC waveform (especially the initial timing pulses) lies outside the active portion of the line.

Link to comment
Share on other sites

Can't you turn off the OS and ANTIC in the 800/XL and then bang at the registers much like with the 2600?

 

Yes you can. It's just that the whole idea of using CC is to overcome a system's poor text capabilities. The XLs don't have those limitations so it would just be a novelty to do CC.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...