Re: [stella] Closed Captions (Again)

Subject: Re: [stella] Closed Captions (Again)
From: "Eckhard Stolberg" <Eckhard_Stolberg@xxxxxx>
Date: Thu, 23 Nov 2000 16:08:59 +0100
> Anyone have any great ideas about getting me 16 arbitrary bits or
> so across a scan line?  The decoders are pretty tolerant, so
> switching the playfield might work (even though 8 doesn't go into
> 20 nicely) if it was pretty reliable.  Or a combination of really
> fat players and playfield graphics maybe?  Give it some thought.

You could use selfmodifying code in RAM, that would just
consecutively change the background colour. Since you only
need two colours (black and white) you could preload two
registers with the right colour values and then modify the
store instructions for each frame. A normal store to a TIA
register takes three cycles or 9 pixels, so you need to make
every third store instruction an indexed one, which takes
four cycles or 12 pixels. This would probably create a
16 bits display that is acurate enough for CC. A routine
like the following should do the trick:

   sta WSYNC
   lda #$00   ; black
   ldy #$0e   ; white
   ldx #$00   ; 0 for indexed accesses
   pha        ; waste 3 cycles
   pla        ; waste 4 cycles
   jsr Disp   ; call routine in RAM

   ORG $80
   sta COLUBK   ;  -2 (pixel at which the colour starts displaying)
   sty COLUBK,x ;  10
   sta COLUBK   ;  19
   sty COLUBK   ;  28
   sta COLUBK,x ;  40
   sty COLUBK   ;  49
   sta COLUBK   ;  58
   sty COLUBK,x ;  70
   sta COLUBK   ;  79
   sty COLUBK   ;  88
   sta COLUBK,x ; 100
   sty COLUBK   ; 109
   sta COLUBK   ; 118
   sty COLUBK,x ; 130
   sta COLUBK   ; 139
   sty COLUBK   ; 148

> Now that's an idea.  The trick would be to get the 2600 to accept lines of
> text on the fly from an external source and feed it in through the
> ports somehow.  Then you can store your entire transcript on the PC or
> something.

The BIOS of our 7800 dev system has some routines to transfer bytes
over a simple cable between the right joystick port of the 7800 and
the parallel port of the PC. These routines would also work on a
2600. And since you only need to transfer two bytes per frame, you'd
have plenty of time left to generate the display.

But anyone who writes a game for the 2600 that uses Closed Captioning,
should be prepared to included a free CC decoder with the PAL version
of his game, since we use a different way of generating TV-subtitles
here in Europe. ;-)

Ciao, Eckhard Stolberg

Archives (includes files) at
Unsub & more at

Current Thread