Re: [stella] 12 chars/line!? (was: re: optimizations; Call for suggestions)

Subject: Re: [stella] 12 chars/line!? (was: re: optimizations; Call for suggestions)
From: Greg Troutman <mor@xxxxxxx>
Date: Wed, 24 Sep 1997 10:48:30 -0700
Piero Cavina wrote:
> 
> At 16:05 +0200 23-09-1997, Eckhard Stolberg wrote:
> 
> >>Playfield graphics for the text, variable width font to maximize how much
> 
> ...a variable width font seems a bit too much for the 2600... :-)

I thought about doing this with Dark Mage, but the cycle usage is pretty
great to do more than one line per frame.  The routine to load a RAM
area with a new line of text would produce fairly large spaces between
lines.  I doubt one could preload very many lines for quick tightly
spaced text with the limited RAM in a normal cart, but perhaps if SC RAM
were used, ~15-20 proportional characters could be done in good
resolution with the Stellar Trak method.

> 
> >>text can be displayed.  4K standard cart should do it, no Supercharger
> >>required.
> >
> >I don't know, if the 12 sprites text modes in Dark Mage and Bob Colbert's
> >scrolling demo require SC RAM, but they would allow better output and
> >more text on the screen, than a playfield routine could provide.

Dark Mage does not require SC RAM, but it does use a large hunk of
standard memory to build a list of pointers for each line of text (24
bytes).  

> 
> The "classic" score routine can draw 6 digits, that is 6*8=48 pixels/line.
> Could it be modified to display 2x4-bits wide charachters for each digit?
> 
> Let me explain...
> 
>  digit 1   digit 2
> 00000000001111111111...
> 01234567890123456789...
> 
> XX...X..XXX.XX...X..
> X.X..X..X...X.X.X.X.... etc etc..
> XX...X..XXX.XX..X.X.
> X....X..X...X.X.X.X.
> X....X..XXX.X.X..X..
> 
> That would allow 48/4=12 charachters per line (without flicker)!
> 
> Can it be done?

You mean a half-width font, instead of hard-coded graphics?  Sure.  Very
problematic though.  There is not enough time within the six-digit trick
to read and combine the 4 bit parts into one graphics register.  So, it
has to be done in RAM beforehand, and that means 30 bytes for one 5
scanline high line of text.  You can't very easily re-use that RAM area
for drawing multiple lines of text in the same frame, because the loop
that would combine 12 4-bit characters into 6 one byte graphics data,
five scanlines high, would take well over a thousand cycles, I think,
producing as many as 20 blank scanlines while you busily reload that RAM
area... You might use VBLANK to pre-load 3 lines of text using 90 bytes
of RAM if you have them (unlikely for a game, but maybe possible in some
special project like Jim is doing)...  Now, for a one-liner thing, like
a 12-digit score, it's no big deal if you've got 30 bytes of RAM just
lying (or is it laying?) around...

--
mor@xxxxxxx
http://www.crl.com/~mor/

--
Archives updated once/day at http://www.biglist.com/lists/stella/archives/
Unsubscribing and other info at http://www.biglist.com/lists/stella/stella.html

Current Thread