What is the difference between hardware sprites and software sprites?
A hardware sprite is where you use the game system sprite/object hardware to display a sprite. A software sprite is where you draw a sprite into background tiles or into a mode 3/4/5 bitmap plane. Most people don’t usually use software sprites unless they are trying to do something that can’t be performed with hardware sprites. The reason software sprites aren’t often used is because it consumes lots of CPU time to move a software sprite. The term software sprite is confusing & sometimes misleading to some. A “software sprite” is nothing more that a bunch of writes (and possibly reads) directly to tile/bitmap VRAM.