This is an NTSC color wheel, in SVG.

I'm contemplating a chapter on composite artifact color. The problem is I have to teach the material to myself first.

#retrocomputing

You can't actually make a gradient like this in SVG, but there's a trick.

Just arrange a bunch of colored circles so they overlap, then gaussian-blur the shit out of them.

So this isn't like, strictly correct in the way it would be if you rendered in in Mathematica, but uh, I guess don't cite this in your doctoral thesis, and we're all good here.

If you're an old fart, you might remember this.

This is the SMPTE test pattern. Well, one of them, anyway.

You might see this if you got drunk and stayed up to 2 AM watching PBS.

It's weird explaining to people that like TV channels used to just ... go to bed. Imagine YouTube being like aight it's 2 AM we're kinda eepy over here , see you tomorrow at 8

To create the color bars at the top of the SMPTE test pattern we follow a particular trail across the color wheel.

Start at yellow on the left, then head to cyan, and just follow the lines, you'll reproduce the pattern.

As much as I generally feel naked and vulnerable when discussing anything analog, there's a certain beauty to it. These colors aren't defined by some RGB triplet. They're encoded via motion in a mathematical space all their own, and I gotta admit that's pretty cool.

The CGA's dot clock is exactly 4x the NTSC color carrier clock. That means four pixels can fit into one revolution of the NTSC color wheel, but they take their own particular path.

If I show you these pixels relative to the color carrier, can you guess what color pixels they'll turn into on a composite display?

I you guessed red and blue, I'm sorry but you are wrong. The real answer is Bordeaux and American Flag blue, to be specific.
It's Space Quest, by Sierra On-Line, which supported 16 colors on a CGA - as long as you had a composite monitor.
It's fairly easy to wrap your head around this when a game is emitting what are essentially the primary composite colors - when more than one pixel in a color cycle shows up, they mix, but since this is composite they also contribute to luma, making the color brighter. And if you actually send color as well - well, lets just say shit gets a little more complicated than makes me comfy.

The Apple II is another system with artifact color, but it looks very different than the CGA.

The Apple II is well known for four primary artifact colors: blue, orange, green and purple.

Let's plot out two additional axes, and call them I and Q.

Now what's on either end of these axes?

That's sum Apple II shit.

Welcome to the YIQ color space!

https://en.wikipedia.org/wiki/YIQ

Besides the I and Q components, we have Y, which stands for Yo, what the shit is this stuff so complicated for

YIQ - Wikipedia

But why are the Apple II and CGA different lookin'? Well, very different designs.

The CGA just yeets out 912 pixel wide scanlines of which 640 pixels are typically visible, all in the same phase. In composite mode that gives you the same 16 colors, all the time.

Apple II's hi-res mode, which is really what i'm talking about here, is more complex in operation. There's lower color resolution, but you can change the phase offset mid-scanline!

The CGA might not have had that bad a rep as bein the most bitchin' ugly video card of all time had composite displays been more popular.

But they were a non-starter for Serious Businessing. Nobody wanted to do a Lotus 1-2-3 spreadsheet with a bunch of blurry as hell numbers.

Here's an old analog vectorscope - does that pattern look familiar?

https://commons.wikimedia.org/wiki/File:Vectorscope.jpg

here's your vocabulary word for the day:

https://en.wikipedia.org/wiki/Graticule

Graticule - Wikipedia

The NTSC color cycle starts a rollin' cross your screen starting with yellow at 180 degrees because why not.

So you might expect the pattern '1000' to emit , well, yellow.

Instead we get poo brown.

Look, I'm not trying to be crude, but tell me that isn't poo brown.

But what IS brown, anyway? Is it even a color? shit's very philosophical.

if we use our eye-dropper, we can see that poo brown is actually .... wait for it...

dark yellow.

much about human color perception makes absolutely no sense from like an objective standpoint.

why doesn't every other color turn into some weirdass different color when it gets darker? yellow's just like i'm gonna be brown now. hold my beer.

As you might expect, the patterns

1010 and 0101 are both gray.

But they're not quite the same gray.

Go figure that one out.

I don't often see the CGA composite colors sorted by luma and hue, but it makes a lick of sense.
It's not a great palette. It's better then the normal CGA colors, but it's very "my sister took all the best crayons and now i'm left with these"-coded.

so, I don't have the best method for making composite color emulation and i'm not even gonna try. the point is to explain it well enough that i could set someone off on their journey of maybe writing their own NTSC shader.

this is the RGBI source data for 8088 MPH's "flower girl" effect, by the talented VileR

as you can see it is in color, so that throws a whole new dimension of pain into the conversion process.

the first thing you can do is sample a luma signal from it.

