I saw Tokumaru's responses about preloading A,X,Y with the values, that way you could set $2006 to $3fxx, bit the first write to %2007, then fire AXY as successive writes to $2007 to minimize time this would take. So...conceptually, I would...
1) Load palette with menubar subpal
2) Wait for sprite zero hit (which I'd put at the end of the menu bar), which would look something like:
Code: Select all
checkSpriteZnotHit:
bit PPUSTATUS
bvs checkSpriteZnotHit
checkSpriteZhit:
bit PPUSTATUS
bvc checkSpriteZhit/code]
3) Turn rendering off, then push the three new values to the subpal
Then wait for next hblank (how?)
4) Turn rendering on and reset scroll.
That seems...too easy. Granted, I'm not trying to do any sort of scrolling or anything. Is it really that easy? I'm reading about waiting for hBlank, but haven't ever had to do that. How does one know when the hBlank fires (understand the concept of an hBlank, but don't know how to know when it fires like vBlank, or if it's even necessary). Or is it that sprite0 hit *forces* an hblank or something?
Thoughts?
Thanks!