Jump to content
IGNORED

Stella Gets Some New Clothes


Trebor

Recommended Posts

 

Maybe eventually Stella can learn to emulate "warming up phase shift". :)

That's what I am hoping for as an option in both Stella and MESS (2600/7800) someday. Perhaps start with just being able to hot swap phase shift palettes with a simple keystroke; then eventually, have it automatically occur with perhaps a user adjustable timer.

 

I.E.:

Emulator/emulation start = 24.7 degrees phase shift

Then once the emulator is running for 'X' amount of minutes, bump to the next (25.2), and so on.

Link to comment
Share on other sites

Probably not anytime soon, at least until I get the current stuff done, and also if I get help with other stuff. Generating a palette from an equation (instead of having hard-coded values) is the next thing I plan to add to the TV effects. The timer thing sounds interesting, but is a low-priority thing that would have to come later.

  • Like 1
Link to comment
Share on other sites

Generating a palette from an equation (instead of having hard-coded values) is the next thing I plan to add to the TV effects.

Cool. Hoping too, whenever the time comes, it accounts for the differences of how colors look on a CRT as opposed to an LCD/LED/Plasma. More specifically, the hue begin point. Hue 1x looks more 'green' (Appears ~-60 to -45 degrees - depending on how poor/well it handles the signal/conversion and its calibration) on a flat panel as opposed to 'gold' (~-33 degrees) on a CRT for the NTSC Atari 2600 consoles. For PAL consoles, ~-57 degrees is the hue begin point.

 

Regardless, awesome work as always, stephena. I appreciate the input and look forward to whatever future developments take place under Stella...thank you!

 

In harmony with keeping it all together and documented concerning the "Ataris'" color palettes, actual console with CRT display hardware proves and technical system documentation agree on the 'gold' and not a 'green-yellow' for Hue 1x:

 

Television Interface Adaptor [TIA] (Model 1A):

post-18-0-49197500-1382451293_thumb.png

 

Atari VCS POP Field Service Manual:

post-18-0-57763300-1382451294_thumb.png

 

Stella Programmer's Guide:

post-18-0-72975400-1383446204_thumb.png

 

The NTSC Atari 2600 (TIA) and the NTSC Atari 7800 (Maria) behave exactly the same way respecting hue 1x/1$, and the behavior of colors overall, on a CRT compared to a modern day flat panel display (LCD/LED/Plasma/etc.)

 

The pot adjustment for a Atari 2600/TIA manually manipulates the degree of phase shift, while the system 'warming-up' will automatically push whatever degrees has been manually set, higher.

 

The pot adjustment for a Atari 7800/Maria manually manipulates the ratio of blue to green/blue to red, while the system 'warming-up' causes the phase shift to go higher in degrees.

 

At power on, the systems' phase shift appears as low as ~23 degrees and after a considerable consistent runtime, can be as high as ~28 degrees.

 

In general, the low end of ~23 degrees lasts for maybe several seconds, whereas higher values such as ~25-27 degrees is the most dominant during system run time. 180 degrees colorburst takes place at ~25.7 degrees (A near exact match of Hue 1x and 15x - To the naked eye they appear to be the same). It should be again emphasized that it is the desired setting of both diagnostic and test (color) carts as well as technical system documentation to match Hue 1x and Hue 15x/F$ - which is gold on a CRT.

 

However, if the system is adjusted within the first several minutes of running, the warm up/consistent system run time would cause Hue 15x (F$)to become stronger/darker gold (More brown then ultimately red-brown); as well as lean Hue 14x (E$) more brown than green. Once achieving a phase shift of 27.7, Hue 14x (E$) and 15x (F$) near-exact match Hue 1x and 2x respectively.

 

Therefore, an ideal phase shift while accounting for properly calibrating a system's color palette within the first several minutes of it running, the reality of shifting while warming up, as well as maintaining differences between 1x/2x and 14x/15x, would likely fall between a 25.7 and 27.7, leaning very strongly towards a 26.2 or 26.7. Phase shift 26.2 and 26.7 places Hue 15x/F$ between 1x and 2x, having 26.2 degrees leaning closer to 1x and 26.7 degrees leaning closer to 2x.

 

The above notion would also harmonize with what has been documented for the colors of 1x, 2x, 14x, 15x on the 2600 and 7800. 1x = Gold, 2x = Orange, 14x/E$ = Orange-Green. 15x/F$ = Light Orange. It should be mentioned that Yellow-Green is referenced at 13x/D$, nowhere near 1x. The color descriptions are best measured in the middle of the brightness scale.

 

