cdb900
God Member
   
Offline

NES- The 8-bit Engine that Could
Posts: 530
Missouri
Gender:
|
The way I've always understood it (correct me if I'm wrong) is that the real limitation of the hardware lies with the number of sprites that you can have on a single horizontal plane. If there are too many sprites on a single horizontal, the game would slow down to being unplayable or crash immediately (more specifically, the graphics hardware of the NES would lock up). Reason being (again correct if I'm wrong) that the NES can't make all those calculations and still get the signal out in time for the scan pass of the TV, which screws everything up in a hurry.
The flickering you see is actually a less-than-elegant programming solution to the very real problem of situations where there are too many sprites on one horizontal. By alternating which sprites display on each scan pass, the NES can handle more sprites without affecting much gameplay. The alternating sprites produces the flickering that you see.
The best example I can think of is a Megaman game. Hop into a room with a boss robot. Stand at the opposing end of the room from the robot. Nothing happens even though your sprites are on the same horizontal plane. Now, let go with a couple of blaster shots in rapid succession (each round blaster shot is also a sprite). Suddenly, your body, the blaster shots, and the robot boss will flicker, but only the parts lined up on that horizontal plane with the shots.
Scan lines are horizontal, so vertical sprite orientation is not so much of an issue, and you can have lots of sprites lined up vertically and still be fine.
There are two types of sprites: foreground and background. The foreground ones are the ones that you usually see flicker, and the background ones are the ones you see in parallax games (like the clouds).
Various games have better and worse ways of handling an overflow on foreground sprites. Super Pitfall ain't too great, Mega Man is somewhat close to elegant, and other games use a secondary graphics chip. Another story.
|