N64FlashcartMenu/cheats_8c.html
2025-03-31 15:28:34 +00:00

450 lines
26 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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>N64FlashcartMenu: cheats.c 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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 id="projectrow">
<td id="projectalign">
<div id="projectname">N64FlashcartMenu
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_52780cb445d9f0b97a98e8aabec4d968.html">boot</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">cheats.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Cheat Engine Implementation.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structcheat__t" id="r_structcheat__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#structcheat__t">cheat_t</a></td></tr>
<tr class="memdesc:structcheat__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cheat structure. <a href="#structcheat__t">More...</a><br /></td></tr>
<tr class="separator:structcheat__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcheat__entry__t" id="r_structcheat__entry__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#structcheat__entry__t">cheat_entry_t</a></td></tr>
<tr class="memdesc:structcheat__entry__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cheat entry structure. <a href="#structcheat__entry__t">More...</a><br /></td></tr>
<tr class="separator:structcheat__entry__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a1cc3612e0d7e9b5244dfc68720d00a15" id="r_a1cc3612e0d7e9b5244dfc68720d00a15"><td class="memItemLeft" align="right" valign="top"><a id="a1cc3612e0d7e9b5244dfc68720d00a15" name="a1cc3612e0d7e9b5244dfc68720d00a15"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HIT_INVALIDATE_I</b>&#160;&#160;&#160;((4 &lt;&lt; 2) | 0)</td></tr>
<tr class="separator:a1cc3612e0d7e9b5244dfc68720d00a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063ea4e9ed2590b37218ad5fa3255864" id="r_a063ea4e9ed2590b37218ad5fa3255864"><td class="memItemLeft" align="right" valign="top"><a id="a063ea4e9ed2590b37218ad5fa3255864" name="a063ea4e9ed2590b37218ad5fa3255864"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HIT_WRITE_BACK_D</b>&#160;&#160;&#160;((6 &lt;&lt; 2) | 1)</td></tr>
<tr class="separator:a063ea4e9ed2590b37218ad5fa3255864"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ae9dbbe6ad3258efa6f67d5205501ab" id="r_a9ae9dbbe6ad3258efa6f67d5205501ab"><td class="memItemLeft" align="right" valign="top"><a id="a9ae9dbbe6ad3258efa6f67d5205501ab" name="a9ae9dbbe6ad3258efa6f67d5205501ab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>D_CACHE_LINE_SIZE</b>&#160;&#160;&#160;(16)</td></tr>
<tr class="separator:a9ae9dbbe6ad3258efa6f67d5205501ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b677b3715b08dfa977c33af585dc2e" id="r_a30b677b3715b08dfa977c33af585dc2e"><td class="memItemLeft" align="right" valign="top"><a id="a30b677b3715b08dfa977c33af585dc2e" name="a30b677b3715b08dfa977c33af585dc2e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAUSE_IRQ_PRE_NMI</b>&#160;&#160;&#160;(1 &lt;&lt; 12)</td></tr>
<tr class="separator:a30b677b3715b08dfa977c33af585dc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a999436395ca55c750543b095e0bbf788" id="r_a999436395ca55c750543b095e0bbf788"><td class="memItemLeft" align="right" valign="top"><a id="a999436395ca55c750543b095e0bbf788" name="a999436395ca55c750543b095e0bbf788"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAUSE_EXC_CODE_MASK</b>&#160;&#160;&#160;(0x7C)</td></tr>
<tr class="separator:a999436395ca55c750543b095e0bbf788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7b2607fa8ef4bd6e90de50348e9b561" id="r_af7b2607fa8ef4bd6e90de50348e9b561"><td class="memItemLeft" align="right" valign="top"><a id="af7b2607fa8ef4bd6e90de50348e9b561" name="af7b2607fa8ef4bd6e90de50348e9b561"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CAUSE_EXC_CODE_WATCH</b>&#160;&#160;&#160;(0x5C)</td></tr>
<tr class="separator:af7b2607fa8ef4bd6e90de50348e9b561"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a197d0d02d14b1f012a99cd9235216a16" id="r_a197d0d02d14b1f012a99cd9235216a16"><td class="memItemLeft" align="right" valign="top"><a id="a197d0d02d14b1f012a99cd9235216a16" name="a197d0d02d14b1f012a99cd9235216a16"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>WATCHLO_W</b>&#160;&#160;&#160;(1 &lt;&lt; 0)</td></tr>
<tr class="separator:a197d0d02d14b1f012a99cd9235216a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a2062c9912544d23190e0d1f5dc880c" id="r_a1a2062c9912544d23190e0d1f5dc880c"><td class="memItemLeft" align="right" valign="top"><a id="a1a2062c9912544d23190e0d1f5dc880c" name="a1a2062c9912544d23190e0d1f5dc880c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RELOCATED_EXCEPTION_HANDLER_ADDRESS</b>&#160;&#160;&#160;(0x80000120)</td></tr>
<tr class="separator:a1a2062c9912544d23190e0d1f5dc880c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef3045998680e78db60b85f77fc924e3" id="r_aef3045998680e78db60b85f77fc924e3"><td class="memItemLeft" align="right" valign="top"><a id="aef3045998680e78db60b85f77fc924e3" name="aef3045998680e78db60b85f77fc924e3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>EXCEPTION_HANDLER_ADDRESS</b>&#160;&#160;&#160;(0x80000180)</td></tr>
<tr class="separator:aef3045998680e78db60b85f77fc924e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b6bfddd8d239732c4a0bd716356da0" id="r_aa4b6bfddd8d239732c4a0bd716356da0"><td class="memItemLeft" align="right" valign="top"><a id="aa4b6bfddd8d239732c4a0bd716356da0" name="aa4b6bfddd8d239732c4a0bd716356da0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PATCHER_ADDRESS</b>&#160;&#160;&#160;(0x80700000)</td></tr>
<tr class="separator:aa4b6bfddd8d239732c4a0bd716356da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a752cc7faf21e93e8414708283202dbe6" id="r_a752cc7faf21e93e8414708283202dbe6"><td class="memItemLeft" align="right" valign="top"><a id="a752cc7faf21e93e8414708283202dbe6" name="a752cc7faf21e93e8414708283202dbe6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENGINE_TEMPORARY_ADDRESS</b>&#160;&#160;&#160;(PATCHER_ADDRESS + 0x10000)</td></tr>
<tr class="separator:a752cc7faf21e93e8414708283202dbe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5a5cf46b7c0fe04c4c656663ccf8a34" id="r_ae5a5cf46b7c0fe04c4c656663ccf8a34"><td class="memItemLeft" align="right" valign="top"><a id="ae5a5cf46b7c0fe04c4c656663ccf8a34" name="ae5a5cf46b7c0fe04c4c656663ccf8a34"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DEFAULT_ENGINE_ADDRESS</b>&#160;&#160;&#160;(0x807C5C00)</td></tr>
<tr class="separator:ae5a5cf46b7c0fe04c4c656663ccf8a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0efd167f04fe975346741a589cf0397a" id="r_a0efd167f04fe975346741a589cf0397a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0efd167f04fe975346741a589cf0397a">IS_WIDTH_16</a>(t)</td></tr>
<tr class="separator:a0efd167f04fe975346741a589cf0397a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ac95d7cf5670317f20992e069d38783" id="r_a3ac95d7cf5670317f20992e069d38783"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ac95d7cf5670317f20992e069d38783">IS_CONDITION_NOT_EQUAL</a>(t)</td></tr>
<tr class="separator:a3ac95d7cf5670317f20992e069d38783"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89b614b275be88aafdbfa8d5c673e2d9" id="r_a89b614b275be88aafdbfa8d5c673e2d9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a89b614b275be88aafdbfa8d5c673e2d9">IS_CONDITION_GS_BUTTON</a>(t)</td></tr>
<tr class="separator:a89b614b275be88aafdbfa8d5c673e2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3d48ed7dca0976c83525896499bc9d5" id="r_ad3d48ed7dca0976c83525896499bc9d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3d48ed7dca0976c83525896499bc9d5">IS_TYPE_REPEATER</a>(t)</td></tr>
<tr class="separator:ad3d48ed7dca0976c83525896499bc9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e02369ebb529cf437651a5832d0a8bd" id="r_a0e02369ebb529cf437651a5832d0a8bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0e02369ebb529cf437651a5832d0a8bd">IS_TYPE_WRITE</a>(t)</td></tr>
<tr class="separator:a0e02369ebb529cf437651a5832d0a8bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a120ef8d450f20e707ce64c044b44cbac" id="r_a120ef8d450f20e707ce64c044b44cbac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a120ef8d450f20e707ce64c044b44cbac">IS_TYPE_CONDITIONAL</a>(t)</td></tr>
<tr class="separator:a120ef8d450f20e707ce64c044b44cbac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb65702a9f2073bb38c7664b4a1fa4d8" id="r_acb65702a9f2073bb38c7664b4a1fa4d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acb65702a9f2073bb38c7664b4a1fa4d8">IS_DOUBLE_ENTRY</a>(t)</td></tr>
<tr class="separator:acb65702a9f2073bb38c7664b4a1fa4d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a8cee37d6e945b230bea26c02eff4adf7" id="r_a8cee37d6e945b230bea26c02eff4adf7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7">cheat_type_special_t</a> { <a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7a5cd9996fc5d5f1d5c2ede1557562526c">SPECIAL_DISABLE_EXPANSION_PAK</a> = 0xEE
, <a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7a1577fff2d2f12543bbdf133e9b60f8cb">SPECIAL_WRITE_BYTE_ON_BOOT</a> = 0xF0
, <a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7a47d2db62325ad5651a5f36d53fe67e46">SPECIAL_WRITE_SHORT_ON_BOOT</a> = 0xF1
, <a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7aa0522900392154b8301386fe900ff631">SPECIAL_SET_STORE_LOCATION</a> = 0xFF
}</td></tr>
<tr class="memdesc:a8cee37d6e945b230bea26c02eff4adf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special cheat types enumeration. <a href="#a8cee37d6e945b230bea26c02eff4adf7">More...</a><br /></td></tr>
<tr class="separator:a8cee37d6e945b230bea26c02eff4adf7"><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:a26cde0ec2739c148f2804c360f199294" id="r_a26cde0ec2739c148f2804c360f199294"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a26cde0ec2739c148f2804c360f199294">cheats_install</a> (<a class="el" href="cic_8h.html#a58448fde92590f458a766db3eb58d62f">cic_type_t</a> cic_type, uint32_t *cheat_list)</td></tr>
<tr class="memdesc:a26cde0ec2739c148f2804c360f199294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Install the cheat engine. <br /></td></tr>
<tr class="separator:a26cde0ec2739c148f2804c360f199294"><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>Cheat Engine Implementation. </p>
</div><hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structcheat__t" id="structcheat__t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structcheat__t">&#9670;&#160;</a></span>cheat_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cheat_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Cheat structure. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a164cf28a5f5636f7ac78f14b9554915a" name="a164cf28a5f5636f7ac78f14b9554915a"></a>uint8_t</td>
<td class="fieldname">
type</td>
<td class="fielddoc">
<p>Cheat type </p>
</td></tr>
<tr><td class="fieldtype">
<a id="a3b91ca18417d8beb53de613769ab5ff3" name="a3b91ca18417d8beb53de613769ab5ff3"></a>uint32_t</td>
<td class="fieldname">
address</td>
<td class="fielddoc">
<p>Cheat address </p>
</td></tr>
<tr><td class="fieldtype">
<a id="a4811d39b00bf77c2b7aa4c14f84a39d7" name="a4811d39b00bf77c2b7aa4c14f84a39d7"></a>uint16_t</td>
<td class="fieldname">
value</td>
<td class="fielddoc">
<p>Cheat value </p>
</td></tr>
</table>
</div>
</div>
<a name="structcheat__entry__t" id="structcheat__entry__t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structcheat__entry__t">&#9670;&#160;</a></span>cheat_entry_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct cheat_entry_t</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Cheat entry structure. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a823def8d6bc733f646105437e29e3351" name="a823def8d6bc733f646105437e29e3351"></a><a class="el" href="#structcheat__t">cheat_t</a></td>
<td class="fieldname">
main</td>
<td class="fielddoc">
<p>Main cheat </p>
</td></tr>
<tr><td class="fieldtype">
<a id="aa6b48e504813823bcded53dbb2645315" name="aa6b48e504813823bcded53dbb2645315"></a><a class="el" href="#structcheat__t">cheat_t</a></td>
<td class="fieldname">
sub</td>
<td class="fielddoc">
<p>Sub cheat </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a0efd167f04fe975346741a589cf0397a" name="a0efd167f04fe975346741a589cf0397a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0efd167f04fe975346741a589cf0397a">&#9670;&#160;</a></span>IS_WIDTH_16</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_WIDTH_16</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((t) &amp; (1 &lt;&lt; 0))</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3ac95d7cf5670317f20992e069d38783" name="a3ac95d7cf5670317f20992e069d38783"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ac95d7cf5670317f20992e069d38783">&#9670;&#160;</a></span>IS_CONDITION_NOT_EQUAL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_CONDITION_NOT_EQUAL</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((t) &amp; (1 &lt;&lt; 1))</div>
</div><!-- fragment -->
</div>
</div>
<a id="a89b614b275be88aafdbfa8d5c673e2d9" name="a89b614b275be88aafdbfa8d5c673e2d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89b614b275be88aafdbfa8d5c673e2d9">&#9670;&#160;</a></span>IS_CONDITION_GS_BUTTON</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_CONDITION_GS_BUTTON</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((t) &amp; (1 &lt;&lt; 3))</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad3d48ed7dca0976c83525896499bc9d5" name="ad3d48ed7dca0976c83525896499bc9d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3d48ed7dca0976c83525896499bc9d5">&#9670;&#160;</a></span>IS_TYPE_REPEATER</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_TYPE_REPEATER</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((t) == 0x50)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0e02369ebb529cf437651a5832d0a8bd" name="a0e02369ebb529cf437651a5832d0a8bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e02369ebb529cf437651a5832d0a8bd">&#9670;&#160;</a></span>IS_TYPE_WRITE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_TYPE_WRITE</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((((t)&amp;0xF0) == 0x80) || (((t)&amp;0xF0) == 0xA0))</div>
</div><!-- fragment -->
</div>
</div>
<a id="a120ef8d450f20e707ce64c044b44cbac" name="a120ef8d450f20e707ce64c044b44cbac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a120ef8d450f20e707ce64c044b44cbac">&#9670;&#160;</a></span>IS_TYPE_CONDITIONAL</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_TYPE_CONDITIONAL</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((t)&amp;0xF0) == 0xD0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="acb65702a9f2073bb38c7664b4a1fa4d8" name="acb65702a9f2073bb38c7664b4a1fa4d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb65702a9f2073bb38c7664b4a1fa4d8">&#9670;&#160;</a></span>IS_DOUBLE_ENTRY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define IS_DOUBLE_ENTRY</td>
<td>(</td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>t</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(IS_TYPE_CONDITIONAL(t) || IS_TYPE_REPEATER(t))</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a8cee37d6e945b230bea26c02eff4adf7" name="a8cee37d6e945b230bea26c02eff4adf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cee37d6e945b230bea26c02eff4adf7">&#9670;&#160;</a></span>cheat_type_special_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="#a8cee37d6e945b230bea26c02eff4adf7">cheat_type_special_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Special cheat types enumeration. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8cee37d6e945b230bea26c02eff4adf7a5cd9996fc5d5f1d5c2ede1557562526c" name="a8cee37d6e945b230bea26c02eff4adf7a5cd9996fc5d5f1d5c2ede1557562526c"></a>SPECIAL_DISABLE_EXPANSION_PAK&#160;</td><td class="fielddoc"><p>Disable Expansion Pak </p>
</td></tr>
<tr><td class="fieldname"><a id="a8cee37d6e945b230bea26c02eff4adf7a1577fff2d2f12543bbdf133e9b60f8cb" name="a8cee37d6e945b230bea26c02eff4adf7a1577fff2d2f12543bbdf133e9b60f8cb"></a>SPECIAL_WRITE_BYTE_ON_BOOT&#160;</td><td class="fielddoc"><p>Write byte on boot </p>
</td></tr>
<tr><td class="fieldname"><a id="a8cee37d6e945b230bea26c02eff4adf7a47d2db62325ad5651a5f36d53fe67e46" name="a8cee37d6e945b230bea26c02eff4adf7a47d2db62325ad5651a5f36d53fe67e46"></a>SPECIAL_WRITE_SHORT_ON_BOOT&#160;</td><td class="fielddoc"><p>Write short on boot </p>
</td></tr>
<tr><td class="fieldname"><a id="a8cee37d6e945b230bea26c02eff4adf7aa0522900392154b8301386fe900ff631" name="a8cee37d6e945b230bea26c02eff4adf7aa0522900392154b8301386fe900ff631"></a>SPECIAL_SET_STORE_LOCATION&#160;</td><td class="fielddoc"><p>Set store location </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a26cde0ec2739c148f2804c360f199294" name="a26cde0ec2739c148f2804c360f199294"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26cde0ec2739c148f2804c360f199294">&#9670;&#160;</a></span>cheats_install()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cheats_install </td>
<td>(</td>
<td class="paramtype"><a class="el" href="cic_8h.html#a58448fde92590f458a766db3eb58d62f">cic_type_t</a></td> <td class="paramname"><span class="paramname"><em>cic_type</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *</td> <td class="paramname"><span class="paramname"><em>cheat_list</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Install the cheat engine. </p>
<p>Installs cheats based on the CIC type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cic_type</td><td>The CIC type. </td></tr>
<tr><td class="paramname">cheat_list</td><td>Pointer to the cheat list. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if successful, false otherwise. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 31 2025 15:28:33 for N64FlashcartMenu by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>