The palettes created for both the Atari 2600 and the Atari 7800 provides (at least) base color palettes in the range of 24.7 degrees through 27.7 degrees (The 7800 palettes include additional video adjusted palette varieties due to a very popular 7800 emulator's lack of video options).

 

The Atari 5200 palette for the NTSC region follows the same conditions for color order and behavior as both the NTSC Atari 2600 and NTSC Atari 7800. Hue 1x is gold not yellow-green/green-yellow. The reference for any yellow-green/green-yellow is as mentioned earlier, 13x/D$.

 

As with the Atari 2600 & Atari 7800, the Atari 5200 palette appears different on modern displays as opposed to a CRT.

 

Per the official technical documents regarding 8-bit/Atari 5200 NTSC colors:

 

CGIA NTSC - Document D020577:

post-18-0-90692500-1383710349_thumb.png

 

GTIA C014805 NTSC:

post-18-0-99836800-1383710430_thumb.png

 

Similar to both the Atari 2600 & 7800, the 5200 'warming-up' will automatically push the degrees of phase shifting, higher.

 

There is not a denial of the math, including the formulas, behind creating what is thought 'should be' an accurate palette when viewing color information presented outside of actual hardware performance and results.

 

Evidently though, from the extensive research and investigating on what the actual console hardware does on the actual devices they were originally intended to be displayed on (CRT), which harmonizes with all the technical documentation for the console systems, the better approach seems to be finding how the data fits the consoles' color palette, rather than the consoles' color palette be dictated by what is currently perceived as data that should be referenced for them.

 

There is undoubtedly pieces either not fully understood or/and variables being left out regarding the differences of how Atari consoles display on a CRT as opposed to a modern flat panel (LCD/LED/Plasma) display in light of the numerous palette references and emulators that have hue 1x (Hue begin point) set as a green-yellow for the NTSC regions.

 

If the intent is to show the systems' color as they appear on modern display devices then the objective is certainly achieved; both with most previous palettes provided and currently being utilized external and internal to emulators outside of the ones that have been created in the threads for the Atari 2600, Atari 5200, and Atari 7800 consoles.

 

Though it should probably be, at the very least, noted, if not the preferred way, to display the NTSC palette as it appears on a CRT which has hue 1x (Hue begin point) set as gold. That is the original target display device of the Atari consoles and in turn, from where and how color choices were meant to be viewed.

 

As a final note, the blue to red (And consequently blue to green) ratio proportions may appear different on a modern flat panel display than a CRT in some instances for the Atari systems. Additionally, you may have some variation of proportions even within the same display type.

 

One side effect of this on the consoles' palette is that some values of red may appear too pink-ish - Too much blue to red [NOTE: MESS currently allows the shifting of RGB proportions (Via HLSL) which can simulate differences among various display/model types]. This is not the same as a tint/hue control; rather, the effect is similar to the pot adjustment in the 7800 console. Again though, this blue proportion issue is not exclusive to the 7800, but impacts all Atari systems on modern flat panel displays.

 

Hopefully this information and the palettes provided for the Atari systems proves helpful, beneficial, and leads to a better emulation experience and understanding,

 

Happy gaming!

 

 

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Wanted to add some clarification on the pot adjustment for the 7800. The above description/effect was based on a slightly off potentiometer setting/adjustment and did not cover its full range and complete effects. The below flushes it out more fully...

 

 

The potentiometer (pot adjustment) for the 7800 modifies the delay line
regarding colors it will exhibit and is extremely sensitive. The slightest
turn can have a significant impact.
A system whose potentiometer is not properly calibrated via
'CPS 7800 Diagnostic Test Cartridge' or/and just slightly off from the
desired factory settings may exhibit consequences such as too much blue in
place of green (Pot adjusted slightly too far left) or washed out reddish
tones in place of where most other systems display a darker reddish tones
(Pot adjusted slightly too far right).
This is a result of the phase shifting of lesser degrees (Pot adjusted more
to the left) or phase shifting of greater degrees (Pot adjusted more to the
right).
Turning the pot adjustment to the right, it can be observed that the values
of the higher end of the scale will match the lower end of the scale.
For example, after some turning to the right, the values of Dx, Ex, Fx,
can be set to match 1x, 2x, 3x.
After further turning to the right, now the palette can be brought to make
Ax, Bx, Cx, Dx, Ex, Fx will match 1x, 2x, 3x, 4x, 5x, 6x.
Ultimately though, too much turning to the right results in all colors being
wiped from the scale, excluding the hue begin point 1x (Which remains
unchanged while tweaking the potentiometer either left or right).
Continuously turning the pot adjustment to the left, red and blue become the
most dominant two colors encompassing the palette with only a slight
influence of green at the highest end of the palette (Fx), once turned all
the way leftward.
The degree range for adjustment of the phase shifting on the 7800 appears
to be as low as approximately 15 degrees when tuned all the way left, and
seems to be able to achieve as high as approximately 45 degrees when turned
right before losing all color (Excluding 1x) from the palette scale.
For even a properly calibrated system at power on, the system's phase
shift appears as low as ~23 degrees and after a considerable consistent
runtime ('warm-up'), can be as high as ~28 degrees.
Link to comment
Share on other sites

  • 1 year later...

Thanks to a recent post from Random Terrain, it caused review of what was posted prior and realize a correction was made that was never uploaded. Previously, the PAL palettes were erroneously set according to the NTSC begin point.

 

Here is the complete NTSC and (corrected) PAL set running from color phase shift ~24.7 to ~27.7 degrees with 0.5 degree increments: Stella2XX_Palettes_20150727.zip

 

For a condensed and brief explanation of the palette details, please see here.

 

Similar offerings for the 5200 and 7800 are available as well.

Link to comment
Share on other sites

Thanks for the update. After some feedback from other PAL owners, I think the dark greens at 3x and 5x are very, very similar looking. So Stella277 fits much better than Stella247.

 

BTW: Especially the darker grays are still too bright. I think 02 is about as bright as x0 for the other colors up to 0e which is about as bright as xc. Maybe the brightness signal on PAL is (also) including the color strength. So without color, the grays are darker.

Link to comment
Share on other sites

  • 4 years later...

Bumping this because I am currently working on a new palette feature in Stella. Which is not easy without having an NTSC system. :) 

 

