Jump to content
zacharyfruhling

RGB Color Codes for TI-99/4a Colors

Recommended Posts

Does anyone happen to have the precise RGB color codes for the standard TI-99/4A color palette? I am trying my hand at porting some of my old programs and want to keep a similar aesthetic.

 

TI Color Codes:

 

2 - Black

3 - Medium Green

4 - Light Green

5 - Dark Blue

6 - Light Blue

7 - Dark Red

8 - Cyan

9 - Medium Red

10 - Light Red

11 - Dark Yellow

12 - Light Yellow

13 - Dark Green

14 - Magenta

15 - Gray

16 - White

 

RGB Equivalents?

 

...

 

Thanks!

 

Zachary

  • Like 1

Share this post


Link to post
Share on other sites

I don't have the source with me at the moment, but Classic99's open source, you can download it and look in tivdp.cpp for the palette. I actually have a half dozen palettes in there (if I didn't remove the extras ;) ).

 

I (and numerous others, even on this forum) have attacked the question of the 9918 color numerous times. I went so far as to hire an artist to attempt to color match for me. The ultimate problem, though, is there really isn't an RGB equivalent. Let me explain why.

 

We pretty much all start with the datasheet, which lists the approximate values for YCrCb, which is (as I follow) how the color is first generated inside the chip. From the patent and from discussions with the creator, we know that these values are literally taps along a resistor line, and the stated word is that the datasheet isn't necessarily perfect. Still, it's a good starting point - but it's analog, right there on the chip, and therefore subject to variances.

 

After that, we come out to the video circuitry. There are two types of NTSC compatible 9918 - the composite video version used in the TI-99/4 series, and the component version used in the ColecoVision (each machine is just an example). These signals are run out through video mixing/amplification circuitry, as necessary, which shifts the signals some.

 

Ultimately, you end up at a monitor, probably as composite video (meaning you've now lost some bandwidth -- actually on the 9918 you've lost that bandwidth before it even reaches the output pin). Now you run into a monitor's decode circuitry, where the actual color displayed depends on the alignment of the monitor's clocks with the input signal. On original monitors, where 'hue' was an adjustment control, that could literally be anything. Modern displays remove a lot of the control, so I suppose are at least more consistent. ;)

 

At any rate, we can be as true as we want to the datasheet, but the actual color displayed depends on a lot more than that internal tap. So my stance is that the best we can do it get it pretty close to an average sample, and be happy. ;)

  • Like 3

Share this post


Link to post
Share on other sites

These are from MESS.

0x000000,   //  1 black
0x21c842,   //  2 green
0x5edc78,   //  3 light green
0x5455ed,   //  4 blue
0x7d76fc,   //  5 light blue
0xd4524d,   //  6 dark red
0x42ebf5,   //  7 cyan
0xfc5554,   //  8 red
0xff7978,   //  9 light red
0xd4c154,   // 10 dark yellow
0xe6ce80,   // 11 light yellow
0x21b03b,   // 12 dark green
0xc95bba,   // 13 magenta
0xcccccc,   // 14 gray
0xffffff    // 15 white
  • Like 2

Share this post


Link to post
Share on other sites

Yep, you also have to add the fact that some people are used to watching on a television set with their /4A (and you get funky artifacts, and strangely off colors by design), and some are more in tune with a RGB monitor (i.e. Geneve).

 

The first time I looked at a Geneve hooked up via RGB and compared it to my /4A, I noticed a huge difference in some programs. So, you have the following:

 

1) Technically correct (via data sheet)

2) Correct as seen via a RF modulator on an 80's television (what people were used to)

3) Correct as seen through a composite connection on a composite monitor (shouldn't be much different than #2, but including for completeness)

4) Correct as seen through a RGB connection (EVPC, Geneve, or other 9938/9958 type of connection)

5) Correct as seen via a VGA monitor (F18A)

6) Correct as seen via emulation (Classic 99, MESS, and even these can be different because of what the author used).

Share this post


Link to post
Share on other sites

The F18A uses these for the 12-bit (4-bits per color) approximations:

 

   -- Palette 0, original 9918A NTSC color approximations
   x"000", --  0 Transparent
   x"000", --  1 Black
   x"2C3", --  2 Medium Green
   x"5D6", --  3 Light Green
   x"54F", --  4 Dark Blue
   x"76F", --  5 Light Blue
   x"D54", --  6 Dark Red
   x"4EF", --  7 Cyan
   x"F54", --  8 Medium Red
   x"F76", --  9 Light Red
   x"DC3", -- 10 Dark Yellow
   x"ED6", -- 11 Light Yellow
   x"2B2", -- 12 Dark Green
   x"C5C", -- 13 Magenta
   x"CCC", -- 14 Gray
   x"FFF", -- 15 White
These values were generated from the color data on pg. 2-17 (26 in the PDF) of the 9918A datasheet.
  • Like 1

Share this post


Link to post
Share on other sites

The F18A uses these for the 12-bit (4-bits per color) approximations:

 

   -- Palette 0, original 9918A NTSC color approximations
   x"000", --  0 Transparent
   x"000", --  1 Black
   x"2C3", --  2 Medium Green
   x"5D6", --  3 Light Green
   x"54F", --  4 Dark Blue
   x"76F", --  5 Light Blue
   x"D54", --  6 Dark Red
   x"4EF", --  7 Cyan
   x"F54", --  8 Medium Red
   x"F76", --  9 Light Red
   x"DC3", -- 10 Dark Yellow
   x"ED6", -- 11 Light Yellow
   x"2B2", -- 12 Dark Green
   x"C5C", -- 13 Magenta
   x"CCC", -- 14 Gray
   x"FFF", -- 15 White
These values were generated from the color data on pg. 2-17 (26 in the PDF) of the 9918A datasheet.

 

Matthew,

 

I am sorry for not responding to this thread when it was active, but I could suggest these values for future MESS and Classic99 emulation:

1 - Black (#000000)

2 - Medium Green (#46B83C)

3 - Light Green (#7CCF70)

4 - Dark Blue (#5D4DFF)

5 - Light Blue (#7F71FF)

6 - Dark Red (#B66247)

7 - Cyan (#5CC7EE)

8 - Medium Red (#D86B48)

9 - Light Red (#FB8F6C)

10 (A) - Dark Yellow (#C3CE42)

11 (B) - Light Yellow (#D3DB77)

12 (C ) - Dark Green (#3EA030)

13 (D) - Magenta (#B664C6)

14 (E) - Gray (#CDCDCD)

15 (F) - White (#FFFFFF)

 

The TMS9928A colors are as follows

(0.47 saturation level)

1 - Black (#000000)

2 - Medium Green (#44B54E)

3 - Light Green (#79CEEA)

4 - Dark Blue (#5B56D7)

5 - Light Blue (#8178EA)

6 - Dark Red (#B56054)

7 - Cyan (#6CDAEC)

8 - Medium Red (#D5685D)

9 - Light Red (#F98C81)

10 (A) - Dark Yellow (#CCC366)

11 (B) - Light Yellow (#DED18D)

12 (C ) - Dark Green (#3F9F45)

13 (D) - Magenta (#B469B2)

14 (E) - Gray (#CDCDCD)

15 (F) - White (#FFFFFF)

 

~Ben

Edited by ColecoFan1981

Share this post


Link to post
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...