Talk:The skinny on NES scrolling: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
Rainwarrior (talk | contribs) (→Temporary X?: new section) |
Rainwarrior (talk | contribs) |
||
Line 16: | Line 16: | ||
* Revised the $2006, $2005, $2005, $2006 example to be a more practical example, explaining how to set the scroll for a specific X/Y/nametable. | * Revised the $2006, $2005, $2005, $2006 example to be a more practical example, explaining how to set the scroll for a specific X/Y/nametable. | ||
* Explanation of why the registers work this way, trying to make it easier to remember. | |||
Please check for errors, and make corrections as necessary. | Please check for errors, and make corrections as necessary. |
Revision as of 12:28, 8 January 2013
Changes 1/08/2013
I made the following changes:
- I removed the first example, since it appeared to be broken w.r.t. fine Y scroll.
- I added a note about $2007 having side effects on v, please elaborate or correct it if anything is wrong. I note that nintendulator does a weird Y-1 thing if rendering is enabled when it is used? I'm not sure what is going on there.
- Bit 14 of t was inconsistently sometimes referred to as bit 15.
- Added a note about Y increment of v, which appears to occur on pixel 250 in nintendulator? I find this confusing, so I would appreciate if someone with authoritative knowledge could correctly explain the timing for the Y increment of v. Complete wrapping logic would also be helpful.
- The imaginary bit 15 was removed from the examples at the top of the page, for clarity and consistency.
- Added examples for simple scrolling, where only X, or no split is needed.
- Revised the $2006, $2005, $2005, $2006 example to be a more practical example, explaining how to set the scroll for a specific X/Y/nametable.
- Explanation of why the registers work this way, trying to make it easier to remember.
Please check for errors, and make corrections as necessary.
- Rainwarrior 03:31, 8 January 2013 (MST)
Temporary X?
Does x also have a corresponding temporary/reload register that gets copied into x at the beginning of each line?
Correct me if I'm wrong, but can't I write $2005 anywhere in the scanline, and x should be reloaded to the expected value at the start of the next line. If there was no reload value for it, and x is immediately set by $2005, it would be absolutely critical where in the scanline I happen to set it, and I don't remember this ever being the case when trying it on an NES.
- Rainwarrior 05:01, 8 January 2013 (MST)