Talk:NTSC video

From NESdev Wiki
Revision as of 12:56, 14 August 2014 by Tepples (talk | contribs) (→‎C++ code?: C++11 is the new official standard for C++)
Jump to navigationJump to search

The part of the PPU that generates the video signal (immediately to the right of the NMI and CLK pins) appears to consist of a very long resistor between VCC and GND with taps at various points, and one of them (closest to VCC) is a switchable pulldown to GND (no doubt for color emphasis). The logic itself can select 12 different voltage levels (00/10/20/30, 0D/1D/2D/3D, synch, colorburst L/H, and GND), and they appear to correspond to 10 distinct voltage levels - one of the duplicates is at the highest voltage (likely 20/30), and the other one is the 3rd-lowest [non-GND] voltage (not sure which one). --Quietust 17:59, 28 September 2011 (UTC)

  • With the help of ChipSim, I've traced down exactly what the 12 voltage levels correspond to - Synch (GND), Colorburst L, Color 0D, Color xE/xF and Color 1D, Colorburst H, Color 2D, Color 00, Color 10, color 3D, Color 20 and Color 30 ("and" == two signals which select the same actual voltage). --Quietust 11:17, 29 October 2012 (MDT)

Absolute Video Signal Timing

Some tests with Visual2C02 managed to confirm all of the contents of the Scanline Timing table, plus one more interesting bit of information: the offset. Specifically, the "active" region begins at cycle 4, which is when the PPU is just finishing the attribute byte fetch for the 3rd tile in the scanline (the first 2 are fetched at the end of the previous scanline). --Quietust 08:50, 1 November 2012 (MDT)

But during which cycles is sync output? We need that too to align the NES picture center relative to the NTSC standard picture center (see Overscan). --Tepples 09:41, 1 November 2012 (MDT)
It's probably been mentioned elsewhere, but for completeness: cycles 280 through 304, inclusive, which happens to correspond to when the VRAM address gets reloaded during the prerender scanline. --Quietust (talk) 07:24, 14 February 2013 (MST)

C++ code?

Is this really C++ code? Can we call it what it is, if it's not?

auto InColorPhase = [=](int color) { return (color + phase) % 12 < 6; }; // Inline function

-- Rainwarrior (talk) 07:26, 13 August 2014 (MDT)

It appears to be C++11 code. Not all C++ compilers understand C++11 yet. --Tepples (talk) 19:42, 13 August 2014 (MDT)
Am I just out of touch? Is C++11 the accepted standard now? I didn't know it was safe to call it "C++" now, but maybe it is? :S - Rainwarrior (talk) 21:08, 13 August 2014 (MDT)
Yes, it's the standard. The draft was commonly referred to as "C++0x" because they aimed to get it accepted by the end of 2009. It became C++11 when the changes were officially added to ISO C++ in 2011. --Tepples (talk) 06:56, 14 August 2014 (MDT)