c62d2810 |
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 |