Does the NES need more time to process the graphics if there are more sprites in the visible area of the screen or doesn't this matter?
After all, there are always 64 sprites.
So, when a game lags because there are too many characters on the screen, is this because of the actual update done by the PPU or is it just because the game logic code for i = 0 to 63 UpdateSpriteAttribute(i) takes longer than for i = 0 to 11 UpdateSpriteAttribute(i)?
I can imagine both versions because I imagine that if the PPU detects that the Y position is outside the visible area, it doesn't do any drawing at all and therefore saves time.
Also, what about changing the sprites? If I have 10 sprites on screen that don't move at all, is this quicker for the PPU than 10 sprites that change their position and attribute in every frame?
The PPU reads the sprites from a specified location via DMA. So, I would assume that non-movement between two frames takes the same amount of time than movement. Because the PPU reads the sprites anew every time and therefore cannot know beforehand which sprites have changed and which have not. (Unlike the background where you manually choose which tiles to change by setting the PPU address that you want to draw to.)
What do you say?
After all, there are always 64 sprites.
So, when a game lags because there are too many characters on the screen, is this because of the actual update done by the PPU or is it just because the game logic code for i = 0 to 63 UpdateSpriteAttribute(i) takes longer than for i = 0 to 11 UpdateSpriteAttribute(i)?
I can imagine both versions because I imagine that if the PPU detects that the Y position is outside the visible area, it doesn't do any drawing at all and therefore saves time.
Also, what about changing the sprites? If I have 10 sprites on screen that don't move at all, is this quicker for the PPU than 10 sprites that change their position and attribute in every frame?
The PPU reads the sprites from a specified location via DMA. So, I would assume that non-movement between two frames takes the same amount of time than movement. Because the PPU reads the sprites anew every time and therefore cannot know beforehand which sprites have changed and which have not. (Unlike the background where you manually choose which tiles to change by setting the PPU address that you want to draw to.)
What do you say?