- Software-wise, how do most games implement sprites ?
Sprite RAM is located from $fe00-$febf. You can write directly to sprite RAM to modify the
sprite attribute table but you should only do this during V-blank for reliability.
Most commercial games don't write directly to sprite RAM. Instead, they use sprite DMA
($ff46). You can just setup a sprite attribute table that is 256 byte aligned ($xx00), in
RAM for instance, and then use sprite DMA to transfer this table to sprite RAM. Often,
sprite DMA is put at the start of a V-blank interrupt. As a result, your sprite attribute
table is copied to sprite RAM automatically each V-blank.