Jump to content
IGNORED

TMS-9918A/9928A/9929A Colors


ColecoFan1981

Recommended Posts

Hi,

 

I would like to suggest that all of you familiar with the TMS9918A/9928A/9929A to revise the color palette for all emulators in which the supported systems use these VDPs:

 

*MESS

*Classic99

*ColEm

*ADAMEm

*Win994A

*BlueMSX

 

The palettes I'd like to submit for your future palette fixes are:

 

TMS9918A (NTSC)

Select systems: Texas Instruments TI-99/4A (NTSC), MSX (NTSC), Tomy Tutor/Pyuuta

 

Medium Green

RGB: 70.6, 183.12, 62.12

 

Light Green

RGB: 124.18, 207.89, 108.45

 

Dark Blue

RGB: 98.71, 91.4, 168.71

 

Light Blue

RGB: 127.45, 112.72, 255

 

Dark Red

RGB: 182.99, 97.67, 72.59

 

Cyan

RGB: 91.72, 199.05, 239.08

 

Medium Red

RGB: 217.07, 106.5, 72.48

 

Light Red

RGB: 252.91, 142.34, 108.32

 

Dark Yellow

RGB: 194.99, 206.26, 65.82

 

Light Yellow

RGB: 211.06, 218.68, 116.9

 

Dark Green

RGB: 60.75, 160.49, 47.26

 

Magenta

RGB: 183.02, 99.31, 198.75

 

Gray

RGB: 204.8, 204.8, 204.8

 

TMS9928A (NTSC)

Select systems: ColecoVision, Sega SG-1000, Sega SC-3000, CGL Sord M5 (NTSC)

 

Medium Green

RGB: 63.9, 184.14, 74.44

 

Light Green

RGB: 117.68, 207.75, 126.16

 

Dark Blue

RGB: 89.84, 85.45, 222.61

 

Light Blue

RGB: 128.5, 119.07, 240.02

 

Dark Red

RGB: 184.92, 94.9, 81.76

 

Cyan

RGB: 102.54, 219.71, 239.05

 

Medium Red

RGB: 218.23, 102.44, 90.32

 

Light Red

RGB: 254.07, 138.28, 126.16

 

Dark Yellow

RGB: 204.83, 195.36, 96.15

 

Light Yellow

RGB: 222.75, 208.87, 136.76

 

Dark Green

RGB: 59.3, 161.97, 65.88

 

Magenta

RGB: 182.34, 103.1, 181.04

 

Gray

RGB: 204.8, 204.8, 204.8

 

Colors for TMS9929A (PAL)

Select systems: CBS ColecoVision, MSX (PAL), CGL Sord M5 (PAL), Texas Instruments TI-99/4A (PAL)

 

Medium Green

RGB: 81.82, 202.06, 92.36

PAL Gamma correction: 72.02, 177.87, 81.3

 

Light Green

RGB: 133.04, 223.11, 141.52

PAL Gamma correction: 117.11, 196.4, 124.58

 

Dark Blue

RGB: 107.76, 103.37, 240.53

PAL Gamma correction: 94.86, 90.99, 211.73

 

Light Blue

RGB: 146.42, 136.99, 255

PAL Gamma correction: 128.89, 120.59, 224.47

 

Dark Red

RGB: 212.85, 100.78, 113

PAL Gamma correction: 187.37, 88.71, 99.47

 

Cyan

RGB: 102.54, 219.71, 239.05

PAL Gamma correction: 90.26, 193.41, 210.43

 

Medium Red

RGB: 230.7, 118.7, 130.92

PAL Gamma correction: 203.08, 104.49, 115.25

 

Light Red

RGB: 255, 151.98, 164.2

PAL Gamma correction: 224.47, 133.79, 144.54

 

Dark Yellow

RGB: 215.07, 207.36, 97.32

PAL Gamma correction: 189.32, 182.54, 85.67

 

Light Yellow

RGB: 230.43, 222.72, 112.68

PAL Gamma correction: 202.84, 196.06, 99.19

 

Dark Green

RGB: 74.66, 177.33, 81.24

PAL Gamma correction: 65.72, 156.1, 71.51

 

Magenta

RGB: 200.26, 121.02, 198.96

PAL Gamma correction: 176.29, 106.53, 175.14

 

Gray

RGB: 204.8, 204.8, 204.8

PAL Gamma correction: 180.28, 180.28, 180.28

Link to comment
Share on other sites

I would like to suggest that all of you familiar with the TMS9918A/9928A/9929A to revise the color palette for all emulators in which the supported systems use these VDPs:

 

I'm always interested in new ideas for better matching, but can you please explain what makes these colors more correct?

 

