[Coco] CoCoMax - Now: OT Amiga / CoCo musings
sock at axess.com
Sat Apr 7 12:50:43 EDT 2007
At 08:48 AM 07/04/2007 -0700, Andrew L. Ayers wrote:
>...Somebody saw something in the hardware, a bulb lit up, and
>they tried it - lo and behold it worked. But it had noise (that junk on
>the left edge) - the video hardware wasn't designed to do this, unlike
>the custom chips in the Amiga.
The video junk is a side effect of updating the palette registers while
video is being displayed. With some additional trickery you can eliminate
even those if you update the palettes while video is displaying the border
instead, resulting in a perfectly clean display.
>Finally, at the end of the article, the authors write: "You may have
>noticed this effect on some video games on the Atari VCS, which uses
>this same technique to expand the number of available colors."
I'm not sure who did it first, but it was a known technique for a very long
time. The Atari VCS was a very good candidate for this sort of stuff
because the hardware is otherwise severely limited. I don't think it was
originally envisioned to run anything much more complex than Pong style games.
Since it's CPU had to jump through hoops just to display *anything*
meaningful on the screen, adding more and more hoops to the CPU's list of
chores was simply a logical progression.
>...Hmm - makes me wonder if that is how Sock got some
>of his amazing demos to run? I have always thought that there should be
>a way to use the "64-color mode" (or some variant of it, maybe with less
>colors) in a graphic demo or game, or something. Sock, can you shed any
>light on this? I know your hi-color programs use a variant on the trick
>(it, combined with some form of pixel offset/rotation trick like NTSC
>uses to cut flicker and increase colors displayed)...
Most of my demos did it. The bouncing ball demo had somewhere's in the
neighborhood of 48 simultaneous colors on the screen instead of the usual 16.
HiColor is able to change all 16 palettes each line for a full 64 color
color display - the limitation being only 16 allowed per scan line. The
are not palette glitches (the junk seen in CoCoMax 3's 64 color screen)
because all 16 palettes are updated within the border of the screen (a 34
clock cycle window in which the CPU can safely update palettes without
glitching the screen)
By combining multiple tricks together, HiColor stretches the percieved
colors on screen to the thousands instead of just 64 or 16.
There was a paint program on the Atari ST that could update all 16 palettes
multiple times *per* scanline. The Atari ST hardware had the benefit of not
generating palette glitch/noise if the palettes were updated while the
screen was being displayed, but otherwise it too was not intended to do this
sort of stuff. It's graphics mode being nearly identical to the CoCo 3s
John Kowalski (Sock Master)
More information about the Coco