I'm taking a look at the chapter on sprites from a NES programming guide at famicom.party. There is a little table which describes what the different sprite attribute flags do:
Bit # Purpose 7 Flips sprite vertically (if "1") 6 Flips sprite horizontally (if "1") 5 Sprite priority (behind background if "1") 4–2 Not used 1–0 Palette for sprite
I'm generally amazed by how well the memory space is utilised in the console, so I was surprised to see that there are 3 bits per sprite which are not used. Two of these bits could specify a rotation orientation of the sprite. Why was this not implemented on the hardware?
Were these bits used by game programmers for their own sprite-specific information, potentially unrelated to graphics? Were they left unused intentionally for this reason?
OAMADDR
is to immediately overwrite all 256 bytes of OAM usingOAMDATA
orOAMDMA
(because you don't know what might have been corrupted).