From 7db403150a54e7993450b4e3327b057f667abdde Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Wed, 27 Nov 2013 19:54:47 +0000 Subject: [PATCH] Added Atari 2600, 5200, and 7800 palette notes. [Robert Tuccitto] --- src/mame/video/tia.c | 79 ++++++++++++++++++++++++++++++++++++- src/mess/drivers/a7800.c | 68 +++++++++++++++++++++++++++++-- src/mess/drivers/atari400.c | 75 ++++++++++++++++++++++++++++++++--- 3 files changed, 211 insertions(+), 11 deletions(-) diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c index 5e86088025e..f8258c98a46 100644 --- a/src/mame/video/tia.c +++ b/src/mame/video/tia.c @@ -48,7 +48,82 @@ static void extend_palette(running_machine &machine) { PALETTE_INIT_MEMBER(tia_ntsc_video_device, tia_ntsc) { int i, j; -/******************************** +/******************************************************************** +Atari 2600 NTSC Palette Notes: + +Palette on a modern flat panel display (LCD, LED, Plasma, etc.) +appears different from a traditional CRT. The most outstanding +difference is Hue 1x, the hue begin point. Hue 1x looks very +'green' (~-60 to -45 degrees - depending on how poor or well it +handles the signal conversion and its calibration) on a modern +flat panel display, as opposed to 'gold' (~-33 degrees) on a CRT. + +The official technical documents: "Television Interface Adaptor +[TIA] (Model 1A)", "Atari VCS POP Field Service Manual", and +"Stella Programmer's Guide" stipulate Hue 1x to be gold. + +The system's pot adjustment manually manipulates the degree of +phase shift, while the system 'warming-up' will automatically +push whatever degrees has been manually set, higher. According +to the Atari VCS POP Field Service Manual and system diagnostic +and test (color) cart, instructions are provide to set the pot +adjustment having Hue 1x and Hue 15x (F$) match or within one +shade of each other, both a 'goldenrod'. + +At power on, the system's 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 several seconds, +whereas higher values such as ~25-27 degrees are 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). + +However, if the system is adjusted within the first several +minutes of running, the warm up, consistent system run time, +causes Hue 15x (F$) to become stronger/darker gold (More brown +then ultimately red-brown); as well as leans Hue 14x (E$) more +brown than green. Once achieving a phase shift of 27.7 degrees, +Hue 14x (E$) and Hue 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 via the pot adjustment, the reality of +shifting while warming up, as well as maintaining differences +between Hues 1x, 2x and 14x, 15x, would likely fall between 25.7 +and 27.7 degrees. Phase shifts 26.2 and 26.7 places Hue 15x/F$ +between Hue 1x and Hue 2x, having 26.2 degrees leaning closer to +Hue 1x and 26.7 degrees leaning closer to Hue 2x. + +The above notion would also harmonize with what has been +documented within "Stella Programmer's Guide" 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. Color +descriptions are best measured in the middle of the brightness +scale. It should be mentioned that Green-Yellow is referenced +at Hue 13x (D$), nowhere near Hue 1x. A Green-Yellow Hue 1x is +how the palette is manipulated and modified (in part) under a +modern flat panel display. + +Additionally, 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 2600 system. +Furthermore, you may have some variation of proportions even +within the same display type. + +One side effect of this on the console's palette is that some +values of red may appear too pinkish - Too much blue to red. +This is not the same as a traditional tint-hue control adjustment; +rather, can be demonstrated by changing the blue ratio values +via MESS HLSL settings. + +Lastly, the Atari 5200 & 7800 NTSC color palettes hold the same +hue structure order and have similar appearance differences that +are dependent upon display type. +********************************************************************/ +/********************************* Phase Shift 24.7 { 0.000, 0.000 }, { 0.192, -0.127 }, @@ -156,7 +231,7 @@ Phase Shift 27.7 { 0.099, -0.182 }, { 0.194, -0.126 }, { 0.244, -0.042 } -**********************************/ +*********************************/ static const double color[16][2] = /********************************* diff --git a/src/mess/drivers/a7800.c b/src/mess/drivers/a7800.c index da93bc8618e..75c529c71b2 100644 --- a/src/mess/drivers/a7800.c +++ b/src/mess/drivers/a7800.c @@ -68,7 +68,9 @@ 2013/10/27 Robert Tuccitto Modernized screen parameters for NTSC & PAL. - 2013/11/03 Fixed correctly typo under 26.7 7$. + 2013/11/03 Robert Tuccitto Fixed correctly typo under 26.7 7$. + + 2014/11/23 Robert Tuccitto Added NTSC Palette Notes ***************************************************************************/ #include "emu.h" @@ -98,15 +100,15 @@ static ADDRESS_MAP_START( a7800_mem, AS_PROGRAM, 8, a7800_state ) AM_RANGE(0x0460, 0x046f) /* XBOARD POKEY2 */ AM_RANGE(0x0470, 0x047f) /* XBOARD CTRL */ AM_RANGE(0x0480, 0x04ff) AM_MIRROR(0x100) AM_RAM /* RIOT RAM */ - AM_RANGE(0x1000, 0x17ff) AM_RAM /* hs SRAM */ + AM_RANGE(0x1000, 0x17ff) AM_RAM /* hs SRAM */ AM_RANGE(0x1800, 0x27ff) AM_RAM AM_RANGE(0x2800, 0x2fff) AM_RAMBANK("bank7") /* MAINRAM */ AM_RANGE(0x3000, 0x37ff) AM_RAMBANK("bank7") /* MAINRAM */ AM_RANGE(0x3800, 0x3fff) AM_RAMBANK("bank7") /* MAINRAM */ - AM_RANGE(0x3000, 0x3fff) AM_ROM /* hs ROM space */ + AM_RANGE(0x3000, 0x3fff) AM_ROM /* hs ROM space */ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* f18 hornet */ AM_RANGE(0x4000, 0xffff) AM_WRITE(a7800_cart_w) /* XBOARD SRAM */ - AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* sc */ + AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* sc */ AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank3") /* sc + ac */ AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("bank4") /* ac */ AM_RANGE(0xe000, 0xffff) AM_ROM @@ -154,7 +156,65 @@ static INPUT_PORTS_START( a7800 ) PORT_DIPSETTING(0x00, "B" ) INPUT_PORTS_END +/*************************************************************************** +Atari 7800 NTSC Palette Notes: +Palette on a modern flat panel display (LCD, LED, Plasma, etc.) appears +different from a traditional CRT. The most outstanding difference is Hue 1x, +the hue begin point. Hue 1x looks very 'green' (~-60 to -45 degrees - +depending on how poor or well it handles the signal conversion and its +calibration) on a modern flat panel display, as opposed to 'gold' (~-33 +degrees) on a CRT. + +The system's pot adjustment manually manipulates the ratio of blue to +green/blue to red, while the system 'warming-up' causes the palette phase +shift to go higher in degrees. + +At power on, the system's 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). + +However, if the system is adjusted within the first several minutes of +running, the warm up, consistent system run time, causes Hue 15x (F$) to +become stronger/darker gold (More brown then ultimately red-brown); as well +as leans Hue 14x (E$) more brown than green. Once achieving a phase shift +of 27.7, Hue 14x (E$) and Hue 15x (F$) near-exact match Hue 1x and 2x +respectively. + +Therefore, an ideal phase shift while accounting for 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. Phase shifts +26.2 degrees and 26.7 degrees places Hue 15x (F$) between Hue 1x and +Hue 2x, having 26.2 degrees leaning closer to Hue 1x and 26.7 degrees +leaning closer to Hue 2x. + +The above notion would also harmonize with what has been documented for +the colors of 1x, 2x, 14x, 15x on the 7800. 1x = Gold, 2x = Orange, +14x (E$) = Orange-Green. 15x (F$) = Light Orange. Color descriptions are +best measured in the middle of the brightness scale. It should be +mentioned that Green-Yellow is referenced at Hue 13x (D$), nowhere near +Hue 1x. A Green-Yellow Hue 1x is how the palette is manipulated and +modified (in part) under a modern flat panel display. + +Additionally, 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 7800 system. Furthermore, you may have +some variation of proportions even within the same display type. + +One side effect of this on the console's palette is that some values of +red may appear too pinkish - Too much blue to red. This is not the same +as a traditional tint-hue control adjustment; rather, can be demonstrated +by changing the blue ratio values via MESS HLSL settings. + +Lastly, the Atari 2600 & 5200 NTSC color palettes hold the same hue +structure order and have similar appearance differences that are dependent +upon display type. +***************************************************************************/ /*************************************************************************** PALETTE - 26.2 PHASE SHIFT ***************************************************************************/ diff --git a/src/mess/drivers/atari400.c b/src/mess/drivers/atari400.c index 31bc0b7e24a..6c3f83e7ef0 100644 --- a/src/mess/drivers/atari400.c +++ b/src/mess/drivers/atari400.c @@ -33,11 +33,8 @@ values 24.7 thru 27.7 degrees in 0.5 degree increments. Enabled Phase Shift 26.2 degrees as default. - NOTE: Atari system's (2600, 5200, 8bit, 7800) palette appear different - on modern flat panel displays than their original target display - device, CRT. Most noticeable is Hue 1x which is Gold on a CRT, - but appears Green-Yellow on flat panels. Other hues may be distorted - as well on flat panel displays. + 2013-11-23 Robert Tuccitto: + Added palette notes ******************************************************************************/ @@ -756,8 +753,76 @@ static INPUT_PORTS_START( a5200 ) PORT_BIT(0xff, 0x72, IPT_AD_STICK_Y) PORT_SENSITIVITY(JOYSTICK_SENSITIVITY) PORT_KEYDELTA(JOYSTICK_DELTA) PORT_MINMAX(0x00,0xe4) PORT_PLAYER(4) INPUT_PORTS_END +/*************************************************************** +Atari 5200 Palette Notes: +Palette on a modern flat panel display (LCD, LED, Plasma, etc.) +appears different from a traditional CRT. The most outstanding +difference is Hue 1x, the hue begin point. Hue 1x looks very +'green' (~-60 to -45 degrees - depending on how poor or well it +handles the signal conversion and its calibration) on a modern +flat panel display, as opposed to 'gold' (~-33 degrees) on a +CRT. The official technical document, "GTIA C014805 NTSC" +stipulates Hue 1x as gold. +The "Atari 5200 Field Service Manual" provides two different +sets of instructions in harmony with utilizing the "PAM +Diagnostic SALT Cartridge v1.1". In one account it states the +color just below and above the reference bar to be within one +shade of each other. + +Under the same reference document, directions are given for it +to be the same color. Phase Shift 25.7 degrees matches Hue 1x, +15x and the color below the reference bar. + +However, if the system is adjusted within the first several +minutes of running, the warm up, consistent system run time, +causes Hue 15x (F$) to become stronger/darker gold (More brown +then ultimately red-brown); as well as leans Hue 14x (E$) more +brown than green. Once achieving a phase shift of 27.7, +Hue 14x (E$) and Hue 15x (F$) near-exact match Hue 1x and 2x +respectively. + +Accounting for system 'warm-up', phase shifting, as well as the +instructions for it to be within one shade of each other, would +make Phase Shift 26.2 degrees or 26.7 degrees a realistic +logical choice. + +It also collaborates with the official "GTIA C014805 NTSC" +document for color order: Hue 1x = Gold, Hue 2x = Orange, +Hue 15x (F$) = Light-Orange; Phase Shift 26.2 places +Hue 15x (F$) between Hue 1x, Gold and Hue 2x, Orange; +a Light Orange in color. Color descriptions are best measured +in the middle of the brightness scale. + +It should be mentioned that Green-Yellow is referenced at +Hue 13x (D$), nowhere near Hue 1x. A Green-Yellow Hue 1x is +how the palette is manipulated and modified (in part) under +a modern flat panel display. + +Note though, even a properly calibrated console, at power on, +the 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. + +Additionally, 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 5200 system. +Furthermore, you may have some variation of proportions even +within the same display type. + +One side effect of this on the console's palette is that some +values of red may appear too pinkish - Too much blue to red. +This is not the same as a traditional tint-hue control +adjustment; rather, can be demonstrated by changing the blue +ratio values via MESS HLSL settings. + +Lastly, the Atari 2600 & 7800 NTSC color palettes hold the same +hue structure order and have similar appearance differences +dependent upon display type. +***************************************************************/ /************************************************************** * * Palette - Phase Shift 26.2