<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>NES Scrolling 2</title> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- body { margin: 5px 5px 5px 5px; background-color: #ffffff; } /* ========== Text Styles ========== */ hr { color: #000000} body, table /* Normal text */ { font-size: 10pt; font-family: 'Arial', 'Helvetica', sans-serif; font-style: normal; font-weight: normal; color: #000000; text-decoration: none; ; } span.rvts1 /* Heading */ { font-weight: bold; color: #0000ff; } span.rvts2 /* Subheading */ { font-weight: bold; color: #000080; } span.rvts3 /* Keywords */ { font-style: italic; color: #800000; } a.rvts4, span.rvts4 /* Jump 1 */ { color: #008000; text-decoration: underline; } a.rvts5, span.rvts5 /* Jump 2 */ { color: #008000; text-decoration: underline; } span.rvts6 /* Font Hint */ { color: #808080; } span.rvts7 /* Font Hint Title */ { font-size: 15pt; font-family: 'Tahoma', 'Geneva', sans-serif; font-weight: bold; color: #404040; } span.rvts8 /* Font Hint Bold */ { font-weight: bold; color: #808080; } span.rvts9 /* Font Hint Italic */ { font-style: italic; color: #808080; } span.rvts10 /* Font Style */ { font-size: 16pt; font-family: 'Tahoma', 'Geneva', sans-serif; color: #ffffff; } span.rvts11 /* Font Style */ { font-family: 'MS Sans Serif', 'Geneva', sans-serif; color: #808080; } span.rvts12 /* Font Style */ { font-family: 'Verdana', 'Geneva', sans-serif; font-style: italic; color: #c0c0c0; } a.rvts13, span.rvts13 /* Font Style */ { font-family: 'Verdana', 'Geneva', sans-serif; font-style: italic; color: #6666ff; text-decoration: underline; } /* ========== Para Styles ========== */ p,ul,ol /* Paragraph Style */ { text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; } .rvps1 /* Centered */ { text-align: center; } .rvps2 /* Paragraph Style */ { background: #9fbed0; margin: 0px 0px 20px 0px; } .rvps3 /* Paragraph Style */ { text-align: center; background: #e4e4e4; margin: 20px 0px 0px 0px; } .rvps4 /* Paragraph Style */ { border-color: #c0c0c0; border-style: solid; border-width: 1px; border-right: none; border-bottom: none; border-left: none; background: #ffffff; padding: 3px 0px 0px 0px; margin: 27px 0px 0px 0px; } --></style> <script type="text/javascript">if(top.frames.length == 0) { top.location.href="../fceux-2.0.2.htm?{33EA1433-5AF2-4DE5-99C6-A073ECA7861A}.htm"; }</script> <meta name="generator" content="HelpNDoc Free"></head> <body> <p class=rvps2><span class=rvts10>NES Scrolling 2</span></p> <p>nes scrolling</p> <p><br></p> <p>Date: Tue, 13 Apr 1999 17:48:54 -0600</p> <p>From: loopy <zxcvzxcv@netzero.net></p> <p>Reply-To: nesdev@onelist.com</p> <p>To: nesdev@onelist.com</p> <p><br></p> <p>From: loopy <zxcvzxcv@netzero.net></p> <p><br></p> <p>(more notes on ppu logic)</p> <p><br></p> <p>you can think of bits 0,1,2,3,4 of the vram address as the "x scroll"(*8)</p> <p>that the ppu increments as it draws. as it wraps from 31 to 0, bit 10 is</p> <p>switched. you should see how this causes horizontal wrapping between name</p> <p>tables (0,1) and (2,3).</p> <p><br></p> <p>you can think of bits 5,6,7,8,9 as the "y scroll"(*8). this functions</p> <p>slightly different from the X. it wraps to 0 and bit 11 is switched when</p> <p>it's incremented from _29_ instead of 31. there are some odd side effects</p> <p>from this.. if you manually set the value above 29 (from either 2005 or</p> <p>2006), the wrapping from 29 obviously won't happen, and attrib data will be</p> <p>used as name table data. the "y scroll" still wraps to 0 from 31, but</p> <p>without switching bit 11. this explains why writing 240+ to 'Y' in 2005</p> <p>appeared as a negative scroll value.</p> <p><br></p> <p class=rvps3><span class=rvts11>2008</span></p> <p class=rvps4><span class=rvts12>This help file has been generated by the freeware version of </span><a class=rvts13 href="http://www.ibe-software.com/products/software/helpndoc/" target="_blank">HelpNDoc</a></p> </body></html>