Myths

From NESdev Wiki
Revision as of 22:15, 11 March 2010 by Tepples (talk | contribs) (→‎NTSC picture height: More generally)
Jump to navigationJump to search

This page documents some myths about the NES hardware that originate in obsolete documents and emulators.

NTSC picture height

Myth: The NTSC NES picture is 224 pixels tall.

Fact: The NTSC NES picture is 240 pixels tall. The PPU fetches and generates a signal for all 240 lines, even if TVs cut off the edges.

Some emulators simulate overscan in order to hide nametable mirroring glitches. For example, PocketNES for Game Boy Advance hides the top 16 pixels, the bottom 11, and 8 on the left and right sides. The Mega Man Anniversary Collection (GameCube/XBOX/PS2) does not display the top/bottom 8 pixels, plus an extended left/right clipping in order to hide the attribute color warp "glitch" in both sides.

Scrolling registers

Myth: You always need to use the VRAM address register ($2006) to scroll.

Fact: The proper way to set the scroll position is to write the upper bits of the X and Y coordinates to PPUCTRL ($2000), and then bits 0-7 of the X and Y coordinates to PPUSCROLL ($2005). The NES will update the VRAM address register for you near the end of the pre-render scanline (261 on NTSC, 311 on PAL).

The only time you need to use $2006 to scroll, as described in Loopy's document "The skinny on NES scrolling", is if you're trying to change the vertical part of the scroll position during rendering time. This could happen if you turn rendering on late to free up more VRAM update time or if you are splitting the screen.