TIA Video Faults (Atari 2600)
In search of the ultimate perfectly clean composite video out of the TIA I discovered several faults in the way the TIA generates the signals that ultimately form the composite signal.
The CleanComp includes fixes for all of these to form the perfect signal.
The pull-up resistors on the LUMA pins are too weak to pull-up the signals fast enough. This results in very slow response times on pull-up and down of the LUMA pins, which ultimately results in blurry pixels, color fringing and color bleeding on the edges.
This is due to the LUMA values changing slowly giving blurred edges, and then the color data coming in in the middle of the blurred edge, resulting in fringing.
Notice the top image is fixed and removes the fringing in the middle black and white line, whereas the unfixed signal below has a brown color fridge and blurred edges.
The red line shows the stock Atari 2600 Luma pin with its 3.3k resistors.
The blue line shows the same pin with an additional parallel 1k resistor to bring the pull up to around 767R.
Notice the 0V is not achieved with a stronger pull-up, and it floats around 0.7V in this case, which works fine for the circuitry used for generating the final composite signal. Just take it into account with your specific circuit.
The LUMA pins coming out of the TIA go through logic gates or buffers/driver circuits, that add about 10 nanosecond delays between each pin being driven. The rising vs falling edges also have different timings as shown here.
The luma pins form a 3-bit value of the brightness. If LUM0, LUM1 and LUM2 are all high that is 111 which is full brightness.
If LUM0 = 1, LUM1 = 1, LUM2 = 0 gives 011, as bit 2 (LUM2) is the most significant bit.
On rising edges, the LUM1 is triggered first, then 15ns later LUM2, and 15ns after that LUM0 is triggered.
On falling edges, the LUM1 is triggered first, then 28ns later LUM0, and 6ns after that LUM2 is triggered.
As seen, this results in the brightness levels not being set at the same point in time, and on fast changing color changes like the man in Pitfall or solid bar tests, one luma value is lagging behind the other and offset then to the color information.
This is inherent in the TIA and so this visual issue will be present in all consoles unless fixed.
This visual issue is exacerbated by the rise/fall time issue as well, and both contribute to the overall visual issue.
The propagation delay mainly causes a slight blue/yellow fringing on pure black and white (such as color bar) changes, as between changes in brightness levels there is a gap of signals overlapping and pulling the signal too low for around 10-50 nanoseconds.
Once the signals are properly delayed falling in timing correctly, you will get the Pitfall man correctly aligned and sharper transitions in color.
Once the Chroma and Luma signals are cleaned up you begin to see dot crawl. The combining of component signals to form the composite signal causes a checkerboard video artifact known as dot crawl.
Dot crawl is a defect that results from crosstalk due to the intermodulation of the chrominance and luminance components of the signal. This is usually seen when chrominance is transmitted with high bandwidth, and its spectrum reaches into the band of the luminance frequencies. Comb filters are commonly used to separate signals and eliminate these artifacts from composite sources. S-Video and component video avoid this problem as they maintain the component signals separately.
Either way, it results in somewhat periodic set of ringing pulses around 300MHz that repeat every 3.22us on average.
This causes what is best described as a checkerboard where a vertical dot appears every other line often between color/brightness boundaries.
This is unavoidable but can be reduced by tweaking the size and shape of the chroma signal. The weaker the chroma the less dot crawl but the more color fringing and softer the image. So it is a compromise between sharpness and color bleeding.
Similar to the Luma signals, the Sync signal has a too weak pull-up resistor installed of 3.3k.
As the Sync rises slowly, it blends in with the Chroma color burst signal, and the start of the chroma causes a sync tip under-voltage pulse.
This in turn causes an offset in black level between each line (as the chroma signal slightly shifts left and right every other line, so every odd line has a lower sync tip than the even line.
By correcting the Sync pull-up with a stronger 1k resistor in parallel to the 3.3k, so the effective resistance is 767R, you will get a much faster Sync pull-up, which makes the Sync signal high before the color burst comes in and pulls it low.
As you can see, the rise time is improved from 1.6us to 0.57us with the resistor. Further improvements and edges can be restored using buffers and op-amps.
And zoomed out there is no odd-line sync tip undershoot.
IMPORTANT: If you are amplifying the signal, remember to offset the Sync level off 0V otherwise the op-amp will re-add a sync tip undershoot due to a 0V signal. Offset it by 100mV to solve the issue.