(er, not to mention, what these numbers are -- are they intended to be a 0-255 range? And why isn't white listed?)

 

hehe, thanks.

Edited by Tursi
Link to comment
Share on other sites

I would like to suggest that all of you familiar with the TMS9918A/9928A/9929A to revise the color palette for all emulators in which the supported systems use these VDPs:

 

I'm always interested in new ideas for better matching, but can you please explain what makes these colors more correct?

 

(er, not to mention, what these numbers are -- are they intended to be a 0-255 range? And why isn't white listed?)

 

hehe, thanks.

Hi,

 

The reason my values are more correct is because I took them from official TI literature.

 

Black is 0, 0, 0 for all versions of the VDP, whereas White is 255, 255, 255 for all versions.

 

I don't know if I did the PAL gamma corrections for the TMS-9929A VDP chip just right.

 

I did submit all of the 8-bit RGB values listed as being given from 0-255. What I did was to calculate all of the RGB values (listed as voltage values from 0 to 1) from the YIQ and YPbPr calculations and multiply them all by 256 (to get the 8-bit values). Any RGB value that comes up as 1 or greater from the YIQ/YPbPr calculations are truncated as 1, thus those 8-bit calculations are 255. For the PAL version the values are all multiplied by 0.875 to compensate for gamma correction.

 

~Ben

Edited by ColecoFan1981
Link to comment
Share on other sites

The reason my values are more correct is because I took them from official TI literature.

 

I'm a little curious where you think current emulators got their values from. :)

 

The values I used in Classic99 are based on the this work by Richard F. Drushel: http://users.stargate.net/~drushel/pub/coleco/twwmca/wk961201.html ). This page goes into detail on differences observed from a framegrab to the calculated values (working from an Adam). While I feel that the framegrabber adds its own variables to the mix, you'll find his calculated values are similar to what you came up with (for the 9918A). There are some notable differences, especially on the blue channel. The datasheet only gives luma and chroma for the 9918A, and Y/R-Y/B-Y for the 9928/9929. Can we see the math you used to convert to RGB? Then we can compare against Richard's work and see why the results differ.

 

Even that, though, I debate a bit. Note that this approach (pure math on the VDP datasheet) does not take into account the circuitry between the video chip and the output port, which can affect the final value. It only reflects what the chip emits at its output pin(s). On top of that, it's all somewhat subjective anyway, because the television adjustment affects the final color, too. But at the very least, IMO, a "definitive" color guide needs to take the output stage and video amp, if any, into account too.

 

Sorry to nitpick, but in classic computing, there is way too much "This is right, just do it this way". It's not always right, so if someone makes an assertion, I want to see the proof and provide correlation before moving forward. :)

  • Like 1
Link to comment
Share on other sites

The reason my values are more correct is because I took them from official TI literature.

 

I'm a little curious where you think current emulators got their values from. :)

 

The values I used in Classic99 are based on the this work by Richard F. Drushel: http://users.stargate.net/~drushel/pub/coleco/twwmca/wk961201.html ). This page goes into detail on differences observed from a framegrab to the calculated values (working from an Adam). While I feel that the framegrabber adds its own variables to the mix, you'll find his calculated values are similar to what you came up with (for the 9918A). There are some notable differences, especially on the blue channel. The datasheet only gives luma and chroma for the 9918A, and Y/R-Y/B-Y for the 9928/9929. Can we see the math you used to convert to RGB? Then we can compare against Richard's work and see why the results differ.

 

Even that, though, I debate a bit. Note that this approach (pure math on the VDP datasheet) does not take into account the circuitry between the video chip and the output port, which can affect the final value. It only reflects what the chip emits at its output pin(s). On top of that, it's all somewhat subjective anyway, because the television adjustment affects the final color, too. But at the very least, IMO, a "definitive" color guide needs to take the output stage and video amp, if any, into account too.

 

Sorry to nitpick, but in classic computing, there is way too much "This is right, just do it this way". It's not always right, so if someone makes an assertion, I want to see the proof and provide correlation before moving forward. :)

 

I base all these calculations from the matrices of Charles Poynton (http://www.poynton.com/):

 

YIQ

R = Y + 0.9563 * I + 0.621 * Q

G = Y - 0.2721 * I - 0.6474 * Q

B = Y - 1.107 * I + 1.7046 * Q

 

YPbPr

R = Y + 1.402 * Pr

G = Y - 0.344136 * Pb - 0.714136 * Pr

B = Y + 1.772 * Pb

 

Also - how do I submit palette strips to this site? I want to do that so I can be able to have you see these calculated values in color.

 

~Ben

Edited by ColecoFan1981
Link to comment
Share on other sites

Cool, thanks for adding the details!

 

I won't be able to do my verification for a little while now.. my gear is all packed and I'm about to hit the road for my cross-country move, but I will bookmark this thread for when I get settled. It's nice to move forward a bit.

Link to comment
Share on other sites

  • 4 weeks later...

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...