| 1 | Subject: [nesdev] Re: the skinny on nes scrolling\r |
| 2 | Date: Tue, 13 Apr 1999 17:48:54 -0600\r |
| 3 | From: loopy <zxcvzxcv@netzero.net>\r |
| 4 | Reply-To: nesdev@onelist.com\r |
| 5 | To: nesdev@onelist.com\r |
| 6 | \r |
| 7 | From: loopy <zxcvzxcv@netzero.net>\r |
| 8 | \r |
| 9 | (more notes on ppu logic)\r |
| 10 | \r |
| 11 | you can think of bits 0,1,2,3,4 of the vram address as the "x scroll"(*8)\r |
| 12 | that the ppu increments as it draws. as it wraps from 31 to 0, bit 10 is\r |
| 13 | switched. you should see how this causes horizontal wrapping between name\r |
| 14 | tables (0,1) and (2,3).\r |
| 15 | \r |
| 16 | you can think of bits 5,6,7,8,9 as the "y scroll"(*8). this functions\r |
| 17 | slightly different from the X. it wraps to 0 and bit 11 is switched when\r |
| 18 | it's incremented from _29_ instead of 31. there are some odd side effects\r |
| 19 | from this.. if you manually set the value above 29 (from either 2005 or\r |
| 20 | 2006), the wrapping from 29 obviously won't happen, and attrib data will be\r |
| 21 | used as name table data. the "y scroll" still wraps to 0 from 31, but\r |
| 22 | without switching bit 11. this explains why writing 240+ to 'Y' in 2005\r |
| 23 | appeared as a negative scroll value.\r |
| 24 | \r |
| 25 | ________________________________________________________\r |
| 26 | NetZero - We believe in a FREE Internet. Shouldn't you?\r |
| 27 | Get your FREE Internet Access and Email at\r |
| 28 | http://www.netzero.net/download.html\r |
| 29 | \r |
| 30 | ------------------------------------------------------------------------\r |
| 31 | Looking for a new hobby? Want to make a new friend?\r |
| 32 | http://www.ONElist.com\r |
| 33 | Come join one of the 115,000 e-mail communities at ONElist!\r |