Files
ComSquare/PPU_8hpp_source.html
AnonymusRaccoon d33b0ab52d Deploying the doc
2021-07-13 21:32:24 +00:00

248 lines
49 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<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.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ComSquare: sources/PPU/PPU.hpp Source File</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="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" />
</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">ComSquare
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_08d237fc27d4ecd563f71c5d52f2fecc.html">sources</a></li><li class="navelem"><a class="el" href="dir_596bfb3d48f2f085998f77aaf2d42ecf.html">PPU</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">PPU.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="PPU_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Created by cbihan on 1/27/20.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; </div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AMemory_8hpp.html">Memory/AMemory.hpp</a>&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="MemoryBus_8hpp.html">Memory/MemoryBus.hpp</a>&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRenderer_8hpp.html">Renderer/IRenderer.hpp</a>&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Ram_8hpp.html">Ram/Ram.hpp</a>&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Vector2_8hpp.html">Models/Vector2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Background_8hpp.html">Background.hpp</a>&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PPUUtils_8hpp.html">PPU/PPUUtils.hpp</a>&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PPURegisters_8hpp.html">PPU/PPURegisters.hpp</a>&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifdef DEBUGGER_ENABLED</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="RAMTileRenderer_8hpp.html">Debugger/TileViewer/RAMTileRenderer.hpp</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="PPU_8hpp.html#a0cf2d82c57a09723ab59e6f4dcc45b84"> 22</a></span>&#160;<span class="preprocessor">#define FALLTHROUGH __attribute__((fallthrough));</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceComSquare_1_1PPU_1_1Utils.html">ComSquare::PPU::Utils</a></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">struct </span>PpuState;</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceComSquare_1_1PPU.html">ComSquare::PPU</a></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#a306e77b75ef8111cf90df12506928dd8"> 31</a></span>&#160; <span class="keyword">static</span> constexpr uint32_t <a class="code" href="namespaceComSquare_1_1PPU.html#a306e77b75ef8111cf90df12506928dd8">VramSize</a> = 65536;</div>
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#ad45d76cac81d6f187ba6cf90302cbb3f"> 32</a></span>&#160; <span class="keyword">static</span> constexpr uint32_t <a class="code" href="namespaceComSquare_1_1PPU.html#ad45d76cac81d6f187ba6cf90302cbb3f">CGRamSize</a> = 512;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#a83cde84750156e6453ddd85227ea23e2"> 33</a></span>&#160; <span class="keyword">static</span> constexpr uint32_t <a class="code" href="namespaceComSquare_1_1PPU.html#a83cde84750156e6453ddd85227ea23e2">OAMRamSize</a> = 544;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">class </span><a class="code" href="classComSquare_1_1PPU_1_1Background.html">Background</a>;</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2ed"> 38</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2ed">BgName</a> {</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda0c57e8a56d7066f126bba8111a3d531d"> 39</a></span>&#160; <a class="code" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda0c57e8a56d7066f126bba8111a3d531d">Background1</a> = 0,</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2edafc5ae0602bcef28db940cef6ea122676"> 40</a></span>&#160; <a class="code" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2edafc5ae0602bcef28db940cef6ea122676">Background2</a>,</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda01c672113c1cef0b21cea5a14496dc2a"> 41</a></span>&#160; <a class="code" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda01c672113c1cef0b21cea5a14496dc2a">Background3</a>,</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda43f547df3844d7529a5ba777df5d39a1"> 42</a></span>&#160; <a class="code" href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda43f547df3844d7529a5ba777df5d39a1">Background4</a></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; };</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html"> 46</a></span>&#160; <span class="keyword">class </span><a class="code" href="classComSquare_1_1PPU_1_1PPU.html">PPU</a> : <span class="keyword">public</span> <a class="code" href="classComSquare_1_1Memory_1_1AMemory.html">Memory::AMemory</a> {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#ad86b44ad60107f2286995cafa014cd01"> 49</a></span>&#160; <a class="code" href="classComSquare_1_1Ram_1_1Ram.html">Ram::Ram</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ad86b44ad60107f2286995cafa014cd01">vram</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#a362bb5173fb0bdea1acf0e10a09a337e"> 50</a></span>&#160; <a class="code" href="classComSquare_1_1Ram_1_1Ram.html">Ram::Ram</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a362bb5173fb0bdea1acf0e10a09a337e">oamram</a>;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#aa573d4749d01d718394929cab3c598a8"> 51</a></span>&#160; <a class="code" href="classComSquare_1_1Ram_1_1Ram.html">Ram::Ram</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#aa573d4749d01d718394929cab3c598a8">cgram</a>;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#abaa6ac7d16bccfaf3203690006407c43"> 54</a></span>&#160; <a class="code" href="structComSquare_1_1PPU_1_1Registers.html">Registers</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#abaa6ac7d16bccfaf3203690006407c43">_registers</a>{};</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#a407858f99ca810551cbf603643f5d9c0"> 55</a></span>&#160; <a class="code" href="classComSquare_1_1Renderer_1_1IRenderer.html">Renderer::IRenderer</a> &amp;<a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a407858f99ca810551cbf603643f5d9c0">_renderer</a>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#ab3e9f1f1b7a4bf62591a539f013ba0f6"> 57</a></span>&#160; <a class="code" href="classComSquare_1_1PPU_1_1Background.html">Background</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ab3e9f1f1b7a4bf62591a539f013ba0f6">_backgrounds</a>[4];</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#add7f67f6b27d36247d125f17c5775062"> 59</a></span>&#160; std::array&lt;std::array&lt;uint32_t, 1024&gt;, 1024&gt; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#add7f67f6b27d36247d125f17c5775062">_mainScreen</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#a57487b875fea6a12febe5e870d20837e"> 60</a></span>&#160; std::array&lt;std::array&lt;uint8_t, 1024&gt;, 1024&gt; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a57487b875fea6a12febe5e870d20837e">_mainScreenLevelMap</a>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#af12eaf41911eefdd37555e0476115e14"> 62</a></span>&#160; std::array&lt;std::array&lt;uint8_t, 1024&gt;, 1024&gt; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#af12eaf41911eefdd37555e0476115e14">_subScreenLevelMap</a>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#af057977b5bb60129416c1f0a983a011a"> 63</a></span>&#160; std::array&lt;std::array&lt;uint32_t, 1024&gt;, 1024&gt; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#af057977b5bb60129416c1f0a983a011a">_subScreen</a>;</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#a6509f71521ada9e75719523b386fb0d3"> 65</a></span>&#160; std::array&lt;std::array&lt;uint32_t, 1024&gt;, 1024&gt; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a6509f71521ada9e75719523b386fb0d3">_screen</a>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#a4980b30d26b2d85d85b8979fd82ccd0f"> 67</a></span>&#160; uint16_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a4980b30d26b2d85d85b8979fd82ccd0f">_vramReadBuffer</a> = 0;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#ae41d7bf33052120359fa7899b11d7f01"> 69</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structComSquare_1_1PPU_1_1Utils_1_1PpuState.html">Utils::PpuState</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ae41d7bf33052120359fa7899b11d7f01">_ppuState</a>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a32c65d7f7979cfca7cd2adafa8e7872b">PPU</a>(<a class="code" href="classComSquare_1_1Renderer_1_1IRenderer.html">Renderer::IRenderer</a> &amp;renderer);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a32c65d7f7979cfca7cd2adafa8e7872b">PPU</a>(<span class="keyword">const</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html">PPU</a> &amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a9ccf20fbee09b676e1ba5fe2aa103b2c">~PPU</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classComSquare_1_1PPU_1_1PPU.html">PPU</a> &amp;<a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a27480bcc2579727b5e2eb9e6eb229fd9">operator=</a>(<span class="keyword">const</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html">PPU</a> &amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint8_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#afb3e0bd3fdeddb091813ef3c36b20607">read</a>(<a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#aaf2261c0ef235d3181b038355b97cbe3">write</a>(<a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr, uint8_t data) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; [[nodiscard]] std::string <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a19a8610b12f36db9d236108c5de7b42b">getName</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; [[nodiscard]] <a class="code" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#aa2cf0928eaa6dab3bb1b933f35c273ef">getComponent</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; [[nodiscard]] <a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a896e5d0f9c12c8edae06a53507ffec3c">getSize</a>() <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ad5bd06e12111b66f47f978c830358eb1">update</a>(<span class="keywordtype">unsigned</span> cycles);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; [[nodiscard]] uint16_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a0d0dd36b81abee84e9f7ab5bd554a226">getVramAddress</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; [[nodiscard]] std::string <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ad216351b7b356ed3ae700aec322c59a2">getValueName</a>(<a class="code" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) <span class="keyword">const override</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint16_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a87429a22842e735077dc751b455c2316">cgramRead</a>(uint16_t addr);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; [[nodiscard]] <span class="keywordtype">int</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a60220b5c039f6b8de5c158ae7e3b7ce4">getBPP</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; [[nodiscard]] <a class="code" href="classComSquare_1_1Vector2.html">Vector2&lt;int&gt;</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a6d2cf0aa3ae5cb1dc8677cca36426dbc">getCharacterSize</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; [[nodiscard]] uint16_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a582e764ce8f7d1ab8043adf06f82ef22">getTileMapStartAddress</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; [[nodiscard]] uint16_t <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#aac705d7ecf43ca0d526189cf09ab5210">getTilesetAddress</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; [[nodiscard]] <a class="code" href="classComSquare_1_1Vector2.html">Vector2&lt;bool&gt;</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#addeac16b1ae0deffc8bfd276ecac75a1">getBackgroundMirroring</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ac4b8a7b151db77a53bba86677b5c345c">renderMainAndSubScreen</a>();</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> levelLow, <span class="keywordtype">int</span> levelHigh&gt;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classComSquare_1_1PPU_1_1PPU.html#acca3aa4724aa9cd2a5e10abe6eb3106e"> 119</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#acca3aa4724aa9cd2a5e10abe6eb3106e">addToMainSubScreen</a>(<a class="code" href="classComSquare_1_1PPU_1_1Background.html">Background</a> &amp;bg)</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classComSquare_1_1PPU_1_1PPU.html#abaa6ac7d16bccfaf3203690006407c43">_registers</a>.<a class="code" href="structComSquare_1_1PPU_1_1Registers.html#ac59c1107ddbd18303dbc4dbb35525a59">_t</a>[0].<a class="code" href="structComSquare_1_1PPU_1_1Registers.html#aaa5d608216594d1f98aaafbf58b3e833">raw</a> &amp; (1U &lt;&lt; (bg.<a class="code" href="classComSquare_1_1PPU_1_1Background.html#a1b4fa72ca4ed04e1e202eba59239cf7e">getBgNumber</a>() - 1U))) {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; Background::mergeBackgroundBuffer&lt;levelLow, levelHigh&gt;(this-&gt;_mainScreen, this-&gt;_mainScreenLevelMap, bg);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classComSquare_1_1PPU_1_1PPU.html#abaa6ac7d16bccfaf3203690006407c43">_registers</a>.<a class="code" href="structComSquare_1_1PPU_1_1Registers.html#ac59c1107ddbd18303dbc4dbb35525a59">_t</a>[1].<a class="code" href="structComSquare_1_1PPU_1_1Registers.html#aaa5d608216594d1f98aaafbf58b3e833">raw</a> &amp; (1U &lt;&lt; (bg.<a class="code" href="classComSquare_1_1PPU_1_1Background.html#a1b4fa72ca4ed04e1e202eba59239cf7e">getBgNumber</a>() - 1U))) {</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; Background::mergeBackgroundBuffer&lt;levelLow, levelHigh&gt;(this-&gt;_subScreen, this-&gt;_subScreenLevelMap, bg);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; [[nodiscard]] <span class="keywordtype">int</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ae08ff246e9498ed2fb8243f7cac8e9ac">getBgMode</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#ac465b2008d33e247b9235fc29420f497">updateVramReadBuffer</a>();</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; [[nodiscard]] <a class="code" href="classComSquare_1_1Vector2.html">Vector2&lt;int&gt;</a> <a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a6c20e7b57078f378d9bc357392ade826">getBgScroll</a>(<span class="keywordtype">int</span> bgNumber) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; [[nodiscard]] <span class="keyword">const</span> <a class="code" href="structComSquare_1_1PPU_1_1Registers.html">Registers</a> &amp;<a class="code" href="classComSquare_1_1PPU_1_1PPU.html#a2bd3c50e95e56897792a02b236f7f142">getWriteRegisters</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; };</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_abbb9c28b76bb2ed5fd79a01a5882a2eda01c672113c1cef0b21cea5a14496dc2a"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda01c672113c1cef0b21cea5a14496dc2a">ComSquare::PPU::Background3</a></div><div class="ttdeci">@ Background3</div><div class="ttdef"><b>Definition:</b> PPU.hpp:41</div></div>
<div class="ttc" id="aMemoryBus_8hpp_html"><div class="ttname"><a href="MemoryBus_8hpp.html">MemoryBus.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_aaf2261c0ef235d3181b038355b97cbe3"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#aaf2261c0ef235d3181b038355b97cbe3">ComSquare::PPU::PPU::write</a></div><div class="ttdeci">void write(uint24_t addr, uint8_t data) override</div><div class="ttdoc">Write data to this component.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:82</div></div>
<div class="ttc" id="aclassComSquare_1_1Ram_1_1Ram_html"><div class="ttname"><a href="classComSquare_1_1Ram_1_1Ram.html">ComSquare::Ram::Ram</a></div><div class="ttdef"><b>Definition:</b> Ram.hpp:14</div></div>
<div class="ttc" id="anamespaceComSquare_html_a891b49feb5c3e0aaa4873ff19b49968c"><div class="ttname"><a href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">ComSquare::Component</a></div><div class="ttdeci">Component</div><div class="ttdef"><b>Definition:</b> Components.hpp:9</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a362bb5173fb0bdea1acf0e10a09a337e"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a362bb5173fb0bdea1acf0e10a09a337e">ComSquare::PPU::PPU::oamram</a></div><div class="ttdeci">Ram::Ram oamram</div><div class="ttdef"><b>Definition:</b> PPU.hpp:50</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a6509f71521ada9e75719523b386fb0d3"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a6509f71521ada9e75719523b386fb0d3">ComSquare::PPU::PPU::_screen</a></div><div class="ttdeci">std::array&lt; std::array&lt; uint32_t, 1024 &gt;, 1024 &gt; _screen</div><div class="ttdoc">Final Screen buffer.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:65</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a19a8610b12f36db9d236108c5de7b42b"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a19a8610b12f36db9d236108c5de7b42b">ComSquare::PPU::PPU::getName</a></div><div class="ttdeci">std::string getName() const override</div><div class="ttdoc">Get the name of this accessor (used for debug purpose)</div><div class="ttdef"><b>Definition:</b> PPU.cpp:336</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a896e5d0f9c12c8edae06a53507ffec3c"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a896e5d0f9c12c8edae06a53507ffec3c">ComSquare::PPU::PPU::getSize</a></div><div class="ttdeci">uint24_t getSize() const override</div><div class="ttdoc">Get the size of the data. This size can be lower than the mapped data.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:277</div></div>
<div class="ttc" id="aVector2_8hpp_html"><div class="ttname"><a href="Vector2_8hpp.html">Vector2.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_addeac16b1ae0deffc8bfd276ecac75a1"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#addeac16b1ae0deffc8bfd276ecac75a1">ComSquare::PPU::PPU::getBackgroundMirroring</a></div><div class="ttdeci">Vector2&lt; bool &gt; getBackgroundMirroring(int bgNumber) const</div><div class="ttdoc">Tells if the tilemap is expanded for the x and y directions.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:545</div></div>
<div class="ttc" id="astructComSquare_1_1PPU_1_1Registers_html_ac59c1107ddbd18303dbc4dbb35525a59"><div class="ttname"><a href="structComSquare_1_1PPU_1_1Registers.html#ac59c1107ddbd18303dbc4dbb35525a59">ComSquare::PPU::Registers::_t</a></div><div class="ttdeci">union ComSquare::PPU::Registers::@96 _t[2]</div><div class="ttdoc">TM - TS Registers (Main &amp; Sub Screen Designation)</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1Background_html_a1b4fa72ca4ed04e1e202eba59239cf7e"><div class="ttname"><a href="classComSquare_1_1PPU_1_1Background.html#a1b4fa72ca4ed04e1e202eba59239cf7e">ComSquare::PPU::Background::getBgNumber</a></div><div class="ttdeci">int getBgNumber() const</div><div class="ttdoc">Get the BackGround Number.</div><div class="ttdef"><b>Definition:</b> Background.cpp:153</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_abaa6ac7d16bccfaf3203690006407c43"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#abaa6ac7d16bccfaf3203690006407c43">ComSquare::PPU::PPU::_registers</a></div><div class="ttdeci">Registers _registers</div><div class="ttdoc">Init ppuRegisters.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:54</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a57487b875fea6a12febe5e870d20837e"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a57487b875fea6a12febe5e870d20837e">ComSquare::PPU::PPU::_mainScreenLevelMap</a></div><div class="ttdeci">std::array&lt; std::array&lt; uint8_t, 1024 &gt;, 1024 &gt; _mainScreenLevelMap</div><div class="ttdef"><b>Definition:</b> PPU.hpp:60</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a32c65d7f7979cfca7cd2adafa8e7872b"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a32c65d7f7979cfca7cd2adafa8e7872b">ComSquare::PPU::PPU::PPU</a></div><div class="ttdeci">PPU(Renderer::IRenderer &amp;renderer)</div><div class="ttdef"><b>Definition:</b> PPU.cpp:18</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_ad45d76cac81d6f187ba6cf90302cbb3f"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#ad45d76cac81d6f187ba6cf90302cbb3f">ComSquare::PPU::CGRamSize</a></div><div class="ttdeci">static constexpr uint32_t CGRamSize</div><div class="ttdef"><b>Definition:</b> PPU.hpp:32</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_aac705d7ecf43ca0d526189cf09ab5210"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#aac705d7ecf43ca0d526189cf09ab5210">ComSquare::PPU::PPU::getTilesetAddress</a></div><div class="ttdeci">uint16_t getTilesetAddress(int bgNumber) const</div><div class="ttdoc">Give the address to find the correct tileset for a given x and y.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:536</div></div>
<div class="ttc" id="aAMemory_8hpp_html"><div class="ttname"><a href="AMemory_8hpp.html">AMemory.hpp</a></div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_abbb9c28b76bb2ed5fd79a01a5882a2eda0c57e8a56d7066f126bba8111a3d531d"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda0c57e8a56d7066f126bba8111a3d531d">ComSquare::PPU::Background1</a></div><div class="ttdeci">@ Background1</div><div class="ttdef"><b>Definition:</b> PPU.hpp:39</div></div>
<div class="ttc" id="astructComSquare_1_1PPU_1_1Registers_html"><div class="ttname"><a href="structComSquare_1_1PPU_1_1Registers.html">ComSquare::PPU::Registers</a></div><div class="ttdef"><b>Definition:</b> PPURegisters.hpp:145</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ac4b8a7b151db77a53bba86677b5c345c"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ac4b8a7b151db77a53bba86677b5c345c">ComSquare::PPU::PPU::renderMainAndSubScreen</a></div><div class="ttdeci">void renderMainAndSubScreen()</div><div class="ttdoc">Render the Main and sub screen correctly.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:553</div></div>
<div class="ttc" id="aRAMTileRenderer_8hpp_html"><div class="ttname"><a href="RAMTileRenderer_8hpp.html">RAMTileRenderer.hpp</a></div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html">ComSquare::PPU</a></div><div class="ttdef"><b>Definition:</b> Background.cpp:11</div></div>
<div class="ttc" id="aInts_8hpp_html_a89f009aaf5d1964a000f44f09fa0bcf8"><div class="ttname"><a href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a></div><div class="ttdeci">unsigned uint24_t</div><div class="ttdef"><b>Definition:</b> Ints.hpp:10</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_add7f67f6b27d36247d125f17c5775062"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#add7f67f6b27d36247d125f17c5775062">ComSquare::PPU::PPU::_mainScreen</a></div><div class="ttdeci">std::array&lt; std::array&lt; uint32_t, 1024 &gt;, 1024 &gt; _mainScreen</div><div class="ttdoc">Main Screen buffer.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:59</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_af12eaf41911eefdd37555e0476115e14"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#af12eaf41911eefdd37555e0476115e14">ComSquare::PPU::PPU::_subScreenLevelMap</a></div><div class="ttdeci">std::array&lt; std::array&lt; uint8_t, 1024 &gt;, 1024 &gt; _subScreenLevelMap</div><div class="ttdoc">Sub Screen buffer.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:62</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a60220b5c039f6b8de5c158ae7e3b7ce4"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a60220b5c039f6b8de5c158ae7e3b7ce4">ComSquare::PPU::PPU::getBPP</a></div><div class="ttdeci">int getBPP(int bgNumber) const</div><div class="ttdoc">get the bpp depending of the bgNumber and the Bgmode</div><div class="ttdef"><b>Definition:</b> PPU.cpp:487</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a6c20e7b57078f378d9bc357392ade826"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a6c20e7b57078f378d9bc357392ade826">ComSquare::PPU::PPU::getBgScroll</a></div><div class="ttdeci">Vector2&lt; int &gt; getBgScroll(int bgNumber) const</div><div class="ttdoc">update the Vram buffer</div><div class="ttdef"><b>Definition:</b> PPU.cpp:673</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1Background_html"><div class="ttname"><a href="classComSquare_1_1PPU_1_1Background.html">ComSquare::PPU::Background</a></div><div class="ttdef"><b>Definition:</b> Background.hpp:20</div></div>
<div class="ttc" id="astructComSquare_1_1PPU_1_1Utils_1_1PpuState_html"><div class="ttname"><a href="structComSquare_1_1PPU_1_1Utils_1_1PpuState.html">ComSquare::PPU::Utils::PpuState</a></div><div class="ttdoc">Struct to save all specific variables needed for the registers (prev values for example)</div><div class="ttdef"><b>Definition:</b> PPUUtils.hpp:51</div></div>
<div class="ttc" id="aPPUUtils_8hpp_html"><div class="ttname"><a href="PPUUtils_8hpp.html">PPUUtils.hpp</a></div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_abbb9c28b76bb2ed5fd79a01a5882a2ed"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2ed">ComSquare::PPU::BgName</a></div><div class="ttdeci">BgName</div><div class="ttdoc">Enum to access more easily the ppu background array.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:38</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_a83cde84750156e6453ddd85227ea23e2"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#a83cde84750156e6453ddd85227ea23e2">ComSquare::PPU::OAMRamSize</a></div><div class="ttdeci">static constexpr uint32_t OAMRamSize</div><div class="ttdef"><b>Definition:</b> PPU.hpp:33</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ac465b2008d33e247b9235fc29420f497"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ac465b2008d33e247b9235fc29420f497">ComSquare::PPU::PPU::updateVramReadBuffer</a></div><div class="ttdeci">void updateVramReadBuffer()</div><div class="ttdoc">update the Vram buffer</div><div class="ttdef"><b>Definition:</b> PPU.cpp:667</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a2bd3c50e95e56897792a02b236f7f142"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a2bd3c50e95e56897792a02b236f7f142">ComSquare::PPU::PPU::getWriteRegisters</a></div><div class="ttdeci">const Registers &amp; getWriteRegisters() const</div><div class="ttdoc">Allow to look the value of each write register (used by Register debugger)</div><div class="ttdef"><b>Definition:</b> PPU.cpp:678</div></div>
<div class="ttc" id="astructComSquare_1_1PPU_1_1Registers_html_aaa5d608216594d1f98aaafbf58b3e833"><div class="ttname"><a href="structComSquare_1_1PPU_1_1Registers.html#aaa5d608216594d1f98aaafbf58b3e833">ComSquare::PPU::Registers::raw</a></div><div class="ttdeci">uint8_t raw</div><div class="ttdef"><b>Definition:</b> PPURegisters.hpp:155</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ab3e9f1f1b7a4bf62591a539f013ba0f6"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ab3e9f1f1b7a4bf62591a539f013ba0f6">ComSquare::PPU::PPU::_backgrounds</a></div><div class="ttdeci">Background _backgrounds[4]</div><div class="ttdoc">Backgrounds buffers.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:57</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ad5bd06e12111b66f47f978c830358eb1"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ad5bd06e12111b66f47f978c830358eb1">ComSquare::PPU::PPU::update</a></div><div class="ttdeci">virtual void update(unsigned cycles)</div><div class="ttdoc">Update the PPU of n cycles.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:299</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ae08ff246e9498ed2fb8243f7cac8e9ac"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ae08ff246e9498ed2fb8243f7cac8e9ac">ComSquare::PPU::PPU::getBgMode</a></div><div class="ttdeci">int getBgMode() const</div><div class="ttdoc">Get the current background Mode.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:662</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_af057977b5bb60129416c1f0a983a011a"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#af057977b5bb60129416c1f0a983a011a">ComSquare::PPU::PPU::_subScreen</a></div><div class="ttdeci">std::array&lt; std::array&lt; uint32_t, 1024 &gt;, 1024 &gt; _subScreen</div><div class="ttdef"><b>Definition:</b> PPU.hpp:63</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_aa573d4749d01d718394929cab3c598a8"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#aa573d4749d01d718394929cab3c598a8">ComSquare::PPU::PPU::cgram</a></div><div class="ttdeci">Ram::Ram cgram</div><div class="ttdef"><b>Definition:</b> PPU.hpp:51</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_abbb9c28b76bb2ed5fd79a01a5882a2eda43f547df3844d7529a5ba777df5d39a1"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2eda43f547df3844d7529a5ba777df5d39a1">ComSquare::PPU::Background4</a></div><div class="ttdeci">@ Background4</div><div class="ttdef"><b>Definition:</b> PPU.hpp:42</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_acca3aa4724aa9cd2a5e10abe6eb3106e"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#acca3aa4724aa9cd2a5e10abe6eb3106e">ComSquare::PPU::PPU::addToMainSubScreen</a></div><div class="ttdeci">void addToMainSubScreen(Background &amp;bg)</div><div class="ttdoc">Add a bg to the sub and/or main screen.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:119</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a582e764ce8f7d1ab8043adf06f82ef22"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a582e764ce8f7d1ab8043adf06f82ef22">ComSquare::PPU::PPU::getTileMapStartAddress</a></div><div class="ttdeci">uint16_t getTileMapStartAddress(int bgNumber) const</div><div class="ttdoc">Give the address where the tilemap starts.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:531</div></div>
<div class="ttc" id="aclassComSquare_1_1Memory_1_1AMemory_html"><div class="ttname"><a href="classComSquare_1_1Memory_1_1AMemory.html">ComSquare::Memory::AMemory</a></div><div class="ttdoc">Abstract class representing a continuous block of memory.</div><div class="ttdef"><b>Definition:</b> AMemory.hpp:18</div></div>
<div class="ttc" id="aclassComSquare_1_1Renderer_1_1IRenderer_html"><div class="ttname"><a href="classComSquare_1_1Renderer_1_1IRenderer.html">ComSquare::Renderer::IRenderer</a></div><div class="ttdef"><b>Definition:</b> IRenderer.hpp:15</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a9ccf20fbee09b676e1ba5fe2aa103b2c"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a9ccf20fbee09b676e1ba5fe2aa103b2c">ComSquare::PPU::PPU::~PPU</a></div><div class="ttdeci">~PPU() override=default</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a87429a22842e735077dc751b455c2316"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a87429a22842e735077dc751b455c2316">ComSquare::PPU::PPU::cgramRead</a></div><div class="ttdeci">uint16_t cgramRead(uint16_t addr)</div><div class="ttdoc">Allow others components to read the CGRAM.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:482</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ad216351b7b356ed3ae700aec322c59a2"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ad216351b7b356ed3ae700aec322c59a2">ComSquare::PPU::PPU::getValueName</a></div><div class="ttdeci">std::string getValueName(uint24_t addr) const override</div><div class="ttdoc">Give the name of the Address register (used for debug)</div><div class="ttdef"><b>Definition:</b> PPU.cpp:341</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a407858f99ca810551cbf603643f5d9c0"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a407858f99ca810551cbf603643f5d9c0">ComSquare::PPU::PPU::_renderer</a></div><div class="ttdeci">Renderer::IRenderer &amp; _renderer</div><div class="ttdef"><b>Definition:</b> PPU.hpp:55</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a6d2cf0aa3ae5cb1dc8677cca36426dbc"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a6d2cf0aa3ae5cb1dc8677cca36426dbc">ComSquare::PPU::PPU::getCharacterSize</a></div><div class="ttdeci">Vector2&lt; int &gt; getCharacterSize(int bgNumber) const</div><div class="ttdoc">Give the correct character size depending of the bgMode.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:521</div></div>
<div class="ttc" id="aBackground_8hpp_html"><div class="ttname"><a href="Background_8hpp.html">Background.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ad86b44ad60107f2286995cafa014cd01"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ad86b44ad60107f2286995cafa014cd01">ComSquare::PPU::PPU::vram</a></div><div class="ttdeci">Ram::Ram vram</div><div class="ttdoc">Rams.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:49</div></div>
<div class="ttc" id="aPPURegisters_8hpp_html"><div class="ttname"><a href="PPURegisters_8hpp.html">PPURegisters.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a27480bcc2579727b5e2eb9e6eb229fd9"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a27480bcc2579727b5e2eb9e6eb229fd9">ComSquare::PPU::PPU::operator=</a></div><div class="ttdeci">PPU &amp; operator=(const PPU &amp;)=delete</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_a306e77b75ef8111cf90df12506928dd8"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#a306e77b75ef8111cf90df12506928dd8">ComSquare::PPU::VramSize</a></div><div class="ttdeci">static constexpr uint32_t VramSize</div><div class="ttdef"><b>Definition:</b> PPU.hpp:31</div></div>
<div class="ttc" id="aclassComSquare_1_1Vector2_html"><div class="ttname"><a href="classComSquare_1_1Vector2.html">ComSquare::Vector2&lt; int &gt;</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a0d0dd36b81abee84e9f7ab5bd554a226"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a0d0dd36b81abee84e9f7ab5bd554a226">ComSquare::PPU::PPU::getVramAddress</a></div><div class="ttdeci">uint16_t getVramAddress() const</div><div class="ttdoc">Give the Vram Address with the right Address remapping.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:282</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_afb3e0bd3fdeddb091813ef3c36b20607"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#afb3e0bd3fdeddb091813ef3c36b20607">ComSquare::PPU::PPU::read</a></div><div class="ttdeci">uint8_t read(uint24_t addr) override</div><div class="ttdoc">Read data from the component.</div><div class="ttdef"><b>Definition:</b> PPU.cpp:37</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_a4980b30d26b2d85d85b8979fd82ccd0f"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#a4980b30d26b2d85d85b8979fd82ccd0f">ComSquare::PPU::PPU::_vramReadBuffer</a></div><div class="ttdeci">uint16_t _vramReadBuffer</div><div class="ttdoc">Used for vram read registers (0x2139 - 0x213A)</div><div class="ttdef"><b>Definition:</b> PPU.hpp:67</div></div>
<div class="ttc" id="aRam_8hpp_html"><div class="ttname"><a href="Ram_8hpp.html">Ram.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_aa2cf0928eaa6dab3bb1b933f35c273ef"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#aa2cf0928eaa6dab3bb1b933f35c273ef">ComSquare::PPU::PPU::getComponent</a></div><div class="ttdeci">Component getComponent() const override</div><div class="ttdoc">Get the component of this accessor (used for debug purpose)</div><div class="ttdef"><b>Definition:</b> PPU.cpp:477</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_1_1Utils_html"><div class="ttname"><a href="namespaceComSquare_1_1PPU_1_1Utils.html">ComSquare::PPU::Utils</a></div><div class="ttdef"><b>Definition:</b> PPU.cpp:12</div></div>
<div class="ttc" id="anamespaceComSquare_1_1PPU_html_abbb9c28b76bb2ed5fd79a01a5882a2edafc5ae0602bcef28db940cef6ea122676"><div class="ttname"><a href="namespaceComSquare_1_1PPU.html#abbb9c28b76bb2ed5fd79a01a5882a2edafc5ae0602bcef28db940cef6ea122676">ComSquare::PPU::Background2</a></div><div class="ttdeci">@ Background2</div><div class="ttdef"><b>Definition:</b> PPU.hpp:40</div></div>
<div class="ttc" id="aIRenderer_8hpp_html"><div class="ttname"><a href="IRenderer_8hpp.html">IRenderer.hpp</a></div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html">ComSquare::PPU::PPU</a></div><div class="ttdoc">The class containing all the registers of the PPU.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:46</div></div>
<div class="ttc" id="aclassComSquare_1_1PPU_1_1PPU_html_ae41d7bf33052120359fa7899b11d7f01"><div class="ttname"><a href="classComSquare_1_1PPU_1_1PPU.html#ae41d7bf33052120359fa7899b11d7f01">ComSquare::PPU::PPU::_ppuState</a></div><div class="ttdeci">struct Utils::PpuState _ppuState</div><div class="ttdoc">Struct that contain all necessary vars for the use of the registers.</div><div class="ttdef"><b>Definition:</b> PPU.hpp:69</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>