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 or 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.