I'm rewritting my PPU rendering engine to match the hardware procedure, so my question might sound silly...
The wiki says... (PPU) Cycles 257-320 - the tile data for the sprites on the next scanline are fetched here. Again, each memory access takes 2 PPU cycles to complete, and 4 are performed for each of the 8 sprites:
257 Garbage nametable byte
258 Garbage nametable byte
259 Tile bitmap low
260 Tile bitmap high (+8 bytes from tile bitmap low)
At same time, there's the sprite evaluation. Wiki says... Cycles 257-320: Sprite fetches (8 sprites total, 8 cycles per sprite)
1-4: Read the Y-coordinate(257), tile number(258), attributes(259), and X-coordinate(260) of the selected sprite from secondary OAM
5-8: Read the X-coordinate of the selected sprite from secondary OAM 4 times (while the PPU fetches the sprite tile data)
For the first empty sprite slot, this will consist of sprite #63's Y-coordinate followed by 3 $FF bytes; for subsequent empty sprite slots, this will be four $FF bytes
Well, how is this done at same time??? Could someone clarify it?
The wiki says... (PPU) Cycles 257-320 - the tile data for the sprites on the next scanline are fetched here. Again, each memory access takes 2 PPU cycles to complete, and 4 are performed for each of the 8 sprites:
257 Garbage nametable byte
258 Garbage nametable byte
259 Tile bitmap low
260 Tile bitmap high (+8 bytes from tile bitmap low)
At same time, there's the sprite evaluation. Wiki says... Cycles 257-320: Sprite fetches (8 sprites total, 8 cycles per sprite)
1-4: Read the Y-coordinate(257), tile number(258), attributes(259), and X-coordinate(260) of the selected sprite from secondary OAM
5-8: Read the X-coordinate of the selected sprite from secondary OAM 4 times (while the PPU fetches the sprite tile data)
For the first empty sprite slot, this will consist of sprite #63's Y-coordinate followed by 3 $FF bytes; for subsequent empty sprite slots, this will be four $FF bytes
Well, how is this done at same time??? Could someone clarify it?