I don't have my code with me at the moment, but if necessary i can post it later. I rewrote the majority of my current game testing small pieces at a time, and all was well for the most part. When I added the code to display the title screen, the screen was appearing all black. I debugged it in FCE Ultra, and I found that the title logo was written correctly, but name table 1 was appearing on the screen rather than name table 1. At this point in the program, the name table to display hasn't even been changed since initialization which sets it to 0. And when I write to $2000 to change it, it always displays the same spot. Has anybody had a problem like this? Could you break the program by writing to $2005 or waiting for a vblank at the wrong time? Any help is appreciated. And again, I can post my code later on, but not at the moment.
The PPU Addresss set by $2006 is the same address used by the PPU to track the scroll. So therefore, when you change $2006, you're mucking up your scroll.
Set the scroll with a single write to $2000 (to set the nametables) and dual writes to $2005 (to set the X/Y scroll). Do this after you're done with all of your $2006 and $2007 writes. If you touch $2006 or $2007 again, your scroll will be messed with, and you'll have to reset it.
If you're just wanting to zero the scroll, then an alternative approach would be to just write zero to $2006 twice.
I think he's saying that he can see the title screen but when debugging the PPU in FCEUX, and that the wrong nametable is showing.
Looks more something to do with $2000 than to $2005 or $2006.
I think it's more of nametable and or mirroring type selection, and not about scrolling.
Well... nametable selection is scrolling (it's the coarse scroll). The 'NT select' bits in $2000 really just change bits 10 and 11 of the temp PPU address (the same address changed by $2005 and $2006). This temp address then gets copied to the real PPU address either at the start of frame rendering -- or on the second $2006 write.
EDIT -- whoops -- for a second I thought this was in nesemdev and he was talking about an emulator problem. Either way -- advice above still stands.