Jump to content
IGNORED

TMS9918A color splash


Asmusr

Recommended Posts

When you look at a supposedly white pixel from the TMS9918A composite output it can be red, green or blue on screen, but never really white unless it's in the middle of a horizontal run of white pixels. White is just an example here, as I believe this is true for other colors as well. When you develop on an emulator it's always surprising to see this 'effect' the first time you try your program on real hardware.

post-35226-0-08597300-1555792460.jpg

 

Has anyone described this effect in a way that could be used for emulation?

Link to comment
Share on other sites

Yes, if you flipped on the colorburst while having a CGA card attached to composite output, you could get what amounted to an effective res of 160x200 in 16 really washed out colors.

 

The earliest IBM PC games capitalized on this, but by the time the EGA had appeared, this fell out of favor.

 

an example, was Burgertime. https://www.youtube.com/watch?v=zWPEi9vI_oA

 

-Thom

Link to comment
Share on other sites

Didn't CGA graphics often take advantage of this when displaying to composite video instead of an RGBI display?

 

Something along the lines of purposeful control of this to drive additional colors from the 4 color screen modes.

 

???

 

-M@

Not just CGA. The Tandy Color Computer's entire colorization system was based on this. So was the Apple II's.

Link to comment
Share on other sites

The effect you're seeing is definitely caused by the NTSC signal and the general quality level of the composite signal from the TI's video port. I first noticed it in Parsec, where the little landscapes seemed to be rainbow colored, but in fact, weren't!

 

I've dealt with this when drawing up all the graphics for my CRPG, you can check my thread in Development to see some pictures of my in-game monster graphics, all of which are in bitmap resolution, with 2 colors every 8 pixels horizontally.

 

First thing is, NTSC seems to work better with a lower pixel depth horizontally. If you have at least two pixels of the same color next to each other, they are strong enough to overcome all the noise and clearly project a color. (So 100-150 pixels works fine, but over 200 has trouble.) This isn't JUST on the TI, you can see it on other systems too. Most of the color artifacting of the TRS-80 Coco, Atari 8-bit, and Apple II systems were built around burning two pixels to get extra colors.

 

Second, What I've come to discover as I've worked with it is this: luminosity almost matters more than color itself. Putting two bright colors next to each other makes it almost impossible to discern both. So you want to have light and dark respectively alternating, or you get things looking a little muddy.

 

Three, the 2 colors per 8 pixels is not THAT bad of a limitation, given the noise of NTSC. Many times I've used a color which technically creates a bleed effect, but on the NTSC screen you can't really perceive it, so it works. On the other hand, I've seen some interesting patterns where a fully yellow object with just ONE line of blue in the center suddenly looks greenish overall on the screen. Almost like the color signal, swapping between colors, has trouble keeping up.

 

Finally, some interesting oddball observations... Light red and magenta actually compliment each other REALLY well, not a combination you'd expect to work. Medium red and green are nearly useless; neither is strong enough in luminosity to really separate from their light and dark counterparts. And why a dark and light yellow? I would have rather TI given us a true brown, dark grey and dark purple instead. Dark red is your best "brown" color, although if your user has his monitor contrast turned way up it won't look like it. Dark blue is your best "dark" after black, it's dark enough against black pixels nearly disappear. Grey is really just "off-white"; if you want something closer to halfway between white and black, use light blue. Cyan is so much brighter than the other blues it's not particularly useful as a gradient, but in some cases it can work; your mileage will vary.

  • Like 3
Link to comment
Share on other sites

The effect you're seeing is definitely caused by the NTSC signal and the general quality level of the composite signal from the TI's video port. I first noticed it in Parsec, where the little landscapes seemed to be rainbow colored, but in fact, weren't!

 

So that's why I actually never really had this impression, because I had a PAL system? My memories on that topic are fading, since I was using a monitor with my Geneve from the early 90es, so I cannot tell for sure anymore.

  • Like 1
Link to comment
Share on other sites

IMHO the problem is two-fold. Sender and Receiver.

 

I remember (dimly) bringing my TI-99 into the Station back in the 1980s to put it up on a waveform monitor and vector-scope. (to see the colour phase angles) It was clear the the signal was not truly complying with RS170A, the ANSI specification for colour TV back then. So the source is not quiet correct.

I can't really predict the ramifications of it not being interlaced on a conventional TV either. Suffice to say it's not-standard.

 

The NTSC colour encoder literally maps the colour over top of the monochrome (black and white) TV signal. In order to squeak the colour information into a standard TV channel the colour information is severely bandwidth limited. There are two channels of colour that are 90 degrees out of phase (quadrature modulation) The in phase component is about 1.5 Mhz and the quadrature about .5 MHz if memory serves. To give you perspective, the full detail of the black and white portion is 4.2MHz wide in a standard TV channel.

 

The effect of this is that the detail resolution of RED parts of a picture is dreadful and other colours have very poor resolution. These were calculated design decisions at the time balancing the bandwidth available and what was known about human perception.

 

The bandwidth of the colour encoder is tightly controlled by analogue circuit designers in both the transmission equipment (cameras, tape machines, character generators etc) and the receiver designers. My experience in the early days of digital gear for video was that most of the equipment not destined for the professional market did not respect these design guides and they splashed un-filtered signals onto the output channel. These fast edges on the source signal can/does cause a lot of ringing in the filters built into the monitor. This ringing at the edges can be what you are seeing with the TI-99 on analog monitors as it creates the effect of a sub-carrier colour signal due to the frequency of the ringing being in that 3.58Mhz range.

 

</old guy talking>

 

Edit: If you have trouble sleeping, read this.

https://en.wikipedia.org/wiki/NTSC#Color_encoding

Edited by TheBF
  • Like 3
Link to comment
Share on other sites

I think there are still enough functional (non-F18ed) TI consoles in Europe (PAL, SECAM) so that someone could create a movie clip. It's certainly not easy to film a TV screen with a camera, but worth a try.

 

(Before all this is sent into oblivion by digital TV.)

Link to comment
Share on other sites

The TV Mode in Classic99 is going some way to emulate this, but the splashing is a lot stronger on my TV.

 

Classic99 TV Mode:

post-35226-0-78056100-1555943750_thumb.png

 

Real console, composite:

post-35226-0-74114000-1555943802_thumb.png

 

I haven't been able find a filter in MAME to emulate this. I don't see anything about filtering in the OSD menu. I also tried to enable HLSL filtering but didn't get any useful results.

 

Link to comment
Share on other sites

In MAME, you find some options in "Slider controls", "Window 0, Screen 0 Effect" when you set it to hlsl. Then the menu gets a lot of sub-options (I counted 91) where you can, for example, define the color convergence etc. However, I did not yet seriously try to get some effect from those.

Link to comment
Share on other sites

Yeah, the TV Filter in Classic99 was contributed to be by the author, and while it seems authentic, it could indeed be stronger.

 

NTSC artifacting is the ONLY way that the Apple 2 created color (well, the NTSC version anyway), and I've spent the most time there. It has a 280 pixel wide screen which maps neatly to the colorburst frequency such that 2 pixels represent one complete color cycle. It can also delay a byte by half a pixel to get an extra two colors. Thus, by spacing your colors out, you get a stable and reproducible artifact that blends into a solid color. (This is standard high res mode, double high res takes advantage of 4 pixels per cycle).

 

I didn't do the actual measurements on the TI, but it seemed like the 256 pixels across on the TI were larger, and so didn't align nicely enough for reproducible color artifacting effects. But the same pixel column should always have the same effect, so you might be able to do something with it.

Edited by Tursi
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...