I've got an idea: with the NES's many quirks, why not make a list of things that one has to do to make a game run on a real NES? This will answer the questions of the many n00bs here.
I'll start with what I know:
I'll start with what I know:
- - Wait two V-blanks on startup before doing anything with the gfx.
- Read $2002 before writing to $2005/$2006.
- Write two zeros during vblank to $2006 (if that doesn't work, write $20 then a zero to $2006).
- Use Sprite DMA instead of $2003/$2004 whenever possible.
- Write a zero to $2003 before doing a Sprite DMA.
- Do all the sprite DMA during vblank.