Myths: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
Line 7: Line 7:
The PPU fetches and generates a signal for all 240 lines, even if TVs [[overscan|cut off the edges]].
The PPU fetches and generates a signal for all 240 lines, even if TVs [[overscan|cut off the edges]].


Additionally, 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 wrap "glitch" in both sides.
Additionally, 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 ==
== Scrolling registers ==

Revision as of 21:50, 11 March 2010

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.

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