Files
gbdk-2020/docs/api/nes_2hardware_8h.html
2025-12-27 17:53:11 -08:00

1110 lines
52 KiB
HTML

<!-- HTML header for doxygen 1.8.14-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="cache-control" content="max-age=86400"/>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GBDK 2020 Docs: gbdk-lib/include/nes/hardware.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<!-- BEGIN: doxygen-awesome-css -->
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
<script type="text/javascript" src="doxygen-awesome-paragraph-link.js"></script>
<script type="text/javascript">
DoxygenAwesomeParagraphLink.init()
</script>
<!-- END: doxygen-awesome-css -->
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GBDK 2020 Docs
&#160;<span id="projectnumber">4.5.0</span>
</div>
<div id="projectbrief">API Documentation for GBDK 2020</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('nes_2hardware_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">hardware.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;types.h&gt;</code><br />
</div>
<p><a href="nes_2hardware_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:__SHADOW_REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;&#160;&#160;extern volatile <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a></td></tr>
<tr class="separator:__SHADOW_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a>(addr)&#160;&#160;&#160;volatile __at (addr) <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a></td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_NMI"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_NMI">PPUCTRL_NMI</a>&#160;&#160;&#160;0b10000000</td></tr>
<tr class="separator:PPUCTRL_NMI"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_SPR_8X8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_SPR_8X8">PPUCTRL_SPR_8X8</a>&#160;&#160;&#160;0b00000000</td></tr>
<tr class="separator:PPUCTRL_SPR_8X8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_SPR_8X16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_SPR_8X16">PPUCTRL_SPR_8X16</a>&#160;&#160;&#160;0b00100000</td></tr>
<tr class="separator:PPUCTRL_SPR_8X16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_BG_CHR"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_BG_CHR">PPUCTRL_BG_CHR</a>&#160;&#160;&#160;0b00010000</td></tr>
<tr class="separator:PPUCTRL_BG_CHR"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_SPR_CHR"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_SPR_CHR">PPUCTRL_SPR_CHR</a>&#160;&#160;&#160;0b00001000</td></tr>
<tr class="separator:PPUCTRL_SPR_CHR"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUCTRL_INC32"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUCTRL_INC32">PPUCTRL_INC32</a>&#160;&#160;&#160;0b00000100</td></tr>
<tr class="separator:PPUCTRL_INC32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_BLUE"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_BLUE">PPUMASK_BLUE</a>&#160;&#160;&#160;0b10000000</td></tr>
<tr class="separator:PPUMASK_BLUE"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_RED"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_RED">PPUMASK_RED</a>&#160;&#160;&#160;0b01000000</td></tr>
<tr class="separator:PPUMASK_RED"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_GREEN"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_GREEN">PPUMASK_GREEN</a>&#160;&#160;&#160;0b00100000</td></tr>
<tr class="separator:PPUMASK_GREEN"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_SHOW_SPR"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_SHOW_SPR">PPUMASK_SHOW_SPR</a>&#160;&#160;&#160;0b00010000</td></tr>
<tr class="separator:PPUMASK_SHOW_SPR"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_SHOW_BG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_SHOW_BG">PPUMASK_SHOW_BG</a>&#160;&#160;&#160;0b00001000</td></tr>
<tr class="separator:PPUMASK_SHOW_BG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_SHOW_SPR_LC"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_SHOW_SPR_LC">PPUMASK_SHOW_SPR_LC</a>&#160;&#160;&#160;0b00000100</td></tr>
<tr class="separator:PPUMASK_SHOW_SPR_LC"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_SHOW_BG_LC"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_SHOW_BG_LC">PPUMASK_SHOW_BG_LC</a>&#160;&#160;&#160;0b00000010</td></tr>
<tr class="separator:PPUMASK_SHOW_BG_LC"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:PPUMASK_MONOCHROME"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#PPUMASK_MONOCHROME">PPUMASK_MONOCHROME</a>&#160;&#160;&#160;0b00000001</td></tr>
<tr class="separator:PPUMASK_MONOCHROME"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_X_OFFSET"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_X_OFFSET">DEVICE_SCREEN_X_OFFSET</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:DEVICE_SCREEN_X_OFFSET"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_Y_OFFSET"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_Y_OFFSET">DEVICE_SCREEN_Y_OFFSET</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:DEVICE_SCREEN_Y_OFFSET"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_WIDTH"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_WIDTH">DEVICE_SCREEN_WIDTH</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:DEVICE_SCREEN_WIDTH"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_HEIGHT"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_HEIGHT">DEVICE_SCREEN_HEIGHT</a>&#160;&#160;&#160;30</td></tr>
<tr class="separator:DEVICE_SCREEN_HEIGHT"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_BUFFER_WIDTH"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_BUFFER_WIDTH">DEVICE_SCREEN_BUFFER_WIDTH</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:DEVICE_SCREEN_BUFFER_WIDTH"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_BUFFER_HEIGHT"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_BUFFER_HEIGHT">DEVICE_SCREEN_BUFFER_HEIGHT</a>&#160;&#160;&#160;30</td></tr>
<tr class="separator:DEVICE_SCREEN_BUFFER_HEIGHT"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_MAP_ENTRY_SIZE"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_MAP_ENTRY_SIZE">DEVICE_SCREEN_MAP_ENTRY_SIZE</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:DEVICE_SCREEN_MAP_ENTRY_SIZE"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SPRITE_PX_OFFSET_X"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SPRITE_PX_OFFSET_X">DEVICE_SPRITE_PX_OFFSET_X</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:DEVICE_SPRITE_PX_OFFSET_X"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SPRITE_PX_OFFSET_Y"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SPRITE_PX_OFFSET_Y">DEVICE_SPRITE_PX_OFFSET_Y</a>&#160;&#160;&#160;-1</td></tr>
<tr class="separator:DEVICE_SPRITE_PX_OFFSET_Y"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_WINDOW_PX_OFFSET_X"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_WINDOW_PX_OFFSET_X">DEVICE_WINDOW_PX_OFFSET_X</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:DEVICE_WINDOW_PX_OFFSET_X"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_WINDOW_PX_OFFSET_Y"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_WINDOW_PX_OFFSET_Y">DEVICE_WINDOW_PX_OFFSET_Y</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:DEVICE_WINDOW_PX_OFFSET_Y"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_PX_WIDTH"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_PX_WIDTH">DEVICE_SCREEN_PX_WIDTH</a>&#160;&#160;&#160;(<a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_WIDTH">DEVICE_SCREEN_WIDTH</a> * 8)</td></tr>
<tr class="separator:DEVICE_SCREEN_PX_WIDTH"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:DEVICE_SCREEN_PX_HEIGHT"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_PX_HEIGHT">DEVICE_SCREEN_PX_HEIGHT</a>&#160;&#160;&#160;(<a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_HEIGHT">DEVICE_SCREEN_HEIGHT</a> * 8)</td></tr>
<tr class="separator:DEVICE_SCREEN_PX_HEIGHT"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:SCY_REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#SCY_REG">SCY_REG</a>&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#bkg_scroll_y">bkg_scroll_y</a></td></tr>
<tr class="separator:SCY_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rSCY"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#rSCY">rSCY</a>&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#SCY_REG">SCY_REG</a></td></tr>
<tr class="separator:rSCY"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:SCX_REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#SCX_REG">SCX_REG</a>&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#bkg_scroll_x">bkg_scroll_x</a></td></tr>
<tr class="separator:SCX_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rSCX"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#rSCX">rSCX</a>&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#SCX_REG">SCX_REG</a></td></tr>
<tr class="separator:rSCX"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:LY_REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#LY_REG">LY_REG</a>&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#_lcd_scanline">_lcd_scanline</a></td></tr>
<tr class="separator:LY_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rLY"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#rLY">rLY</a>&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#LY_REG">LY_REG</a></td></tr>
<tr class="separator:rLY"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:LYC_REG"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#LYC_REG">LYC_REG</a>&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#_lcd_scanline">_lcd_scanline</a></td></tr>
<tr class="separator:LYC_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rLYC"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#rLYC">rLYC</a>&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#LYC_REG">LYC_REG</a></td></tr>
<tr class="separator:rLYC"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:scroll_x_t"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#scroll_x_t">scroll_x_t</a></td></tr>
<tr class="separator:scroll_x_t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:scroll_y_t"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#scroll_y_t">scroll_y_t</a></td></tr>
<tr class="separator:scroll_y_t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2000) PPUCTRL</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2001) PPUMASK</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2002) PPUSTATUS</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2003) OAMADDR</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2004) OAMDATA</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2005) PPUSCROLL</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2006) PPUADDR</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x2007) PPUDATA</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:__REG"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#__REG">__REG</a> (0x4014) OAMDMA</td></tr>
<tr class="separator:__REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:shadow_PPUCTRL"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#shadow_PPUCTRL">shadow_PPUCTRL</a></td></tr>
<tr class="separator:shadow_PPUCTRL"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:shadow_PPUMASK"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#shadow_PPUMASK">shadow_PPUMASK</a></td></tr>
<tr class="separator:shadow_PPUMASK"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:bkg_scroll_x"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#bkg_scroll_x">bkg_scroll_x</a></td></tr>
<tr class="separator:bkg_scroll_x"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:bkg_scroll_y"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#bkg_scroll_y">bkg_scroll_y</a></td></tr>
<tr class="separator:bkg_scroll_y"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_lcd_scanline"><td class="memItemLeft" align="right" valign="top"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#_lcd_scanline">_lcd_scanline</a></td></tr>
<tr class="separator:_lcd_scanline"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:TIMA_REG"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#TIMA_REG">TIMA_REG</a></td></tr>
<tr class="separator:TIMA_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:TMA_REG"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#TMA_REG">TMA_REG</a></td></tr>
<tr class="separator:TMA_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:TAC_REG"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nes_2hardware_8h.html#TAC_REG">TAC_REG</a></td></tr>
<tr class="separator:TAC_REG"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >Defines that let the NES hardware registers be accessed from C. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="__SHADOW_REG" name="__SHADOW_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__SHADOW_REG">&#9670;&nbsp;</a></span>__SHADOW_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __SHADOW_REG&#160;&#160;&#160;extern volatile <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __REG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">addr</td><td>)</td>
<td>&#160;&#160;&#160;volatile __at (addr) <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_NMI" name="PPUCTRL_NMI"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_NMI">&#9670;&nbsp;</a></span>PPUCTRL_NMI</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_NMI&#160;&#160;&#160;0b10000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_SPR_8X8" name="PPUCTRL_SPR_8X8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_SPR_8X8">&#9670;&nbsp;</a></span>PPUCTRL_SPR_8X8</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_SPR_8X8&#160;&#160;&#160;0b00000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_SPR_8X16" name="PPUCTRL_SPR_8X16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_SPR_8X16">&#9670;&nbsp;</a></span>PPUCTRL_SPR_8X16</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_SPR_8X16&#160;&#160;&#160;0b00100000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_BG_CHR" name="PPUCTRL_BG_CHR"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_BG_CHR">&#9670;&nbsp;</a></span>PPUCTRL_BG_CHR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_BG_CHR&#160;&#160;&#160;0b00010000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_SPR_CHR" name="PPUCTRL_SPR_CHR"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_SPR_CHR">&#9670;&nbsp;</a></span>PPUCTRL_SPR_CHR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_SPR_CHR&#160;&#160;&#160;0b00001000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUCTRL_INC32" name="PPUCTRL_INC32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUCTRL_INC32">&#9670;&nbsp;</a></span>PPUCTRL_INC32</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUCTRL_INC32&#160;&#160;&#160;0b00000100</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_BLUE" name="PPUMASK_BLUE"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_BLUE">&#9670;&nbsp;</a></span>PPUMASK_BLUE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_BLUE&#160;&#160;&#160;0b10000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_RED" name="PPUMASK_RED"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_RED">&#9670;&nbsp;</a></span>PPUMASK_RED</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_RED&#160;&#160;&#160;0b01000000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_GREEN" name="PPUMASK_GREEN"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_GREEN">&#9670;&nbsp;</a></span>PPUMASK_GREEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_GREEN&#160;&#160;&#160;0b00100000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_SHOW_SPR" name="PPUMASK_SHOW_SPR"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_SHOW_SPR">&#9670;&nbsp;</a></span>PPUMASK_SHOW_SPR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_SHOW_SPR&#160;&#160;&#160;0b00010000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_SHOW_BG" name="PPUMASK_SHOW_BG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_SHOW_BG">&#9670;&nbsp;</a></span>PPUMASK_SHOW_BG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_SHOW_BG&#160;&#160;&#160;0b00001000</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_SHOW_SPR_LC" name="PPUMASK_SHOW_SPR_LC"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_SHOW_SPR_LC">&#9670;&nbsp;</a></span>PPUMASK_SHOW_SPR_LC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_SHOW_SPR_LC&#160;&#160;&#160;0b00000100</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_SHOW_BG_LC" name="PPUMASK_SHOW_BG_LC"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_SHOW_BG_LC">&#9670;&nbsp;</a></span>PPUMASK_SHOW_BG_LC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_SHOW_BG_LC&#160;&#160;&#160;0b00000010</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="PPUMASK_MONOCHROME" name="PPUMASK_MONOCHROME"></a>
<h2 class="memtitle"><span class="permalink"><a href="#PPUMASK_MONOCHROME">&#9670;&nbsp;</a></span>PPUMASK_MONOCHROME</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PPUMASK_MONOCHROME&#160;&#160;&#160;0b00000001</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_X_OFFSET" name="DEVICE_SCREEN_X_OFFSET"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_X_OFFSET">&#9670;&nbsp;</a></span>DEVICE_SCREEN_X_OFFSET</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_X_OFFSET&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_Y_OFFSET" name="DEVICE_SCREEN_Y_OFFSET"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_Y_OFFSET">&#9670;&nbsp;</a></span>DEVICE_SCREEN_Y_OFFSET</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_Y_OFFSET&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_WIDTH" name="DEVICE_SCREEN_WIDTH"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_WIDTH">&#9670;&nbsp;</a></span>DEVICE_SCREEN_WIDTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_WIDTH&#160;&#160;&#160;32</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_HEIGHT" name="DEVICE_SCREEN_HEIGHT"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_HEIGHT">&#9670;&nbsp;</a></span>DEVICE_SCREEN_HEIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_HEIGHT&#160;&#160;&#160;30</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_BUFFER_WIDTH" name="DEVICE_SCREEN_BUFFER_WIDTH"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_BUFFER_WIDTH">&#9670;&nbsp;</a></span>DEVICE_SCREEN_BUFFER_WIDTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_BUFFER_WIDTH&#160;&#160;&#160;32</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_BUFFER_HEIGHT" name="DEVICE_SCREEN_BUFFER_HEIGHT"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_BUFFER_HEIGHT">&#9670;&nbsp;</a></span>DEVICE_SCREEN_BUFFER_HEIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_BUFFER_HEIGHT&#160;&#160;&#160;30</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_MAP_ENTRY_SIZE" name="DEVICE_SCREEN_MAP_ENTRY_SIZE"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_MAP_ENTRY_SIZE">&#9670;&nbsp;</a></span>DEVICE_SCREEN_MAP_ENTRY_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_MAP_ENTRY_SIZE&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SPRITE_PX_OFFSET_X" name="DEVICE_SPRITE_PX_OFFSET_X"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SPRITE_PX_OFFSET_X">&#9670;&nbsp;</a></span>DEVICE_SPRITE_PX_OFFSET_X</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SPRITE_PX_OFFSET_X&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SPRITE_PX_OFFSET_Y" name="DEVICE_SPRITE_PX_OFFSET_Y"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SPRITE_PX_OFFSET_Y">&#9670;&nbsp;</a></span>DEVICE_SPRITE_PX_OFFSET_Y</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SPRITE_PX_OFFSET_Y&#160;&#160;&#160;-1</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_WINDOW_PX_OFFSET_X" name="DEVICE_WINDOW_PX_OFFSET_X"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_WINDOW_PX_OFFSET_X">&#9670;&nbsp;</a></span>DEVICE_WINDOW_PX_OFFSET_X</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_WINDOW_PX_OFFSET_X&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_WINDOW_PX_OFFSET_Y" name="DEVICE_WINDOW_PX_OFFSET_Y"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_WINDOW_PX_OFFSET_Y">&#9670;&nbsp;</a></span>DEVICE_WINDOW_PX_OFFSET_Y</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_WINDOW_PX_OFFSET_Y&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_PX_WIDTH" name="DEVICE_SCREEN_PX_WIDTH"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_PX_WIDTH">&#9670;&nbsp;</a></span>DEVICE_SCREEN_PX_WIDTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_PX_WIDTH&#160;&#160;&#160;(<a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_WIDTH">DEVICE_SCREEN_WIDTH</a> * 8)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="DEVICE_SCREEN_PX_HEIGHT" name="DEVICE_SCREEN_PX_HEIGHT"></a>
<h2 class="memtitle"><span class="permalink"><a href="#DEVICE_SCREEN_PX_HEIGHT">&#9670;&nbsp;</a></span>DEVICE_SCREEN_PX_HEIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEVICE_SCREEN_PX_HEIGHT&#160;&#160;&#160;(<a class="el" href="nes_2hardware_8h.html#DEVICE_SCREEN_HEIGHT">DEVICE_SCREEN_HEIGHT</a> * 8)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="SCY_REG" name="SCY_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#SCY_REG">&#9670;&nbsp;</a></span>SCY_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SCY_REG&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#bkg_scroll_y">bkg_scroll_y</a></td>
</tr>
</table>
</div><div class="memdoc">
<p >Scroll Y </p>
</div>
</div>
<a id="rSCY" name="rSCY"></a>
<h2 class="memtitle"><span class="permalink"><a href="#rSCY">&#9670;&nbsp;</a></span>rSCY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define rSCY&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#SCY_REG">SCY_REG</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="SCX_REG" name="SCX_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#SCX_REG">&#9670;&nbsp;</a></span>SCX_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SCX_REG&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#bkg_scroll_x">bkg_scroll_x</a></td>
</tr>
</table>
</div><div class="memdoc">
<p >Scroll X </p>
</div>
</div>
<a id="rSCX" name="rSCX"></a>
<h2 class="memtitle"><span class="permalink"><a href="#rSCX">&#9670;&nbsp;</a></span>rSCX</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define rSCX&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#SCX_REG">SCX_REG</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="LY_REG" name="LY_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#LY_REG">&#9670;&nbsp;</a></span>LY_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LY_REG&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#_lcd_scanline">_lcd_scanline</a></td>
</tr>
</table>
</div><div class="memdoc">
<p >LCDC Y-coordinate </p>
</div>
</div>
<a id="rLY" name="rLY"></a>
<h2 class="memtitle"><span class="permalink"><a href="#rLY">&#9670;&nbsp;</a></span>rLY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define rLY&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#LY_REG">LY_REG</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="LYC_REG" name="LYC_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#LYC_REG">&#9670;&nbsp;</a></span>LYC_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LYC_REG&#160;&#160;&#160;<a class="el" href="nes_2hardware_8h.html#_lcd_scanline">_lcd_scanline</a></td>
</tr>
</table>
</div><div class="memdoc">
<p >LY compare </p>
</div>
</div>
<a id="rLYC" name="rLYC"></a>
<h2 class="memtitle"><span class="permalink"><a href="#rLYC">&#9670;&nbsp;</a></span>rLYC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define rLYC&#160;&#160;&#160;<a class="el" href="gb_2hardware_8h.html#LYC_REG">LYC_REG</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="scroll_x_t" name="scroll_x_t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#scroll_x_t">&#9670;&nbsp;</a></span>scroll_x_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> <a class="el" href="nes_2hardware_8h.html#scroll_x_t">scroll_x_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="scroll_y_t" name="scroll_y_t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#scroll_y_t">&#9670;&nbsp;</a></span>scroll_y_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="stdint_8h.html#uint8_t">uint8_t</a> <a class="el" href="nes_2hardware_8h.html#scroll_y_t">scroll_y_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[1/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2000&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[2/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2001&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[3/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2002&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[4/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2003&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[5/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2004&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[6/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2005&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[7/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2006&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[8/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x2007&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="__REG" name="__REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#__REG">&#9670;&nbsp;</a></span>__REG() <span class="overload">[9/9]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__REG </td>
<td>(</td>
<td class="paramtype">0x4014&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="shadow_PPUCTRL" name="shadow_PPUCTRL"></a>
<h2 class="memtitle"><span class="permalink"><a href="#shadow_PPUCTRL">&#9670;&nbsp;</a></span>shadow_PPUCTRL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a> shadow_PPUCTRL</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="shadow_PPUMASK" name="shadow_PPUMASK"></a>
<h2 class="memtitle"><span class="permalink"><a href="#shadow_PPUMASK">&#9670;&nbsp;</a></span>shadow_PPUMASK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a> shadow_PPUMASK</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="bkg_scroll_x" name="bkg_scroll_x"></a>
<h2 class="memtitle"><span class="permalink"><a href="#bkg_scroll_x">&#9670;&nbsp;</a></span>bkg_scroll_x</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a> bkg_scroll_x</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="bkg_scroll_y" name="bkg_scroll_y"></a>
<h2 class="memtitle"><span class="permalink"><a href="#bkg_scroll_y">&#9670;&nbsp;</a></span>bkg_scroll_y</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a> bkg_scroll_y</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="_lcd_scanline" name="_lcd_scanline"></a>
<h2 class="memtitle"><span class="permalink"><a href="#_lcd_scanline">&#9670;&nbsp;</a></span>_lcd_scanline</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="nes_2hardware_8h.html#__SHADOW_REG">__SHADOW_REG</a> _lcd_scanline</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="TIMA_REG" name="TIMA_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#TIMA_REG">&#9670;&nbsp;</a></span>TIMA_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a> TIMA_REG</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p >Timer counter </p>
</div>
</div>
<a id="TMA_REG" name="TMA_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#TMA_REG">&#9670;&nbsp;</a></span>TMA_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a> TMA_REG</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p >Timer modulo </p>
</div>
</div>
<a id="TAC_REG" name="TAC_REG"></a>
<h2 class="memtitle"><span class="permalink"><a href="#TAC_REG">&#9670;&nbsp;</a></span>TAC_REG</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">volatile <a class="el" href="asm_2types_8h.html#UBYTE">UBYTE</a> TAC_REG</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p >Timer control </p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8bd3092e915ccc8a773a74e0a10d4d15.html">gbdk-lib</a></li><li class="navelem"><a class="el" href="dir_a9f896cff747ba031115e41245385c17.html">include</a></li><li class="navelem"><a class="el" href="dir_af92cb28f7f9115544c8de6a3c7e6d6b.html">nes</a></li><li class="navelem"><a class="el" href="nes_2hardware_8h.html">hardware.h</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
</ul>
</div>
</body>
</html>