The chroma signal is in the wrong colorspace so it looks kinda wild

@gloriouscow ah! But I’ve since come to realise, YIQ coding — even at extreme low bit depths — produces a more natural result when dithering into organic or pseudo-organic imagery

RGB always glows radioactively.

Or makes incredible teletext art. Yes, it does do that well. Just that though.

@gloriouscow
CGA was a criminal design.

Picking DOS and the crippled 8088 (even the 8086 wasn't a real 16 bit CPU, no flat addressing) was bad, but to foist a simplest possible scheme suitable for NTSC TVs when every office computer had always used a monitor. Also school computers too. Almost as bad the crippled version of the Apple II in Europe, which couldn't do colour on anything. We tried a custom colour crystal and mods to switch PAL to NTSC on the screen.

Default slug death palette.

@raymaccarthy

Criminal Graphics Adapter just makes it sound cooler

@gloriouscow
I wrote virtual functions and a HAL for a game engine in Modula-2.
Mutltasking, 5 bit sound on PC speaker, 8 bit on Soundblaster, MIDI, Scroll & "stream" data from HDD. DOS was only used to load it. Drivers for File I/O, CGA, EGA, VGA, Hercules, Soundblaster with DMA double buffer, MIDI, PC speaker, Joystick port & keyboard all in Modula-2.

In the end abandoned to lack of people to produce the artwork.

I have all the source, somewhere. Only PICs with JAL for bare metal after.

@gloriouscow
DEFINITION MODULE CrtCGA;

FROM BRICK IMPORT STRIP;
FROM BuildPalette IMPORT INK_MODE;

PROCEDURE InkDot(x,y:CARDINAL; colour:CARDINAL);

PROCEDURE ReadDot(x,y:CARDINAL):CARDINAL;

PROCEDURE InkMode(mode:INK_MODE);

PROCEDURE DrawRow(x, y :CARDINAL;VAR data :STRIP);

END CrtCGA.

@gloriouscow
The VGA was minimal 640 x 480, so a progressive "NTSC" and SVGA was the first PC Graphics to exceed PAL/CCIR 576 visible lines. Pathetic colour depth.

IBM & MS held back PCs by 10 years.

@raymaccarthy at least we had 60Hz lol

@gloriouscow
30i
And now we have 4K but only 24 fps progressive.
HD (1080 not pointless 720) at 96 fps would be more use. The need for TV same mains frequency didn't exist by the time Digital came and now we have more frame rates and formats than the analogue era. So stupid.

Of course "full HD" should have been 1152 lines, not 1080 lines and 96 Hz progressive.

@raymaccarthy @gloriouscow oh … we’re still struggling to replicate D1 PAL quality well into the broadband internet 4K era

You basically need to be a Handbrake expert, reject some default settings, and come armed with a set of LUTs from BBC R&D …

And with the power of HDR *and* HFR combined, we finally stand a chance to recreate the “realism” of 576i/50, but only if you’re willing to apply predictive motion to achieve 60fps (or 300fps in a Lowest Common Denominator interchange fps)

@raymaccarthy @gloriouscow oof, the Apple II Europlus with PAL Colour Card worked fine. Or the IIe. Everything was flattened a bit of course.

But composite CGA was clearly superior to everything else at the time, and for some time, until VGA-and-then-some.

Just like the IBM PC XT was technically superior to what else existed in 1981, by some margin. And open, well open enough. That and “IBM”: It was the obvious choice for a prolonged standard.

@gloriouscow I'm guessing it's because one is a mix of green and purple, and the other is a mix of blue and dark yellow.
@gloriouscow There's an entire video about this exact thing: https://www.youtube.com/watch?v=wh4aWZRtTwU
Brown; color is weird

You can support this channel on Patreon! Link below This video discusses the color brown. Seriously.That Aging Wheels playlist:https://www.youtube.com/play...

YouTube
@Kroc that's a much nicer brown

@gloriouscow
Or olive!

Brown is dark orange.

It does somewhat depend on what colour model you use and your video system.

Aligning and calibrating RGB and PAL CRT video monitors. Three tube cameras too. Tedious.
Then single vidicon tube stripe filter alignments and the awful PAL colour on Philips N1500, N1700, Betamax and VHS, though NTSC was worse.

@gloriouscow hey who said the sky is blue? It’s cyan, fight me

Next you’ll be telling me the sun is yellow and Neptune is blue?

Coldplay - Yellow (Official Video)

Coldplay - Yellow is taken from the debut album Parachutes released in 2000Newly restored 4K version of the video added 10 July 2020.Subscribe for more conte...

YouTube
@gloriouscow
Being part colour blind, and having grown up having to construct my own colours from raw RGB, sometimes CMYK, or more often, just numbers... Like some kind of animal....
Well anyways, my wife doesn't believe me that Yellow is just a special type of green,
Or the other way round.
Also that yellow isn't real.
It's our 13th anniversary today.
I might remind her that yellow isn't real. As a gift.

@RyeNCode

remind her nothing is real. nihilism is the gift that keeps on giving.

@gloriouscow look, if you want your computer to give you lots of brown colors, then you buy a Commodore 64.

the NTSC colors are the Apple II colors so I have some nostalgia for them, but the brown is gross, the yellow is murky, and you're also glossing over how mind-searingly off-putting the "aqua" color (1011) can be

@deater78 its periwinkle and i quite like it

@gloriouscow

Was VGA's 320×200 256-color mode used for Serious Businessing? With its low resolution, high color, chunky pixels, and mutable palette, it seems designed specifically for games.

If they'd thrown in a tile and sprite generator, I'd say it was *definitely* for games, but even without one, it's pretty game-ish.

@argv_minus_one I love watching old ads where people are actually giving reports of sales figures and stuff in 320x200.

If they did it in CGA I'm sure they did it in VGA. But 640x480 was probably more Businessy.

@gloriouscow

Yeah, that's what I was thinking. Only 16 colors, but loads of pixels, and the pixels are square (640×480 is 4:3). Kind of important for drawing pie charts and whatnot.

@argv_minus_one SuperVGA was so great

@gloriouscow

Yeah, SVGA was when all the PC video jankiness decisively ended. SVGA chips could do everything: 24-bit direct color at arbitrary resolutions, 8-bit paletted color at arbitrary resolutions, linear frame buffer, high resolution, selectable refresh rate, the works.

@argv_minus_one @gloriouscow It was a very very monochrome world before the early 1990s, both in business and Macintosh

Home PCs with gaming had colour a bit earlier, maybe 5 years — before that, before the 386 era it was mostly Amigas, Commodores, Ataris where you’d see any colour … Apple II as well, but when going back to the early 1980s it was more often monochrome monitors too. At least with the first-party displays. Anyone could throw a TV on it but that wouldn’t look professional enough in business or a school lab. (Before my school’s first lab, each classroom did get an Apple II with a TV on top though).

@gloriouscow @argv_minus_one Fond CGA memory: THIS GUY WANT A LIBBED, LUBED LUBBER!

(chorus) WHAT A PERVERT!!! 🧔🏻‍♀️🧕🏻💂🏻🧑‍⚕️🧑🏻‍🍳

@gloriouscow … which reminds me of teletext colour encoding … but again, this sounds relevant (and contemporary) but is entirely independent.

@lritter @gloriouscow hmm thanks 🙏 that’s a better link to theoretical basis than I’ve usually seen

It’s usually this sort of “magic number” guff that I see

https://media.geeksforgeeks.org/wp-content/uploads/20211110163719/Screenshot2459-300x267.png

@whophd @gloriouscow yes, that's YIQ, which is, at least on the grayscale axis, closer to perceptual equivalence of colors. YCoCg is an approximation, but less costly. crytek used it for framebuffer compression: store Y in one channel, and checkered Co or Cg in the other. then later reconstruct one of the missing two color channels from neighbors. so, full rez Y, half rez color.

@lritter @gloriouscow Lossy compression, even if you hate it, provides a fascinating insight into your perceptual model and any flaws it has!

I was always fascinated how, in standard def days, red chroma was so sensitive to 4:2:0 subsampling (especially within interlaced sources). This had nothing to do with your bitrate or codec, since 4:2:0 was to blame.

But of course that’s disingenuous — any aliased upsampling (back to 4:4:4) of the subsampled 4:2:0, should have been replaced with a gradiated upsample — smooth scaling, right?

But that’s STILL not the full story! Why was red so susceptible? Green and blue, when ramping to and from black, never suffered this way. But WHY?

And the uncomfortable truth emerges … we’re doing colours wrong. We’re even just NUMBERING it all in a way that we shouldn’t be.

And it slowly dawns on you that adding up R+G+B can never be optimised. And that splitting luma and chrominance is The Way.

But that way lies mathematical pain.

So I like your YCoCg. I only knew about YCrCb versus YPrPb.

And of course CIE. But I’d love to define the units on the 1931 diagram 😝 it’s a good test to measure the model size of an LLM, actually.

@gloriouscow I first saw this 2-dimensional space on a 4,096-color demonstration of the Apple IIgs. This might sound relevant to the previous posts but, confusingly, is entirely independent.
@gloriouscow say it with a picture or 4...
@gloriouscow well strap in then, we might be travelling at 8088 MPH