I wonder if the "hue begin point" is static at ~33° for NTSC (~57° for PAL) or if that wanders with system settings or when warming up too. Would a higher phase shift increase the begin point too?

 

 

Link to comment
Share on other sites

After some experimenting, I think I found out how PAL palettes a generated. PAL uses YUV and here is the pseudo code for calculating U and V.

for chroma = 2 to 14
  idx = 15 - chroma
  U[idx] = sin(180 + 22.5 * chroma)
  if idx & 1 == 0 // even colors
    V[idx] = sin(180 + shift * (chroma - 3) / 2)
  else // odd colors
    V[idx] = sin(180 + shift * chroma / 2)

The "shift" parameter can be manipulated by the pot, which is very sensitive and only works in a small range. And it affects only V, for U the phase shift is set fixed to 22.5° (360° / 16). A setting of 32.7° (~360° / 11) leads to colors 3 and 2 being identical (which can be reproduced on my console). 30.0° (360° / 12) seems a good default setting. 

 

Instead of (chroma - 3) -3.5 or -4 work too. Then "shift" has to be increased accordingly. Overall color C is quite close to D.

 

Link to comment
Share on other sites

On 5/5/2020 at 6:19 AM, Thomas Jentzsch said:

Bumping this because I am currently working on a new palette feature in Stella. Which is not easy without having an NTSC system. :) 

 

I wonder if the "hue begin point" is static at ~33° for NTSC (~57° for PAL) or if that wanders with system settings or when warming up too. Would a higher phase shift increase the begin point too?

 

 

For NTSC, the "hue begin point" could almost be considered static but can be changed via a user's TV Tint setting.  I've also noticed that this can vary slightly between the different 2600 versions.  i.e.  Same tint setting with two different consoles can have a slightly different hue for $1x:  golden rod vs. a slightly lime yellow.

 

Console warm-up doesn't seem to have that much effect on the starting point... but it can greatly affect the end point.  The $Fx hue on my 4-switch Vader starts as a green and finally settles into it's final brownish/orange color after a few minutes.

 

Awesome that you are looking into this!  This is something I've been thinking about playing around with for a while.

Link to comment
Share on other sites

BTW: The initial phase shifts too when warming up. The pot has a very short usable range (~30°) and is very sensitive. Outside the range the colors suddenly jump to grayscale. To get PAL color 2 close to something yellowish, I have my console set to the minimum.

 

Now, when I turn the pot to the minimum in usable range when the console is warmed up, a cold console will just display grayscale colors. 

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