I usually read $2002 on the start of my NMI routine to set the $2005/6 latch to a know state and clear the NMI flag all at once. Then, since I always write to $2006 in pairs during VBlank updates, and then to $2005 in pair too, it's useless to read $2002 again.
Reading $2002 is still needed for exemple if you write timed code during the frame to have a wavy effect, only $2005.1 writes are needed, so instead of writing twice to $2005 you can rather read $2002, and then write once your HScroll to $2005, and this several times.
Automatic scrolling
Moderator: Moderators