I was playing Super Mario Bros. 3 recently and spent some time observing the right edge of the screen. I understand what attribute glitches are and why they occur, but I noticed three distinct types of glitches on the right side:
1. Color inconsistencies
2. A 'displaced' column of graphics from the left edge
3. A column of graphics that didn't match the left edge
I also saw a few combinations of 1 and 3.
Are all of these cases rightfully labeled as attribute glitches or are examples 2 and 3 consequences of mirroring? Case 2 makes sense if the nametable is wrapping around, but why would case 3 occur?
I'm just curious whether I'm seeing a single technical phenomena or several in combination.
Attribute glitches
Moderator: Moderators
The color inconsistencies are attribute glitches, caused by assigning the same attribute value to two completely different sets of graphics destined for the left and right side.
As for the displaced column, you'll want to start by reading Overscan on Wikipedia and Overscan on wiki.nesdev.com. The part of the NES picture within the "clean aperture" as defined in modern NTSC is 280 pixels wide. This includes 256 pixels of picture and 24 pixels of border, with more border on the left than on the right. For now, assume 14 pixels on the left and 10 pixels on the right. Now according to this article on Gamasutra, the Xbox lot check guidelines assume that TVs may have up to 7.5% overscan per side; this would cover up to 21 NES pixels at the left and right side (after subtracting border, 7 real pixels on the left and 11 on the right) and up to 18 scanlines at the top and bottom. The guidelines on the nametable planning graph paper used within Nintendo were even stricter: 16 pixels on the left and right and 24 on the top and bottom.
So I guess the coders working on a 4-way scrolling kernel in 1988 assumed players with 1970s or 1980s CRT SDTVs wouldn't see artifacts at the extreme right side of the NES picture. They could be a bit sloppy on the exact scroll placement and still get the game out the door in time for a 1988 release on the Famicom.
As for case 3, can you provide a screenshot from an emulator or video capture card?
As for the displaced column, you'll want to start by reading Overscan on Wikipedia and Overscan on wiki.nesdev.com. The part of the NES picture within the "clean aperture" as defined in modern NTSC is 280 pixels wide. This includes 256 pixels of picture and 24 pixels of border, with more border on the left than on the right. For now, assume 14 pixels on the left and 10 pixels on the right. Now according to this article on Gamasutra, the Xbox lot check guidelines assume that TVs may have up to 7.5% overscan per side; this would cover up to 21 NES pixels at the left and right side (after subtracting border, 7 real pixels on the left and 11 on the right) and up to 18 scanlines at the top and bottom. The guidelines on the nametable planning graph paper used within Nintendo were even stricter: 16 pixels on the left and right and 24 on the top and bottom.
So I guess the coders working on a 4-way scrolling kernel in 1988 assumed players with 1970s or 1980s CRT SDTVs wouldn't see artifacts at the extreme right side of the NES picture. They could be a bit sloppy on the exact scroll placement and still get the game out the door in time for a 1988 release on the Famicom.
As for case 3, can you provide a screenshot from an emulator or video capture card?