diff options
| author | Vi Grey <vi@vigrey.com> | 2023-07-03 18:11:57 -0500 |
|---|---|---|
| committer | Vi Grey <vi@vigrey.com> | 2023-07-03 18:11:57 -0500 |
| commit | 1f73bd13fcd3e0c4c69e0d16934a8b3f769caffc (patch) | |
| tree | 0666cca8e248db92c7e1feda3eca139220344325 /docs/tasd-spec-0001/draft-tasd-spec-0001.html | |
| parent | a48be15f916f9d9045f9ad1b9e899b370cb98126 (diff) | |
| download | tasd-1f73bd13fcd3e0c4c69e0d16934a8b3f769caffc.tar.gz tasd-1f73bd13fcd3e0c4c69e0d16934a8b3f769caffc.zip | |
Add SNES_LATCH_TRAIN and remove PDF outputs
Diffstat (limited to 'docs/tasd-spec-0001/draft-tasd-spec-0001.html')
| -rw-r--r-- | docs/tasd-spec-0001/draft-tasd-spec-0001.html | 727 |
1 files changed, 382 insertions, 345 deletions
diff --git a/docs/tasd-spec-0001/draft-tasd-spec-0001.html b/docs/tasd-spec-0001/draft-tasd-spec-0001.html index 875a892..60a7a65 100644 --- a/docs/tasd-spec-0001/draft-tasd-spec-0001.html +++ b/docs/tasd-spec-0001/draft-tasd-spec-0001.html @@ -11,28 +11,25 @@ The TASD file format is used for storing "Tool Assisted Speedrun" or "Tool Assisted Superplay" (TAS) data for TAS replay devices to replay on physical video game console hardware. The format is defined to be expandable for future needs. The format is also defined to be parsable by programs that do not understand portions of the format, whether that is due to incomplete support of the format specification or due to new features being added to later versions of the specification at a later date. This document defines the file format specification for TASD files. ' name="description"> -<meta content="xml2rfc 3.15.0" name="generator"> +<meta content="xml2rfc 3.17.4" name="generator"> <meta content="draft-tasd-v0001-00" name="ietf.draft"> <!-- Generator version information: - xml2rfc 3.15.0 - Python 3.10.7 - appdirs 1.4.4 - ConfigArgParse 1.5.3 - google-i18n-address 2.5.2 - html5lib 1.1 + xml2rfc 3.17.4 + Python 3.11.3 + ConfigArgParse 1.5.5 + google-i18n-address 3.1.0 intervaltree 3.1.0 Jinja2 3.1.2 - kitchen 1.2.6 - lxml 4.9.1 - MarkupSafe 2.1.1 + lxml 4.9.2 + platformdirs 3.8.0 pycountry 22.3.5 PyYAML 6.0 - requests 2.28.1 - setuptools 65.3.0 + requests 2.31.0 + setuptools 68.0.0 six 1.16.0 - weasyprint 56.1 + wcwidth 0.2.6 --> -<link href="/home/vi/git/ViGrey/TASD-File-Format/src/docs/draft-tasd-spec-0001.xml" rel="alternate" type="application/rfc+xml"> +<link href="/home/vi/git/ViGrey/TASD-Spec/src/docs/draft-tasd-spec-0001.xml" rel="alternate" type="application/rfc+xml"> <link href="#copyright" rel="license"> <style type="text/css">/* @@ -42,7 +39,7 @@ this can be consolidated so that style settings occur only in one place, but for now the contents of this file consists first of the initial CSS work as provided to the RFC Formatter (xml2rfc) work, followed by itemized and - commented changes found necssary during the development of the v3 + commented changes found necessary during the development of the v3 formatters. */ @@ -52,9 +49,14 @@ @import url('https://fonts.googleapis.com/css?family=Noto+Serif'); /* Serif (print) */ @import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); /* Monospace */ +:root { + --font-sans: 'Noto Sans', Arial, Helvetica, sans-serif; + --font-serif: 'Noto Serif', 'Times', 'Times New Roman', serif; + --font-mono: 'Roboto Mono', Courier, 'Courier New', monospace; +} + @viewport { zoom: 1.0; - width: extend-to-zoom; } @-ms-viewport { width: extend-to-zoom; @@ -69,7 +71,7 @@ body { color: #222; background-color: #fff; font-size: 14px; - font-family: 'Noto Sans', Arial, Helvetica, sans-serif; + font-family: var(--font-sans); line-height: 1.6; scroll-behavior: smooth; } @@ -158,6 +160,15 @@ div { svg { display: block; } +svg[font-family~="serif" i], svg [font-family~="serif" i] { + font-family: var(--font-serif); +} +svg[font-family~="sans-serif" i], svg [font-family~="sans-serif" i] { + font-family: var(--font-sans); +} +svg[font-family~="monospace" i], svg [font-family~="monospace" i] { + font-family: var(--font-mono); +} .alignCenter.art-text { background-color: #f9f9f9; border: 1px solid #eee; @@ -241,7 +252,8 @@ a[href]:hover { background-color: #f2f2f2; } figcaption a[href], -a[href].selfRef { +a[href].selfRef, +.iref + a[href].internal { color: #222; } /* XXX probably not this: @@ -251,9 +263,9 @@ a.selfRef:hover { } */ /* Figures */ -tt, code, pre, code { +tt, code, pre { background-color: #f9f9f9; - font-family: 'Roboto Mono', monospace; + font-family: var(--font-mono); } pre { border: 1px solid #eee; @@ -490,7 +502,7 @@ address.vcard .nameRole { margin-left: 0; } address.vcard .label { - font-family: "Noto Sans",Arial,Helvetica,sans-serif; + font-family: var(--font-sans); margin: 0.5em 0; } address.vcard .type { @@ -653,7 +665,7 @@ hr.addr { figure { overflow: scroll; } - pre.breakable { + .breakable pre { break-inside: auto; } h1, h2, h3, h4, h5, h6 { @@ -723,7 +735,7 @@ hr.addr { size: A4; margin-bottom: 45mm; padding-top: 20px; - /* The follwing is commented out here, but set appropriately by in code, as + /* The following is commented out here, but set appropriately by in code, as the content depends on the document */ /* @top-left { @@ -823,12 +835,12 @@ section { } /* prevent monospace from becoming overly large */ -tt, code, pre, code { +tt, code, pre { font-size: 95%; } /* Fix the height/width aspect for ascii art*/ -pre.sourcecode, +.sourcecode pre, .art-text pre { line-height: 1.12; } @@ -864,7 +876,7 @@ table th.text-right { text-align: right; } -/* Make the alternative author contact informatio look less like just another +/* Make the alternative author contact information look less like just another author, and group it closer with the primary author contact information */ .alternative-contact { margin: 0.5em 0 0.25em 0; @@ -1046,6 +1058,7 @@ aside > p { /* Sourcecode margin in print, when there's no pilcrow */ @media print { .artwork, + .artwork > pre, .sourcecode { margin-bottom: 1em; } @@ -1060,7 +1073,7 @@ ol.type-A { list-style-type: upper-alpha; } ol.type-i { list-style-type: lower-roman; } ol.type-I { list-style-type: lower-roman; } /* Apply the print table and row borders in general, on request from the RPC, -and increase the contrast between border and odd row background sligthtly */ +and increase the contrast between border and odd row background slightly */ table { border: 1px solid #ddd; } @@ -1120,7 +1133,7 @@ span.break, dd.break { break-before: auto; } } -/* Text in compact lists should not get extra bottim margin space, +/* Text in compact lists should not get extra bottom margin space, since that would makes the list not compact */ ul.compact p, .ulCompact p, ol.compact p, .olCompact p { @@ -1145,7 +1158,7 @@ p tt, p code, li tt, li code { pre { margin-top: 0.5px; } -/* Tweak the comact list text */ +/* Tweak the compact list text */ ul.compact, .ulCompact, ol.compact, .olCompact, dl.compact, .dlCompact { @@ -1163,7 +1176,7 @@ dd > div.artwork:first-child, dd > aside:first-child, dd > figure:first-child, dd > ol:first-child, -dd > div:first-child > pre.sourcecode, +dd > div.sourcecode:first-child, dd > table:first-child, dd > ul:first-child { clear: left; @@ -1177,10 +1190,11 @@ li > p { margin-bottom: 0.5em } /* Don't let p margin spill out from inside list items */ -li > p:last-of-type { +li > p:last-of-type:only-child { margin-bottom: 0; } </style> +<link href="rfc-local.css" rel="stylesheet" type="text/css"> <script type="application/javascript">async function addMetadata(){try{const e=document.styleSheets[0].cssRules;for(let t=0;t<e.length;t++)if(/#identifiers/.exec(e[t].selectorText)){const a=e[t].cssText.replace("#identifiers","#external-updates");document.styleSheets[0].insertRule(a,document.styleSheets[0].cssRules.length)}}catch(e){console.log(e)}const e=document.getElementById("external-metadata");if(e)try{var t,a="",o=function(e){const t=document.getElementsByTagName("meta");for(let a=0;a<t.length;a++)if(t[a].getAttribute("name")===e)return t[a].getAttribute("content");return""}("rfc.number");if(o){t="https://www.rfc-editor.org/rfc/rfc"+o+".json";try{const e=await fetch(t);a=await e.json()}catch(e){t=document.URL.indexOf("html")>=0?document.URL.replace(/html$/,"json"):document.URL+".json";const o=await fetch(t);a=await o.json()}}if(!a)return;e.style.display="block";const s="",d="https://datatracker.ietf.org/doc",n="https://datatracker.ietf.org/ipr/search",c="https://www.rfc-editor.org/info",l=a.doc_id.toLowerCase(),i=a.doc_id.slice(0,3).toLowerCase(),f=a.doc_id.slice(3).replace(/^0+/,""),u={status:"Status",obsoletes:"Obsoletes",obsoleted_by:"Obsoleted By",updates:"Updates",updated_by:"Updated By",see_also:"See Also",errata_url:"Errata"};let h="<dl style='overflow:hidden' id='external-updates'>";["status","obsoletes","obsoleted_by","updates","updated_by","see_also","errata_url"].forEach(e=>{if("status"==e){a[e]=a[e].toLowerCase();var t=a[e].split(" "),o=t.length,w="",p=1;for(let e=0;e<o;e++)p<o?w=w+r(t[e])+" ":w+=r(t[e]),p++;a[e]=w}else if("obsoletes"==e||"obsoleted_by"==e||"updates"==e||"updated_by"==e){var g,m="",b=1;g=a[e].length;for(let t=0;t<g;t++)a[e][t]&&(a[e][t]=String(a[e][t]).toLowerCase(),m=b<g?m+"<a href='"+s+"/rfc/".concat(a[e][t])+"'>"+a[e][t].slice(3)+"</a>, ":m+"<a href='"+s+"/rfc/".concat(a[e][t])+"'>"+a[e][t].slice(3)+"</a>",b++);a[e]=m}else if("see_also"==e){var y,L="",C=1;y=a[e].length;for(let t=0;t<y;t++)if(a[e][t]){a[e][t]=String(a[e][t]);var _=a[e][t].slice(0,3),v=a[e][t].slice(3).replace(/^0+/,"");L=C<y?"RFC"!=_?L+"<a href='"+s+"/info/"+_.toLowerCase().concat(v.toLowerCase())+"'>"+_+" "+v+"</a>, ":L+"<a href='"+s+"/info/"+_.toLowerCase().concat(v.toLowerCase())+"'>"+v+"</a>, ":"RFC"!=_?L+"<a href='"+s+"/info/"+_.toLowerCase().concat(v.toLowerCase())+"'>"+_+" "+v+"</a>":L+"<a href='"+s+"/info/"+_.toLowerCase().concat(v.toLowerCase())+"'>"+v+"</a>",C++}a[e]=L}else if("errata_url"==e){var R="";R=a[e]?R+"<a href='"+a[e]+"'>Errata exist</a> | <a href='"+d+"/"+l+"'>Datatracker</a>| <a href='"+n+"/?"+i+"="+f+"&submit="+i+"'>IPR</a> | <a href='"+c+"/"+l+"'>Info page</a>":"<a href='"+d+"/"+l+"'>Datatracker</a> | <a href='"+n+"/?"+i+"="+f+"&submit="+i+"'>IPR</a> | <a href='"+c+"/"+l+"'>Info page</a>",a[e]=R}""!=a[e]?"Errata"==u[e]?h+=`<dt>More info:</dt><dd>${a[e]}</dd>`:h+=`<dt>${u[e]}:</dt><dd>${a[e]}</dd>`:"Errata"==u[e]&&(h+=`<dt>More info:</dt><dd>${a[e]}</dd>`)}),h+="</dl>",e.innerHTML=h}catch(e){console.log(e)}else console.log("Could not locate metadata <div> element");function r(e){return e.charAt(0).toUpperCase()+e.slice(1)}}window.removeEventListener("load",addMetadata),window.addEventListener("load",addMetadata);</script> </head> <body class="xml2rfc"> @@ -1189,7 +1203,7 @@ li > p:last-of-type { <thead><tr> <td class="left"></td> <td class="center">TASD File Format Specification</td> -<td class="right">September 2022</td> +<td class="right">July 2023</td> </tr></thead> <tfoot><tr> <td class="left">Grey & Bigbass</td> @@ -1204,7 +1218,7 @@ li > p:last-of-type { <dd class="workgroup">Independent TAS Console Replay Research Group</dd> <dt class="label-published">Published:</dt> <dd class="published"> -<time datetime="2022-09-26" class="published">26 September 2022</time> +<time datetime="2023-07-03" class="published">3 July 2023</time> </dd> <dt class="label-authors">Authors:</dt> <dd class="authors"> @@ -1226,230 +1240,230 @@ li > p:last-of-type { </section> <div id="toc"> <section id="section-toc.1"> - <a href="#" onclick="scroll(0,0)" class="toplink">▲</a><h2 id="name-table-of-contents-2"> -<a href="#name-table-of-contents-2" class="section-name selfRef">Table of Contents</a> + <a href="#" onclick="scroll(0,0)" class="toplink">▲</a><h2 id="name-table-of-contents"> +<a href="#name-table-of-contents" class="section-name selfRef">Table of Contents</a> </h2> <nav class="toc"><ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1"> - <p id="section-toc.1-1.1.1"><a href="#section-1" class="auto internal xref">1</a>. <a href="#name-introduction-2" class="internal xref">Introduction</a></p> + <p id="section-toc.1-1.1.1"><a href="#section-1" class="auto internal xref">1</a>. <a href="#name-introduction" class="internal xref">Introduction</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.1"> - <p id="section-toc.1-1.1.2.1.1" class="keepWithNext"><a href="#section-1.1" class="auto internal xref">1.1</a>. <a href="#name-overview-and-preliminaries-2" class="internal xref">Overview and Preliminaries</a></p> + <p id="section-toc.1-1.1.2.1.1" class="keepWithNext"><a href="#section-1.1" class="auto internal xref">1.1</a>. <a href="#name-overview-and-preliminaries" class="internal xref">Overview and Preliminaries</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.1.2.1"> - <p id="section-toc.1-1.1.2.1.2.1.1" class="keepWithNext"><a href="#section-1.1.1" class="auto internal xref">1.1.1</a>. <a href="#name-notation-and-vocabulary-2" class="internal xref">Notation and Vocabulary</a></p> + <p id="section-toc.1-1.1.2.1.2.1.1" class="keepWithNext"><a href="#section-1.1.1" class="auto internal xref">1.1.1</a>. <a href="#name-notation-and-vocabulary" class="internal xref">Notation and Vocabulary</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.2"> - <p id="section-toc.1-1.1.2.2.1"><a href="#section-1.2" class="auto internal xref">1.2</a>. <a href="#name-motivations-2" class="internal xref">Motivations</a></p> + <p id="section-toc.1-1.1.2.2.1"><a href="#section-1.2" class="auto internal xref">1.2</a>. <a href="#name-motivations" class="internal xref">Motivations</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.1.2.2.2.1"> - <p id="section-toc.1-1.1.2.2.2.1.1" class="keepWithNext"><a href="#section-1.2.1" class="auto internal xref">1.2.1</a>. <a href="#name-problems-with-existing-forma" class="internal xref">Problems With Existing Formats</a></p> + <p id="section-toc.1-1.1.2.2.2.1.1" class="keepWithNext"><a href="#section-1.2.1" class="auto internal xref">1.2.1</a>. <a href="#name-problems-with-existing-form" class="internal xref">Problems With Existing Formats</a></p> </li> </ul> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.2"> - <p id="section-toc.1-1.2.1"><a href="#section-2" class="auto internal xref">2</a>. <a href="#name-header-2" class="internal xref">Header</a></p> + <p id="section-toc.1-1.2.1"><a href="#section-2" class="auto internal xref">2</a>. <a href="#name-header" class="internal xref">Header</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3"> - <p id="section-toc.1-1.3.1"><a href="#section-3" class="auto internal xref">3</a>. <a href="#name-packets-2" class="internal xref">Packets</a></p> + <p id="section-toc.1-1.3.1"><a href="#section-3" class="auto internal xref">3</a>. <a href="#name-packets" class="internal xref">Packets</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1"> - <p id="section-toc.1-1.3.2.1.1"><a href="#section-3.1" class="auto internal xref">3.1</a>. <a href="#name-assigned-packet-keys-without" class="internal xref">Assigned Packet Keys Without Descriptions</a></p> + <p id="section-toc.1-1.3.2.1.1"><a href="#section-3.1" class="auto internal xref">3.1</a>. <a href="#name-assigned-packet-keys-withou" class="internal xref">Assigned Packet Keys Without Descriptions</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.1"> - <p id="section-toc.1-1.3.2.1.2.1.1"><a href="#section-3.1.1" class="auto internal xref">3.1.1</a>. <a href="#name-general-keys-2" class="internal xref">General Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.1.1"><a href="#section-3.1.1" class="auto internal xref">3.1.1</a>. <a href="#name-general-keys" class="internal xref">General Keys</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.2"> - <p id="section-toc.1-1.3.2.1.2.2.1"><a href="#section-3.1.2" class="auto internal xref">3.1.2</a>. <a href="#name-nes-specific-keys-2" class="internal xref">NES Specific Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.2.1"><a href="#section-3.1.2" class="auto internal xref">3.1.2</a>. <a href="#name-nes-specific-keys" class="internal xref">NES Specific Keys</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.3"> - <p id="section-toc.1-1.3.2.1.2.3.1"><a href="#section-3.1.3" class="auto internal xref">3.1.3</a>. <a href="#name-snes-specific-keys-2" class="internal xref">SNES Specific Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.3.1"><a href="#section-3.1.3" class="auto internal xref">3.1.3</a>. <a href="#name-snes-specific-keys" class="internal xref">SNES Specific Keys</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.4"> - <p id="section-toc.1-1.3.2.1.2.4.1"><a href="#section-3.1.4" class="auto internal xref">3.1.4</a>. <a href="#name-genesis-specific-keys-2" class="internal xref">Genesis Specific Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.4.1"><a href="#section-3.1.4" class="auto internal xref">3.1.4</a>. <a href="#name-genesis-specific-keys" class="internal xref">Genesis Specific Keys</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.5"> - <p id="section-toc.1-1.3.2.1.2.5.1"><a href="#section-3.1.5" class="auto internal xref">3.1.5</a>. <a href="#name-input-frame-timing-keys-2" class="internal xref">Input Frame/Timing Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.5.1"><a href="#section-3.1.5" class="auto internal xref">3.1.5</a>. <a href="#name-input-frame-timing-keys" class="internal xref">Input Frame/Timing Keys</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.1.2.6"> - <p id="section-toc.1-1.3.2.1.2.6.1"><a href="#section-3.1.6" class="auto internal xref">3.1.6</a>. <a href="#name-extraneous-keys-2" class="internal xref">Extraneous Keys</a></p> + <p id="section-toc.1-1.3.2.1.2.6.1"><a href="#section-3.1.6" class="auto internal xref">3.1.6</a>. <a href="#name-extraneous-keys" class="internal xref">Extraneous Keys</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2"> - <p id="section-toc.1-1.3.2.2.1"><a href="#section-3.2" class="auto internal xref">3.2</a>. <a href="#name-assigned-packet-keys-with-de" class="internal xref">Assigned Packet Keys With Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.1"><a href="#section-3.2" class="auto internal xref">3.2</a>. <a href="#name-assigned-packet-keys-with-d" class="internal xref">Assigned Packet Keys With Descriptions</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.1"> - <p id="section-toc.1-1.3.2.2.2.1.1"><a href="#section-3.2.1" class="auto internal xref">3.2.1</a>. <a href="#name-general-key-descriptions-2" class="internal xref">General Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.1.1"><a href="#section-3.2.1" class="auto internal xref">3.2.1</a>. <a href="#name-general-key-descriptions" class="internal xref">General Key Descriptions</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.2"> - <p id="section-toc.1-1.3.2.2.2.2.1"><a href="#section-3.2.2" class="auto internal xref">3.2.2</a>. <a href="#name-nes-specific-key-description" class="internal xref">NES Specific Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.2.1"><a href="#section-3.2.2" class="auto internal xref">3.2.2</a>. <a href="#name-nes-specific-key-descriptio" class="internal xref">NES Specific Key Descriptions</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.3"> - <p id="section-toc.1-1.3.2.2.2.3.1"><a href="#section-3.2.3" class="auto internal xref">3.2.3</a>. <a href="#name-snes-specific-key-descriptio" class="internal xref">SNES Specific Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.3.1"><a href="#section-3.2.3" class="auto internal xref">3.2.3</a>. <a href="#name-snes-specific-key-descripti" class="internal xref">SNES Specific Key Descriptions</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.4"> - <p id="section-toc.1-1.3.2.2.2.4.1"><a href="#section-3.2.4" class="auto internal xref">3.2.4</a>. <a href="#name-genesis-specific-key-descrip" class="internal xref">Genesis Specific Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.4.1"><a href="#section-3.2.4" class="auto internal xref">3.2.4</a>. <a href="#name-genesis-specific-key-descri" class="internal xref">Genesis Specific Key Descriptions</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.5"> - <p id="section-toc.1-1.3.2.2.2.5.1"><a href="#section-3.2.5" class="auto internal xref">3.2.5</a>. <a href="#name-input-frame-timing-key-descr" class="internal xref">Input Frame/Timing Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.5.1"><a href="#section-3.2.5" class="auto internal xref">3.2.5</a>. <a href="#name-input-frame-timing-key-desc" class="internal xref">Input Frame/Timing Key Descriptions</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.2.2.6"> - <p id="section-toc.1-1.3.2.2.2.6.1"><a href="#section-3.2.6" class="auto internal xref">3.2.6</a>. <a href="#name-extraneous-key-descriptions-2" class="internal xref">Extraneous Key Descriptions</a></p> + <p id="section-toc.1-1.3.2.2.2.6.1"><a href="#section-3.2.6" class="auto internal xref">3.2.6</a>. <a href="#name-extraneous-key-descriptions" class="internal xref">Extraneous Key Descriptions</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3"> - <p id="section-toc.1-1.3.2.3.1"><a href="#section-3.3" class="auto internal xref">3.3</a>. <a href="#name-packet-payload-formats-2" class="internal xref">Packet Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.1"><a href="#section-3.3" class="auto internal xref">3.3</a>. <a href="#name-packet-payload-formats" class="internal xref">Packet Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1"> - <p id="section-toc.1-1.3.2.3.2.1.1"><a href="#section-3.3.1" class="auto internal xref">3.3.1</a>. <a href="#name-general-key-payload-formats-2" class="internal xref">General Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.1.1"><a href="#section-3.3.1" class="auto internal xref">3.3.1</a>. <a href="#name-general-key-payload-formats" class="internal xref">General Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.1"> - <p id="section-toc.1-1.3.2.3.2.1.2.1.1"><a href="#section-3.3.1.1" class="auto internal xref">3.3.1.1</a>. <a href="#name-console_type-packet-2" class="internal xref">CONSOLE_TYPE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.1.1"><a href="#section-3.3.1.1" class="auto internal xref">3.3.1.1</a>. <a href="#name-console_type-packet" class="internal xref">CONSOLE_TYPE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.2"> - <p id="section-toc.1-1.3.2.3.2.1.2.2.1"><a href="#section-3.3.1.2" class="auto internal xref">3.3.1.2</a>. <a href="#name-console_region-packet-2" class="internal xref">CONSOLE_REGION Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.2.1"><a href="#section-3.3.1.2" class="auto internal xref">3.3.1.2</a>. <a href="#name-console_region-packet" class="internal xref">CONSOLE_REGION Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.3"> - <p id="section-toc.1-1.3.2.3.2.1.2.3.1"><a href="#section-3.3.1.3" class="auto internal xref">3.3.1.3</a>. <a href="#name-game_title-packet-2" class="internal xref">GAME_TITLE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.3.1"><a href="#section-3.3.1.3" class="auto internal xref">3.3.1.3</a>. <a href="#name-game_title-packet" class="internal xref">GAME_TITLE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.4"> - <p id="section-toc.1-1.3.2.3.2.1.2.4.1"><a href="#section-3.3.1.4" class="auto internal xref">3.3.1.4</a>. <a href="#name-rom_name-packet-2" class="internal xref">ROM_NAME Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.4.1"><a href="#section-3.3.1.4" class="auto internal xref">3.3.1.4</a>. <a href="#name-rom_name-packet" class="internal xref">ROM_NAME Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.5"> - <p id="section-toc.1-1.3.2.3.2.1.2.5.1"><a href="#section-3.3.1.5" class="auto internal xref">3.3.1.5</a>. <a href="#name-attribution-packet-2" class="internal xref">ATTRIBUTION Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.5.1"><a href="#section-3.3.1.5" class="auto internal xref">3.3.1.5</a>. <a href="#name-attribution-packet" class="internal xref">ATTRIBUTION Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.6"> - <p id="section-toc.1-1.3.2.3.2.1.2.6.1"><a href="#section-3.3.1.6" class="auto internal xref">3.3.1.6</a>. <a href="#name-category-packet-2" class="internal xref">CATEGORY Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.6.1"><a href="#section-3.3.1.6" class="auto internal xref">3.3.1.6</a>. <a href="#name-category-packet" class="internal xref">CATEGORY Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.7"> - <p id="section-toc.1-1.3.2.3.2.1.2.7.1"><a href="#section-3.3.1.7" class="auto internal xref">3.3.1.7</a>. <a href="#name-emulator_name-packet-2" class="internal xref">EMULATOR_NAME Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.7.1"><a href="#section-3.3.1.7" class="auto internal xref">3.3.1.7</a>. <a href="#name-emulator_name-packet" class="internal xref">EMULATOR_NAME Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.8"> - <p id="section-toc.1-1.3.2.3.2.1.2.8.1"><a href="#section-3.3.1.8" class="auto internal xref">3.3.1.8</a>. <a href="#name-emulator_version-packet-2" class="internal xref">EMULATOR_VERSION Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.8.1"><a href="#section-3.3.1.8" class="auto internal xref">3.3.1.8</a>. <a href="#name-emulator_version-packet" class="internal xref">EMULATOR_VERSION Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.9"> - <p id="section-toc.1-1.3.2.3.2.1.2.9.1"><a href="#section-3.3.1.9" class="auto internal xref">3.3.1.9</a>. <a href="#name-emulator_core-packet-2" class="internal xref">EMULATOR_CORE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.9.1"><a href="#section-3.3.1.9" class="auto internal xref">3.3.1.9</a>. <a href="#name-emulator_core-packet" class="internal xref">EMULATOR_CORE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.10"> - <p id="section-toc.1-1.3.2.3.2.1.2.10.1"><a href="#section-3.3.1.10" class="auto internal xref">3.3.1.10</a>. <a href="#name-tas_last_modified-packet-2" class="internal xref">TAS_LAST_MODIFIED Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.10.1"><a href="#section-3.3.1.10" class="auto internal xref">3.3.1.10</a>. <a href="#name-tas_last_modified-packet" class="internal xref">TAS_LAST_MODIFIED Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.11"> - <p id="section-toc.1-1.3.2.3.2.1.2.11.1"><a href="#section-3.3.1.11" class="auto internal xref">3.3.1.11</a>. <a href="#name-dump_created-packet-2" class="internal xref">DUMP_CREATED Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.11.1"><a href="#section-3.3.1.11" class="auto internal xref">3.3.1.11</a>. <a href="#name-dump_created-packet" class="internal xref">DUMP_CREATED Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.12"> - <p id="section-toc.1-1.3.2.3.2.1.2.12.1"><a href="#section-3.3.1.12" class="auto internal xref">3.3.1.12</a>. <a href="#name-dump_last_modified-packet-2" class="internal xref">DUMP_LAST_MODIFIED Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.12.1"><a href="#section-3.3.1.12" class="auto internal xref">3.3.1.12</a>. <a href="#name-dump_last_modified-packet" class="internal xref">DUMP_LAST_MODIFIED Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.13"> - <p id="section-toc.1-1.3.2.3.2.1.2.13.1"><a href="#section-3.3.1.13" class="auto internal xref">3.3.1.13</a>. <a href="#name-total_frames-packet-2" class="internal xref">TOTAL_FRAMES Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.13.1"><a href="#section-3.3.1.13" class="auto internal xref">3.3.1.13</a>. <a href="#name-total_frames-packet" class="internal xref">TOTAL_FRAMES Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.14"> - <p id="section-toc.1-1.3.2.3.2.1.2.14.1"><a href="#section-3.3.1.14" class="auto internal xref">3.3.1.14</a>. <a href="#name-rerecords-packet-2" class="internal xref">RERECORDS Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.14.1"><a href="#section-3.3.1.14" class="auto internal xref">3.3.1.14</a>. <a href="#name-rerecords-packet" class="internal xref">RERECORDS Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.15"> - <p id="section-toc.1-1.3.2.3.2.1.2.15.1"><a href="#section-3.3.1.15" class="auto internal xref">3.3.1.15</a>. <a href="#name-source_link-packet-2" class="internal xref">SOURCE_LINK Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.15.1"><a href="#section-3.3.1.15" class="auto internal xref">3.3.1.15</a>. <a href="#name-source_link-packet" class="internal xref">SOURCE_LINK Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.16"> - <p id="section-toc.1-1.3.2.3.2.1.2.16.1"><a href="#section-3.3.1.16" class="auto internal xref">3.3.1.16</a>. <a href="#name-blank_frames-packet-2" class="internal xref">BLANK_FRAMES Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.16.1"><a href="#section-3.3.1.16" class="auto internal xref">3.3.1.16</a>. <a href="#name-blank_frames-packet" class="internal xref">BLANK_FRAMES Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.17"> - <p id="section-toc.1-1.3.2.3.2.1.2.17.1"><a href="#section-3.3.1.17" class="auto internal xref">3.3.1.17</a>. <a href="#name-verified-packet-2" class="internal xref">VERIFIED Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.17.1"><a href="#section-3.3.1.17" class="auto internal xref">3.3.1.17</a>. <a href="#name-verified-packet" class="internal xref">VERIFIED Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.18"> - <p id="section-toc.1-1.3.2.3.2.1.2.18.1"><a href="#section-3.3.1.18" class="auto internal xref">3.3.1.18</a>. <a href="#name-memory_init-packet-2" class="internal xref">MEMORY_INIT Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.18.1"><a href="#section-3.3.1.18" class="auto internal xref">3.3.1.18</a>. <a href="#name-memory_init-packet" class="internal xref">MEMORY_INIT Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.19"> - <p id="section-toc.1-1.3.2.3.2.1.2.19.1"><a href="#section-3.3.1.19" class="auto internal xref">3.3.1.19</a>. <a href="#name-game_identifier-packet-2" class="internal xref">GAME_IDENTIFIER Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.19.1"><a href="#section-3.3.1.19" class="auto internal xref">3.3.1.19</a>. <a href="#name-game_identifier-packet" class="internal xref">GAME_IDENTIFIER Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.20"> - <p id="section-toc.1-1.3.2.3.2.1.2.20.1"><a href="#section-3.3.1.20" class="auto internal xref">3.3.1.20</a>. <a href="#name-movie_license-packet-2" class="internal xref">MOVIE_LICENSE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.20.1"><a href="#section-3.3.1.20" class="auto internal xref">3.3.1.20</a>. <a href="#name-movie_license-packet" class="internal xref">MOVIE_LICENSE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.21"> - <p id="section-toc.1-1.3.2.3.2.1.2.21.1"><a href="#section-3.3.1.21" class="auto internal xref">3.3.1.21</a>. <a href="#name-movie_file-packet-2" class="internal xref">MOVIE_FILE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.21.1"><a href="#section-3.3.1.21" class="auto internal xref">3.3.1.21</a>. <a href="#name-movie_file-packet" class="internal xref">MOVIE_FILE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.1.2.22"> - <p id="section-toc.1-1.3.2.3.2.1.2.22.1"><a href="#section-3.3.1.22" class="auto internal xref">3.3.1.22</a>. <a href="#name-port_controller-packet-2" class="internal xref">PORT_CONTROLLER Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.1.2.22.1"><a href="#section-3.3.1.22" class="auto internal xref">3.3.1.22</a>. <a href="#name-port_controller-packet" class="internal xref">PORT_CONTROLLER Packet</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.2"> - <p id="section-toc.1-1.3.2.3.2.2.1"><a href="#section-3.3.2" class="auto internal xref">3.3.2</a>. <a href="#name-nes-specific-key-payload-for" class="internal xref">NES Specific Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.2.1"><a href="#section-3.3.2" class="auto internal xref">3.3.2</a>. <a href="#name-nes-specific-key-payload-fo" class="internal xref">NES Specific Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.2.2.1"> - <p id="section-toc.1-1.3.2.3.2.2.2.1.1"><a href="#section-3.3.2.1" class="auto internal xref">3.3.2.1</a>. <a href="#name-nes_latch_filter-packet-2" class="internal xref">NES_LATCH_FILTER Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.2.2.1.1"><a href="#section-3.3.2.1" class="auto internal xref">3.3.2.1</a>. <a href="#name-nes_latch_filter-packet" class="internal xref">NES_LATCH_FILTER Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.2.2.2"> - <p id="section-toc.1-1.3.2.3.2.2.2.2.1"><a href="#section-3.3.2.2" class="auto internal xref">3.3.2.2</a>. <a href="#name-nes_clock_filter-packet-2" class="internal xref">NES_CLOCK_FILTER Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.2.2.2.1"><a href="#section-3.3.2.2" class="auto internal xref">3.3.2.2</a>. <a href="#name-nes_clock_filter-packet" class="internal xref">NES_CLOCK_FILTER Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.2.2.3"> - <p id="section-toc.1-1.3.2.3.2.2.2.3.1"><a href="#section-3.3.2.3" class="auto internal xref">3.3.2.3</a>. <a href="#name-nes_overread-packet-2" class="internal xref">NES_OVERREAD Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.2.2.3.1"><a href="#section-3.3.2.3" class="auto internal xref">3.3.2.3</a>. <a href="#name-nes_overread-packet" class="internal xref">NES_OVERREAD Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.2.2.4"> - <p id="section-toc.1-1.3.2.3.2.2.2.4.1"><a href="#section-3.3.2.4" class="auto internal xref">3.3.2.4</a>. <a href="#name-nes_game_genie_code-packet-2" class="internal xref">NES_GAME_GENIE_CODE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.2.2.4.1"><a href="#section-3.3.2.4" class="auto internal xref">3.3.2.4</a>. <a href="#name-nes_game_genie_code-packet" class="internal xref">NES_GAME_GENIE_CODE Packet</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.3"> - <p id="section-toc.1-1.3.2.3.2.3.1"><a href="#section-3.3.3" class="auto internal xref">3.3.3</a>. <a href="#name-snes-specific-key-payload-fo" class="internal xref">SNES Specific Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.3.1"><a href="#section-3.3.3" class="auto internal xref">3.3.3</a>. <a href="#name-snes-specific-key-payload-f" class="internal xref">SNES Specific Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.3.2.1"> - <p id="section-toc.1-1.3.2.3.2.3.2.1.1"><a href="#section-3.3.3.1" class="auto internal xref">3.3.3.1</a>. <a href="#name-snes_clock_filter-packet-2" class="internal xref">SNES_CLOCK_FILTER Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.3.2.1.1"><a href="#section-3.3.3.1" class="auto internal xref">3.3.3.1</a>. <a href="#name-snes_clock_filter-packet" class="internal xref">SNES_CLOCK_FILTER Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.3.2.2"> - <p id="section-toc.1-1.3.2.3.2.3.2.2.1"><a href="#section-3.3.3.2" class="auto internal xref">3.3.3.2</a>. <a href="#name-snes_overread-packet-2" class="internal xref">SNES_OVERREAD Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.3.2.2.1"><a href="#section-3.3.3.2" class="auto internal xref">3.3.3.2</a>. <a href="#name-snes_overread-packet" class="internal xref">SNES_OVERREAD Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.3.2.3"> - <p id="section-toc.1-1.3.2.3.2.3.2.3.1"><a href="#section-3.3.3.3" class="auto internal xref">3.3.3.3</a>. <a href="#name-snes_game_genie_code-packet-2" class="internal xref">SNES_GAME_GENIE_CODE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.3.2.3.1"><a href="#section-3.3.3.3" class="auto internal xref">3.3.3.3</a>. <a href="#name-snes_game_genie_code-packet" class="internal xref">SNES_GAME_GENIE_CODE Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.3.2.4"> - <p id="section-toc.1-1.3.2.3.2.3.2.4.1"><a href="#section-3.3.3.4" class="auto internal xref">3.3.3.4</a>. <a href="#name-snes_latch_train-packet-rese" class="internal xref">SNES_LATCH_TRAIN Packet (RESERVED)</a></p> + <p id="section-toc.1-1.3.2.3.2.3.2.4.1"><a href="#section-3.3.3.4" class="auto internal xref">3.3.3.4</a>. <a href="#name-snes_latch_train-packet" class="internal xref">SNES_LATCH_TRAIN Packet</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.4"> - <p id="section-toc.1-1.3.2.3.2.4.1"><a href="#section-3.3.4" class="auto internal xref">3.3.4</a>. <a href="#name-genesis-specific-key-payload" class="internal xref">Genesis Specific Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.4.1"><a href="#section-3.3.4" class="auto internal xref">3.3.4</a>. <a href="#name-genesis-specific-key-payloa" class="internal xref">Genesis Specific Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.4.2.1"> - <p id="section-toc.1-1.3.2.3.2.4.2.1.1"><a href="#section-3.3.4.1" class="auto internal xref">3.3.4.1</a>. <a href="#name-genesis_game_genie_code-pack" class="internal xref">GENESIS_GAME_GENIE_CODE Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.4.2.1.1"><a href="#section-3.3.4.1" class="auto internal xref">3.3.4.1</a>. <a href="#name-genesis_game_genie_code-pac" class="internal xref">GENESIS_GAME_GENIE_CODE Packet</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5"> - <p id="section-toc.1-1.3.2.3.2.5.1"><a href="#section-3.3.5" class="auto internal xref">3.3.5</a>. <a href="#name-input-frame-timing-key-paylo" class="internal xref">Input Frame/Timing Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.5.1"><a href="#section-3.3.5" class="auto internal xref">3.3.5</a>. <a href="#name-input-frame-timing-key-payl" class="internal xref">Input Frame/Timing Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5.2.1"> - <p id="section-toc.1-1.3.2.3.2.5.2.1.1"><a href="#section-3.3.5.1" class="auto internal xref">3.3.5.1</a>. <a href="#name-input_chunk-packet-2" class="internal xref">INPUT_CHUNK Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.5.2.1.1"><a href="#section-3.3.5.1" class="auto internal xref">3.3.5.1</a>. <a href="#name-input_chunk-packet" class="internal xref">INPUT_CHUNK Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5.2.2"> - <p id="section-toc.1-1.3.2.3.2.5.2.2.1"><a href="#section-3.3.5.2" class="auto internal xref">3.3.5.2</a>. <a href="#name-input_moment-packet-2" class="internal xref">INPUT_MOMENT Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.5.2.2.1"><a href="#section-3.3.5.2" class="auto internal xref">3.3.5.2</a>. <a href="#name-input_moment-packet" class="internal xref">INPUT_MOMENT Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5.2.3"> - <p id="section-toc.1-1.3.2.3.2.5.2.3.1"><a href="#section-3.3.5.3" class="auto internal xref">3.3.5.3</a>. <a href="#name-transition-packet-2" class="internal xref">TRANSITION Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.5.2.3.1"><a href="#section-3.3.5.3" class="auto internal xref">3.3.5.3</a>. <a href="#name-transition-packet" class="internal xref">TRANSITION Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5.2.4"> - <p id="section-toc.1-1.3.2.3.2.5.2.4.1"><a href="#section-3.3.5.4" class="auto internal xref">3.3.5.4</a>. <a href="#name-lag_frame_chunk-packet-2" class="internal xref">LAG_FRAME_CHUNK Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.5.2.4.1"><a href="#section-3.3.5.4" class="auto internal xref">3.3.5.4</a>. <a href="#name-lag_frame_chunk-packet" class="internal xref">LAG_FRAME_CHUNK Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.5.2.5"> - <p id="section-toc.1-1.3.2.3.2.5.2.5.1"><a href="#section-3.3.5.5" class="auto internal xref">3.3.5.5</a>. <a href="#name-movie_transition-2" class="internal xref">MOVIE_TRANSITION</a></p> + <p id="section-toc.1-1.3.2.3.2.5.2.5.1"><a href="#section-3.3.5.5" class="auto internal xref">3.3.5.5</a>. <a href="#name-movie_transition" class="internal xref">MOVIE_TRANSITION</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.6"> - <p id="section-toc.1-1.3.2.3.2.6.1"><a href="#section-3.3.6" class="auto internal xref">3.3.6</a>. <a href="#name-extraneous-key-payload-forma" class="internal xref">Extraneous Key Payload Formats</a></p> + <p id="section-toc.1-1.3.2.3.2.6.1"><a href="#section-3.3.6" class="auto internal xref">3.3.6</a>. <a href="#name-extraneous-key-payload-form" class="internal xref">Extraneous Key Payload Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.6.2.1"> - <p id="section-toc.1-1.3.2.3.2.6.2.1.1"><a href="#section-3.3.6.1" class="auto internal xref">3.3.6.1</a>. <a href="#name-comment-packet-2" class="internal xref">COMMENT Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.6.2.1.1"><a href="#section-3.3.6.1" class="auto internal xref">3.3.6.1</a>. <a href="#name-comment-packet" class="internal xref">COMMENT Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.6.2.2"> - <p id="section-toc.1-1.3.2.3.2.6.2.2.1"><a href="#section-3.3.6.2" class="auto internal xref">3.3.6.2</a>. <a href="#name-experimental-packet-2" class="internal xref">EXPERIMENTAL Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.6.2.2.1"><a href="#section-3.3.6.2" class="auto internal xref">3.3.6.2</a>. <a href="#name-experimental-packet" class="internal xref">EXPERIMENTAL Packet</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.3.2.3.2.6.2.3"> - <p id="section-toc.1-1.3.2.3.2.6.2.3.1"><a href="#section-3.3.6.3" class="auto internal xref">3.3.6.3</a>. <a href="#name-unspecified-packet-2" class="internal xref">UNSPECIFIED Packet</a></p> + <p id="section-toc.1-1.3.2.3.2.6.2.3.1"><a href="#section-3.3.6.3" class="auto internal xref">3.3.6.3</a>. <a href="#name-unspecified-packet" class="internal xref">UNSPECIFIED Packet</a></p> </li> </ul> </li> @@ -1458,122 +1472,122 @@ li > p:last-of-type { </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4"> - <p id="section-toc.1-1.4.1"><a href="#section-4" class="auto internal xref">4</a>. <a href="#name-controller-input-formats-2" class="internal xref">Controller Input Formats</a></p> + <p id="section-toc.1-1.4.1"><a href="#section-4" class="auto internal xref">4</a>. <a href="#name-controller-input-formats" class="internal xref">Controller Input Formats</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1"> - <p id="section-toc.1-1.4.2.1.1"><a href="#section-4.1" class="auto internal xref">4.1</a>. <a href="#name-nes-famicom-controller-types" class="internal xref">NES/Famicom Controller Types</a></p> + <p id="section-toc.1-1.4.2.1.1"><a href="#section-4.1" class="auto internal xref">4.1</a>. <a href="#name-nes-famicom-controller-type" class="internal xref">NES/Famicom Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1.2.1"> - <p id="section-toc.1-1.4.2.1.2.1.1"><a href="#section-4.1.1" class="auto internal xref">4.1.1</a>. <a href="#name-nes-standard-controller-2" class="internal xref">NES Standard Controller</a></p> + <p id="section-toc.1-1.4.2.1.2.1.1"><a href="#section-4.1.1" class="auto internal xref">4.1.1</a>. <a href="#name-nes-standard-controller" class="internal xref">NES Standard Controller</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.1.2.2"> - <p id="section-toc.1-1.4.2.1.2.2.1"><a href="#section-4.1.2" class="auto internal xref">4.1.2</a>. <a href="#name-nes-four-score-2" class="internal xref">NES Four Score</a></p> + <p id="section-toc.1-1.4.2.1.2.2.1"><a href="#section-4.1.2" class="auto internal xref">4.1.2</a>. <a href="#name-nes-four-score" class="internal xref">NES Four Score</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.2"> - <p id="section-toc.1-1.4.2.2.1"><a href="#section-4.2" class="auto internal xref">4.2</a>. <a href="#name-snes-controller-types-2" class="internal xref">SNES Controller Types</a></p> + <p id="section-toc.1-1.4.2.2.1"><a href="#section-4.2" class="auto internal xref">4.2</a>. <a href="#name-snes-controller-types" class="internal xref">SNES Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.2.2.1"> - <p id="section-toc.1-1.4.2.2.2.1.1"><a href="#section-4.2.1" class="auto internal xref">4.2.1</a>. <a href="#name-snes-standard-controller-2" class="internal xref">SNES Standard Controller</a></p> + <p id="section-toc.1-1.4.2.2.2.1.1"><a href="#section-4.2.1" class="auto internal xref">4.2.1</a>. <a href="#name-snes-standard-controller" class="internal xref">SNES Standard Controller</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.2.2.2"> - <p id="section-toc.1-1.4.2.2.2.2.1"><a href="#section-4.2.2" class="auto internal xref">4.2.2</a>. <a href="#name-snes-mouse-2" class="internal xref">SNES Mouse</a></p> + <p id="section-toc.1-1.4.2.2.2.2.1"><a href="#section-4.2.2" class="auto internal xref">4.2.2</a>. <a href="#name-snes-mouse" class="internal xref">SNES Mouse</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3"> - <p id="section-toc.1-1.4.2.3.1"><a href="#section-4.3" class="auto internal xref">4.3</a>. <a href="#name-n64-controller-types-2" class="internal xref">N64 Controller Types</a></p> + <p id="section-toc.1-1.4.2.3.1"><a href="#section-4.3" class="auto internal xref">4.3</a>. <a href="#name-n64-controller-types" class="internal xref">N64 Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.1"> - <p id="section-toc.1-1.4.2.3.2.1.1"><a href="#section-4.3.1" class="auto internal xref">4.3.1</a>. <a href="#name-n64-standard-controller-2" class="internal xref">N64 Standard Controller</a></p> + <p id="section-toc.1-1.4.2.3.2.1.1"><a href="#section-4.3.1" class="auto internal xref">4.3.1</a>. <a href="#name-n64-standard-controller" class="internal xref">N64 Standard Controller</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.2"> - <p id="section-toc.1-1.4.2.3.2.2.1"><a href="#section-4.3.2" class="auto internal xref">4.3.2</a>. <a href="#name-n64-standard-controller-with-r" class="internal xref">N64 Standard Controller with Rumble</a></p> + <p id="section-toc.1-1.4.2.3.2.2.1"><a href="#section-4.3.2" class="auto internal xref">4.3.2</a>. <a href="#name-n64-standard-controller-wit" class="internal xref">N64 Standard Controller with Rumble</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.3"> - <p id="section-toc.1-1.4.2.3.2.3.1"><a href="#section-4.3.3" class="auto internal xref">4.3.3</a>. <a href="#name-n64-standard-controller-with-c" class="internal xref">N64 Standard Controller with Controller Pak</a></p> + <p id="section-toc.1-1.4.2.3.2.3.1"><a href="#section-4.3.3" class="auto internal xref">4.3.3</a>. <a href="#name-n64-standard-controller-with" class="internal xref">N64 Standard Controller with Controller Pak</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.4"> - <p id="section-toc.1-1.4.2.3.2.4.1"><a href="#section-4.3.4" class="auto internal xref">4.3.4</a>. <a href="#name-n64-standard-controller-with-t" class="internal xref">N64 Standard Controller with Transfer Pak</a></p> + <p id="section-toc.1-1.4.2.3.2.4.1"><a href="#section-4.3.4" class="auto internal xref">4.3.4</a>. <a href="#name-n64-standard-controller-with-" class="internal xref">N64 Standard Controller with Transfer Pak</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.5"> - <p id="section-toc.1-1.4.2.3.2.5.1"><a href="#section-4.3.5" class="auto internal xref">4.3.5</a>. <a href="#name-n64-mouse-2" class="internal xref">N64 Mouse</a></p> + <p id="section-toc.1-1.4.2.3.2.5.1"><a href="#section-4.3.5" class="auto internal xref">4.3.5</a>. <a href="#name-n64-mouse" class="internal xref">N64 Mouse</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.3.2.6"> - <p id="section-toc.1-1.4.2.3.2.6.1"><a href="#section-4.3.6" class="auto internal xref">4.3.6</a>. <a href="#name-n64-densha-de-go-2" class="internal xref">N64 Densha de Go</a></p> + <p id="section-toc.1-1.4.2.3.2.6.1"><a href="#section-4.3.6" class="auto internal xref">4.3.6</a>. <a href="#name-n64-densha-de-go" class="internal xref">N64 Densha de Go</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.4"> - <p id="section-toc.1-1.4.2.4.1"><a href="#section-4.4" class="auto internal xref">4.4</a>. <a href="#name-gamecube-controller-types-2" class="internal xref">GameCube Controller Types</a></p> + <p id="section-toc.1-1.4.2.4.1"><a href="#section-4.4" class="auto internal xref">4.4</a>. <a href="#name-gamecube-controller-types" class="internal xref">GameCube Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.4.2.1"> - <p id="section-toc.1-1.4.2.4.2.1.1"><a href="#section-4.4.1" class="auto internal xref">4.4.1</a>. <a href="#name-gamecube-standard-controller" class="internal xref">GameCube Standard Controller</a></p> + <p id="section-toc.1-1.4.2.4.2.1.1"><a href="#section-4.4.1" class="auto internal xref">4.4.1</a>. <a href="#name-gamecube-standard-controlle" class="internal xref">GameCube Standard Controller</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.5"> - <p id="section-toc.1-1.4.2.5.1"><a href="#section-4.5" class="auto internal xref">4.5</a>. <a href="#name-game-boy-controller-types-2" class="internal xref">Game Boy Controller Types</a></p> + <p id="section-toc.1-1.4.2.5.1"><a href="#section-4.5" class="auto internal xref">4.5</a>. <a href="#name-game-boy-controller-types" class="internal xref">Game Boy Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.5.2.1"> - <p id="section-toc.1-1.4.2.5.2.1.1"><a href="#section-4.5.1" class="auto internal xref">4.5.1</a>. <a href="#name-gb-standard-controller-2" class="internal xref">GB Standard Controller</a></p> + <p id="section-toc.1-1.4.2.5.2.1.1"><a href="#section-4.5.1" class="auto internal xref">4.5.1</a>. <a href="#name-gb-standard-controller" class="internal xref">GB Standard Controller</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.6"> - <p id="section-toc.1-1.4.2.6.1"><a href="#section-4.6" class="auto internal xref">4.6</a>. <a href="#name-game-boy-color-controller-ty" class="internal xref">Game Boy Color Controller Types</a></p> + <p id="section-toc.1-1.4.2.6.1"><a href="#section-4.6" class="auto internal xref">4.6</a>. <a href="#name-game-boy-color-controller-t" class="internal xref">Game Boy Color Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.6.2.1"> - <p id="section-toc.1-1.4.2.6.2.1.1"><a href="#section-4.6.1" class="auto internal xref">4.6.1</a>. <a href="#name-gbc-standard-controller-2" class="internal xref">GBC Standard Controller</a></p> + <p id="section-toc.1-1.4.2.6.2.1.1"><a href="#section-4.6.1" class="auto internal xref">4.6.1</a>. <a href="#name-gbc-standard-controller" class="internal xref">GBC Standard Controller</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.7"> - <p id="section-toc.1-1.4.2.7.1"><a href="#section-4.7" class="auto internal xref">4.7</a>. <a href="#name-game-boy-advance-controller-" class="internal xref">Game Boy Advance Controller Types</a></p> + <p id="section-toc.1-1.4.2.7.1"><a href="#section-4.7" class="auto internal xref">4.7</a>. <a href="#name-game-boy-advance-controller" class="internal xref">Game Boy Advance Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.7.2.1"> - <p id="section-toc.1-1.4.2.7.2.1.1"><a href="#section-4.7.1" class="auto internal xref">4.7.1</a>. <a href="#name-gba-standard-controller-2" class="internal xref">GBA Standard Controller</a></p> + <p id="section-toc.1-1.4.2.7.2.1.1"><a href="#section-4.7.1" class="auto internal xref">4.7.1</a>. <a href="#name-gba-standard-controller" class="internal xref">GBA Standard Controller</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.8"> - <p id="section-toc.1-1.4.2.8.1"><a href="#section-4.8" class="auto internal xref">4.8</a>. <a href="#name-genesis-controller-types-2" class="internal xref">Genesis Controller Types</a></p> + <p id="section-toc.1-1.4.2.8.1"><a href="#section-4.8" class="auto internal xref">4.8</a>. <a href="#name-genesis-controller-types" class="internal xref">Genesis Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.8.2.1"> - <p id="section-toc.1-1.4.2.8.2.1.1"><a href="#section-4.8.1" class="auto internal xref">4.8.1</a>. <a href="#name-genesis-mega-drive-3-button-2" class="internal xref">Genesis (Mega Drive) 3-Button</a></p> + <p id="section-toc.1-1.4.2.8.2.1.1"><a href="#section-4.8.1" class="auto internal xref">4.8.1</a>. <a href="#name-genesis-mega-drive-3-button" class="internal xref">Genesis (Mega Drive) 3-Button</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.8.2.2"> - <p id="section-toc.1-1.4.2.8.2.2.1"><a href="#section-4.8.2" class="auto internal xref">4.8.2</a>. <a href="#name-genesis-mega-drive-6-button-2" class="internal xref">Genesis (Mega Drive) 6-Button</a></p> + <p id="section-toc.1-1.4.2.8.2.2.1"><a href="#section-4.8.2" class="auto internal xref">4.8.2</a>. <a href="#name-genesis-mega-drive-6-button" class="internal xref">Genesis (Mega Drive) 6-Button</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.9"> - <p id="section-toc.1-1.4.2.9.1"><a href="#section-4.9" class="auto internal xref">4.9</a>. <a href="#name-atari-2600-controller-types-2" class="internal xref">Atari 2600 Controller Types</a></p> + <p id="section-toc.1-1.4.2.9.1"><a href="#section-4.9" class="auto internal xref">4.9</a>. <a href="#name-atari-2600-controller-types" class="internal xref">Atari 2600 Controller Types</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.9.2.1"> - <p id="section-toc.1-1.4.2.9.2.1.1"><a href="#section-4.9.1" class="auto internal xref">4.9.1</a>. <a href="#name-a2600-joystick-2" class="internal xref">A2600 Joystick</a></p> + <p id="section-toc.1-1.4.2.9.2.1.1"><a href="#section-4.9.1" class="auto internal xref">4.9.1</a>. <a href="#name-a2600-joystick" class="internal xref">A2600 Joystick</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.4.2.9.2.2"> - <p id="section-toc.1-1.4.2.9.2.2.1"><a href="#section-4.9.2" class="auto internal xref">4.9.2</a>. <a href="#name-a2600-keyboard-controller-2" class="internal xref">A2600 Keyboard Controller</a></p> + <p id="section-toc.1-1.4.2.9.2.2.1"><a href="#section-4.9.2" class="auto internal xref">4.9.2</a>. <a href="#name-a2600-keyboard-controller" class="internal xref">A2600 Keyboard Controller</a></p> </li> </ul> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5"> - <p id="section-toc.1-1.5.1"><a href="#section-5" class="auto internal xref">5</a>. <a href="#name-references-2" class="internal xref">References</a></p> + <p id="section-toc.1-1.5.1"><a href="#section-5" class="auto internal xref">5</a>. <a href="#name-references" class="internal xref">References</a></p> <ul class="compact toc ulBare ulEmpty"> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.1"> - <p id="section-toc.1-1.5.2.1.1"><a href="#section-5.1" class="auto internal xref">5.1</a>. <a href="#name-normative-references-2" class="internal xref">Normative References</a></p> + <p id="section-toc.1-1.5.2.1.1"><a href="#section-5.1" class="auto internal xref">5.1</a>. <a href="#name-normative-references" class="internal xref">Normative References</a></p> </li> </ul> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.6"> - <p id="section-toc.1-1.6.1"><a href="#appendix-A" class="auto internal xref"></a><a href="#name-copyright-notice-2" class="internal xref">Copyright Notice</a></p> + <p id="section-toc.1-1.6.1"><a href="#appendix-A" class="auto internal xref"></a><a href="#name-copyright-notice" class="internal xref">Copyright Notice</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.7"> - <p id="section-toc.1-1.7.1"><a href="#appendix-B" class="auto internal xref"></a><a href="#name-authors-addresses-2" class="internal xref">Authors' Addresses</a></p> + <p id="section-toc.1-1.7.1"><a href="#appendix-B" class="auto internal xref"></a><a href="#name-authors-addresses" class="internal xref">Authors' Addresses</a></p> </li> </ul> </nav> @@ -1581,20 +1595,20 @@ li > p:last-of-type { </div> <div id="introduction"> <section id="section-1"> - <h2 id="name-introduction-2"> -<a href="#section-1" class="section-number selfRef">1. </a><a href="#name-introduction-2" class="section-name selfRef">Introduction</a> + <h2 id="name-introduction"> +<a href="#section-1" class="section-number selfRef">1. </a><a href="#name-introduction" class="section-name selfRef">Introduction</a> </h2> <p id="section-1-1">The Tool Assisted Speedrun Dump (<strong>TASD</strong>) interchange format is a file format for storing data to allow "Tool Assisted Speedruns" or "Tool Assited Superplays" to be played on physical video game console hardware using TAS replay devices. Created to be hardware and software agnostic, the <strong>TASD</strong> interchange format uses a key-based, binary, packet format to break up pieces of information into easily-parsable and forward-compatible chunks. The format is extensible by simply defining additional keys or value types as necessary. When parsing the file, software can skip any packets whose key is unknown or unsupported.<a href="#section-1-1" class="pilcrow">¶</a></p> <p id="section-1-2">Keys can be used multiple times or completely omitted as needed. This reusability eliminates the need of a predefined delimiter to separate pieces of data such as a list of TAS authors.<a href="#section-1-2" class="pilcrow">¶</a></p> <p id="section-1-3">While files generated by emulator dump scripts should provide as much information as possible, because keys are optional, the file can be expanded later with any additional data as desired. No intermediary file format is necessary.<a href="#section-1-3" class="pilcrow">¶</a></p> <section id="section-1.1"> - <h3 id="name-overview-and-preliminaries-2"> -<a href="#section-1.1" class="section-number selfRef">1.1. </a><a href="#name-overview-and-preliminaries-2" class="section-name selfRef">Overview and Preliminaries</a> + <h3 id="name-overview-and-preliminaries"> +<a href="#section-1.1" class="section-number selfRef">1.1. </a><a href="#name-overview-and-preliminaries" class="section-name selfRef">Overview and Preliminaries</a> </h3> <p id="section-1.1-1">The key words "<span class="bcp14">MUST</span>", "<span class="bcp14">MUST NOT</span>", "<span class="bcp14">REQUIRED</span>", "<span class="bcp14">SHALL</span>", "<span class="bcp14">SHALL NOT</span>", "<span class="bcp14">SHOULD</span>", "<span class="bcp14">SHOULD NOT</span>", "<span class="bcp14">RECOMMENDED</span>", "<span class="bcp14">NOT RECOMMENDED</span>", "<span class="bcp14">MAY</span>", and "<span class="bcp14">OPTIONAL</span>" in this document are to be interpreted as described in BCP 14 <span>[<a href="#RFC2119" class="cite xref">RFC2119</a>]</span> <span>[<a href="#RFC8174" class="cite xref">RFC8174</a>]</span> when, and only when, they appear in all capitals, as shown here.<a href="#section-1.1-1" class="pilcrow">¶</a></p> <section id="section-1.1.1"> - <h4 id="name-notation-and-vocabulary-2"> -<a href="#section-1.1.1" class="section-number selfRef">1.1.1. </a><a href="#name-notation-and-vocabulary-2" class="section-name selfRef">Notation and Vocabulary</a> + <h4 id="name-notation-and-vocabulary"> +<a href="#section-1.1.1" class="section-number selfRef">1.1.1. </a><a href="#name-notation-and-vocabulary" class="section-name selfRef">Notation and Vocabulary</a> </h4> <p id="section-1.1.1-1">Data Types:<a href="#section-1.1.1-1" class="pilcrow">¶</a></p> <ul class="compact ulEmpty"> @@ -1608,6 +1622,8 @@ li > p:last-of-type { </li> <li class="compact ulEmpty" id="section-1.1.1-2.5">(B) = Boolean<a href="#section-1.1.1-2.5" class="pilcrow">¶</a> </li> + <li class="compact ulEmpty" id="section-1.1.1-2.6">([]N) = List of Unsigned Integers<a href="#section-1.1.1-2.6" class="pilcrow">¶</a> +</li> </ul> <p id="section-1.1.1-3">We use the terms <strong>byte</strong> and <strong>octet</strong> interchangeably in this document.<a href="#section-1.1.1-3" class="pilcrow">¶</a></p> <p id="section-1.1.1-4">Unless specified otherwise, all multi-octet integers are big-endian.<a href="#section-1.1.1-4" class="pilcrow">¶</a></p> @@ -1716,8 +1732,8 @@ li > p:last-of-type { </section> </section> <section id="section-1.2"> - <h3 id="name-motivations-2"> -<a href="#section-1.2" class="section-number selfRef">1.2. </a><a href="#name-motivations-2" class="section-name selfRef">Motivations</a> + <h3 id="name-motivations"> +<a href="#section-1.2" class="section-number selfRef">1.2. </a><a href="#name-motivations" class="section-name selfRef">Motivations</a> </h3> <p id="section-1.2-1">This file format's primary goal is to provide a comprehensive and replay device agnostic TAS movie controller input dump format that is usable for any console. Additional goals include:<a href="#section-1.2-1" class="pilcrow">¶</a></p> <ul class="normal"> @@ -1732,8 +1748,8 @@ li > p:last-of-type { </ul> <p id="section-1.2-3">Consideration was also given to how usable the format would be for the software that interacts with replay devices (examples: methods of ingestion/parsing, ease of ingestion/parsing in various languages).<a href="#section-1.2-3" class="pilcrow">¶</a></p> <section id="section-1.2.1"> - <h4 id="name-problems-with-existing-forma"> -<a href="#section-1.2.1" class="section-number selfRef">1.2.1. </a><a href="#name-problems-with-existing-forma" class="section-name selfRef">Problems With Existing Formats</a> + <h4 id="name-problems-with-existing-form"> +<a href="#section-1.2.1" class="section-number selfRef">1.2.1. </a><a href="#name-problems-with-existing-form" class="section-name selfRef">Problems With Existing Formats</a> </h4> <p id="section-1.2.1-1">Most existing formats are either incomplete for some verification needs or don't exist at all for some consoles. A format commonly used for NES console verifications (r08) only encodes 2 standard controllers worth of sequential data and a format commonly used for SNES console verifications (r16m) only encodes up to 8 standard controllers worth of sequential data. There is no built in way to store <strong>RESET</strong> press timing information or indicate additional settings/information. Non-standard controllers are also not supported in commonly used formats.<a href="#section-1.2.1-1" class="pilcrow">¶</a></p> <p id="section-1.2.1-2">For consoles not as popular as the NES and SNES, controller input formats would frequently be written in a way that is meant only to work and not in a "standard" way. While that process works, it's less than ideal for redistribution of console replays so that others (especially with differing TAS replay devices) can also verify the same TAS.<a href="#section-1.2.1-2" class="pilcrow">¶</a></p> @@ -1742,8 +1758,8 @@ li > p:last-of-type { </section> </div> <section id="section-2"> - <h2 id="name-header-2"> -<a href="#section-2" class="section-number selfRef">2. </a><a href="#name-header-2" class="section-name selfRef">Header</a> + <h2 id="name-header"> +<a href="#section-2" class="section-number selfRef">2. </a><a href="#name-header" class="section-name selfRef">Header</a> </h2> <p id="section-2-1"><strong>TASD</strong> files <span class="bcp14">MUST</span> include a header, which <span class="bcp14">MUST</span> be in the following format:<a href="#section-2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-2-2"> @@ -1774,8 +1790,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3"> - <h2 id="name-packets-2"> -<a href="#section-3" class="section-number selfRef">3. </a><a href="#name-packets-2" class="section-name selfRef">Packets</a> + <h2 id="name-packets"> +<a href="#section-3" class="section-number selfRef">3. </a><a href="#name-packets" class="section-name selfRef">Packets</a> </h2> <p id="section-3-1">Packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3-2"> @@ -1814,12 +1830,12 @@ li > p:last-of-type { </dl> <p id="section-3-4">All packets are <span class="bcp14">OPTIONAL</span>.<a href="#section-3-4" class="pilcrow">¶</a></p> <section id="section-3.1"> - <h3 id="name-assigned-packet-keys-without"> -<a href="#section-3.1" class="section-number selfRef">3.1. </a><a href="#name-assigned-packet-keys-without" class="section-name selfRef">Assigned Packet Keys Without Descriptions</a> + <h3 id="name-assigned-packet-keys-withou"> +<a href="#section-3.1" class="section-number selfRef">3.1. </a><a href="#name-assigned-packet-keys-withou" class="section-name selfRef">Assigned Packet Keys Without Descriptions</a> </h3> <section id="section-3.1.1"> - <h4 id="name-general-keys-2"> -<a href="#section-3.1.1" class="section-number selfRef">3.1.1. </a><a href="#name-general-keys-2" class="section-name selfRef">General Keys</a> + <h4 id="name-general-keys"> +<a href="#section-3.1.1" class="section-number selfRef">3.1.1. </a><a href="#name-general-keys" class="section-name selfRef">General Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.1-1"> <dt id="section-3.1.1-1.1"><code>[00 01]</code></dt> @@ -1913,8 +1929,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.1.2"> - <h4 id="name-nes-specific-keys-2"> -<a href="#section-3.1.2" class="section-number selfRef">3.1.2. </a><a href="#name-nes-specific-keys-2" class="section-name selfRef">NES Specific Keys</a> + <h4 id="name-nes-specific-keys"> +<a href="#section-3.1.2" class="section-number selfRef">3.1.2. </a><a href="#name-nes-specific-keys" class="section-name selfRef">NES Specific Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.2-1"> <dt id="section-3.1.2-1.1"><code>[01 01]</code></dt> @@ -1936,8 +1952,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.1.3"> - <h4 id="name-snes-specific-keys-2"> -<a href="#section-3.1.3" class="section-number selfRef">3.1.3. </a><a href="#name-snes-specific-keys-2" class="section-name selfRef">SNES Specific Keys</a> + <h4 id="name-snes-specific-keys"> +<a href="#section-3.1.3" class="section-number selfRef">3.1.3. </a><a href="#name-snes-specific-keys" class="section-name selfRef">SNES Specific Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.3-1"> <dt id="section-3.1.3-1.1"><code>[02 02]</code></dt> @@ -1953,14 +1969,14 @@ li > p:last-of-type { </dd> <dd class="break"></dd> <dt id="section-3.1.3-1.7"><code>[02 05]</code></dt> - <dd style="margin-left: 1.5em" id="section-3.1.3-1.8">SNES_LATCH_TRAIN (RESERVED)<a href="#section-3.1.3-1.8" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-3.1.3-1.8">SNES_LATCH_TRAIN<a href="#section-3.1.3-1.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> </section> <section id="section-3.1.4"> - <h4 id="name-genesis-specific-keys-2"> -<a href="#section-3.1.4" class="section-number selfRef">3.1.4. </a><a href="#name-genesis-specific-keys-2" class="section-name selfRef">Genesis Specific Keys</a> + <h4 id="name-genesis-specific-keys"> +<a href="#section-3.1.4" class="section-number selfRef">3.1.4. </a><a href="#name-genesis-specific-keys" class="section-name selfRef">Genesis Specific Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.4-1"> <dt id="section-3.1.4-1.1"><code>[08 04]</code></dt> @@ -1970,8 +1986,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.1.5"> - <h4 id="name-input-frame-timing-keys-2"> -<a href="#section-3.1.5" class="section-number selfRef">3.1.5. </a><a href="#name-input-frame-timing-keys-2" class="section-name selfRef">Input Frame/Timing Keys</a> + <h4 id="name-input-frame-timing-keys"> +<a href="#section-3.1.5" class="section-number selfRef">3.1.5. </a><a href="#name-input-frame-timing-keys" class="section-name selfRef">Input Frame/Timing Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.5-1"> <dt id="section-3.1.5-1.1"><code>[FE 01]</code></dt> @@ -1997,8 +2013,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.1.6"> - <h4 id="name-extraneous-keys-2"> -<a href="#section-3.1.6" class="section-number selfRef">3.1.6. </a><a href="#name-extraneous-keys-2" class="section-name selfRef">Extraneous Keys</a> + <h4 id="name-extraneous-keys"> +<a href="#section-3.1.6" class="section-number selfRef">3.1.6. </a><a href="#name-extraneous-keys" class="section-name selfRef">Extraneous Keys</a> </h4> <span class="break"></span><dl class="dlCompact dlParallel" id="section-3.1.6-1"> <dt id="section-3.1.6-1.1"><code>[FF 01]</code></dt> @@ -2018,12 +2034,12 @@ li > p:last-of-type { </section> <div id="descriptions"> <section id="section-3.2"> - <h3 id="name-assigned-packet-keys-with-de"> -<a href="#section-3.2" class="section-number selfRef">3.2. </a><a href="#name-assigned-packet-keys-with-de" class="section-name selfRef">Assigned Packet Keys With Descriptions</a> + <h3 id="name-assigned-packet-keys-with-d"> +<a href="#section-3.2" class="section-number selfRef">3.2. </a><a href="#name-assigned-packet-keys-with-d" class="section-name selfRef">Assigned Packet Keys With Descriptions</a> </h3> <section id="section-3.2.1"> - <h4 id="name-general-key-descriptions-2"> -<a href="#section-3.2.1" class="section-number selfRef">3.2.1. </a><a href="#name-general-key-descriptions-2" class="section-name selfRef">General Key Descriptions</a> + <h4 id="name-general-key-descriptions"> +<a href="#section-3.2.1" class="section-number selfRef">3.2.1. </a><a href="#name-general-key-descriptions" class="section-name selfRef">General Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.1-1"> <dt id="section-3.2.1-1.1"> @@ -2139,8 +2155,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.2.2"> - <h4 id="name-nes-specific-key-description"> -<a href="#section-3.2.2" class="section-number selfRef">3.2.2. </a><a href="#name-nes-specific-key-description" class="section-name selfRef">NES Specific Key Descriptions</a> + <h4 id="name-nes-specific-key-descriptio"> +<a href="#section-3.2.2" class="section-number selfRef">3.2.2. </a><a href="#name-nes-specific-key-descriptio" class="section-name selfRef">NES Specific Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.2-1"> <dt id="section-3.2.2-1.1"> @@ -2166,35 +2182,35 @@ li > p:last-of-type { </dl> </section> <section id="section-3.2.3"> - <h4 id="name-snes-specific-key-descriptio"> -<a href="#section-3.2.3" class="section-number selfRef">3.2.3. </a><a href="#name-snes-specific-key-descriptio" class="section-name selfRef">SNES Specific Key Descriptions</a> + <h4 id="name-snes-specific-key-descripti"> +<a href="#section-3.2.3" class="section-number selfRef">3.2.3. </a><a href="#name-snes-specific-key-descripti" class="section-name selfRef">SNES Specific Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.3-1"> <dt id="section-3.2.3-1.1"> <code>[02 02]</code> - SNES_CLOCK_FILTER</dt> - <dd style="margin-left: 1.5em" id="section-3.2.3-1.2">Specifies a clock filter time in tenths of a microsecond (0.1 microseconds or 100 nanoseconds) for long how to wait after a clock pulse before new clock pulses <span class="bcp14">SHOULD</span> be accepted by the replay device. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type in direct form. Discussed in (<a href="#nes_clock_filter" class="auto internal xref">Section 3.3.2.2</a>).<a href="#section-3.2.3-1.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-3.2.3-1.2">Specifies a clock filter time in tenths of a microsecond (0.1 microseconds or 100 nanoseconds) for how long to wait after a clock pulse until new clock pulses <span class="bcp14">SHOULD</span> be accepted by the replay device. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type in direct form. Discussed in (<a href="#snes_clock_filter" class="auto internal xref">Section 3.3.3.1</a>).<a href="#section-3.2.3-1.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-3.2.3-1.3"> -<code>[02 03]</code> - SNES_OVERREAD</dt> - <dd style="margin-left: 1.5em" id="section-3.2.3-1.4">Specifies whether a high or low signal <span class="bcp14">SHOULD</span> be sent to the SNES console if the console clocks the replay device for more input buttons than are expected for the latch. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type in direct form. Discussed in (<a href="#snes_overread" class="auto internal xref">Section 3.3.3.2</a>).<a href="#section-3.2.3-1.4" class="pilcrow">¶</a> +<code>[01 03]</code> - SNES_OVERREAD</dt> + <dd style="margin-left: 1.5em" id="section-3.2.3-1.4">Specifies whether a high or low signal <span class="bcp14">SHOULD</span> be sent to the SNES console if the console clocks the replay device for more input buttons than are expected for the latch. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type in direct form. Discussed in (<a href="#snes_overread" class="auto internal xref">Section 3.3.3.2</a>).<a href="#section-3.2.3-1.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-3.2.3-1.5"> -<code>[02 04]</code> - SNES_GAME_GENIE_CODE</dt> +<code>[01 04]</code> - SNES_GAME_GENIE_CODE</dt> <dd style="margin-left: 1.5em" id="section-3.2.3-1.6">Specifies a Game Genie code for the TAS. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">MAY</span> contain more than 1 of this packet type. Discussed in (<a href="#snes_game_genie_code" class="auto internal xref">Section 3.3.3.3</a>).<a href="#section-3.2.3-1.6" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-3.2.3-1.7"> -<code>[02 05]</code> - SNES_LATCH_TRAIN (RESERVED)</dt> - <dd style="margin-left: 1.5em" id="section-3.2.3-1.8">This packet type is not yet designed and is intended to be described in the future. Discussed in (<a href="#snes_latch_train" class="auto internal xref">Section 3.3.3.4</a>).<a href="#section-3.2.3-1.8" class="pilcrow">¶</a> +<code>[01 04]</code> - SNES_LATCH_TRAIN</dt> + <dd style="margin-left: 1.5em" id="section-3.2.3-1.8">Specifies Latch Trains for TAS. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">MAY</span> contain more than 1 of this packet type. Discussed in (<a href="#snes_latch_train" class="auto internal xref">Section 3.3.3.4</a>).<a href="#section-3.2.3-1.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> </section> <section id="section-3.2.4"> - <h4 id="name-genesis-specific-key-descrip"> -<a href="#section-3.2.4" class="section-number selfRef">3.2.4. </a><a href="#name-genesis-specific-key-descrip" class="section-name selfRef">Genesis Specific Key Descriptions</a> + <h4 id="name-genesis-specific-key-descri"> +<a href="#section-3.2.4" class="section-number selfRef">3.2.4. </a><a href="#name-genesis-specific-key-descri" class="section-name selfRef">Genesis Specific Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.4-1"> <dt id="section-3.2.4-1.1"> @@ -2205,8 +2221,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.2.5"> - <h4 id="name-input-frame-timing-key-descr"> -<a href="#section-3.2.5" class="section-number selfRef">3.2.5. </a><a href="#name-input-frame-timing-key-descr" class="section-name selfRef">Input Frame/Timing Key Descriptions</a> + <h4 id="name-input-frame-timing-key-desc"> +<a href="#section-3.2.5" class="section-number selfRef">3.2.5. </a><a href="#name-input-frame-timing-key-desc" class="section-name selfRef">Input Frame/Timing Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.5-1"> <dt id="section-3.2.5-1.1"> @@ -2237,8 +2253,8 @@ li > p:last-of-type { </dl> </section> <section id="section-3.2.6"> - <h4 id="name-extraneous-key-descriptions-2"> -<a href="#section-3.2.6" class="section-number selfRef">3.2.6. </a><a href="#name-extraneous-key-descriptions-2" class="section-name selfRef">Extraneous Key Descriptions</a> + <h4 id="name-extraneous-key-descriptions"> +<a href="#section-3.2.6" class="section-number selfRef">3.2.6. </a><a href="#name-extraneous-key-descriptions" class="section-name selfRef">Extraneous Key Descriptions</a> </h4> <span class="break"></span><dl class="dlNewline" id="section-3.2.6-1"> <dt id="section-3.2.6-1.1"> @@ -2248,7 +2264,7 @@ li > p:last-of-type { <dd class="break"></dd> <dt id="section-3.2.6-1.3"> <code>[FF FE]</code> - EXPERIMENTAL</dt> - <dd style="margin-left: 1.5em" id="section-3.2.6-1.4">TASD file is using experimental packets. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type. Discussed in (<a href="#experimental" class="auto internal xref">Section 3.3.6.2</a>).<a href="#section-3.2.6-1.4" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-3.2.6-1.4">TASD file is using draft/experimental packets. This packet type is <span class="bcp14">OPTIONAL</span> and a <strong>TASD</strong> file <span class="bcp14">SHOULD NOT</span> contain more than 1 of this packet type. Discussed in (<a href="#experimental" class="auto internal xref">Section 3.3.6.2</a>).<a href="#section-3.2.6-1.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-3.2.6-1.5"> @@ -2261,17 +2277,17 @@ li > p:last-of-type { </section> </div> <section id="section-3.3"> - <h3 id="name-packet-payload-formats-2"> -<a href="#section-3.3" class="section-number selfRef">3.3. </a><a href="#name-packet-payload-formats-2" class="section-name selfRef">Packet Payload Formats</a> + <h3 id="name-packet-payload-formats"> +<a href="#section-3.3" class="section-number selfRef">3.3. </a><a href="#name-packet-payload-formats" class="section-name selfRef">Packet Payload Formats</a> </h3> <section id="section-3.3.1"> - <h4 id="name-general-key-payload-formats-2"> -<a href="#section-3.3.1" class="section-number selfRef">3.3.1. </a><a href="#name-general-key-payload-formats-2" class="section-name selfRef">General Key Payload Formats</a> + <h4 id="name-general-key-payload-formats"> +<a href="#section-3.3.1" class="section-number selfRef">3.3.1. </a><a href="#name-general-key-payload-formats" class="section-name selfRef">General Key Payload Formats</a> </h4> <div id="console_type"> <section id="section-3.3.1.1"> - <h5 id="name-console_type-packet-2"> -<a href="#section-3.3.1.1" class="section-number selfRef">3.3.1.1. </a><a href="#name-console_type-packet-2" class="section-name selfRef">CONSOLE_TYPE Packet</a> + <h5 id="name-console_type-packet"> +<a href="#section-3.3.1.1" class="section-number selfRef">3.3.1.1. </a><a href="#name-console_type-packet" class="section-name selfRef">CONSOLE_TYPE Packet</a> </h5> <p id="section-3.3.1.1-1">CONSOLE_TYPE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.1-2"> @@ -2313,8 +2329,8 @@ li > p:last-of-type { </div> <div id="console_region"> <section id="section-3.3.1.2"> - <h5 id="name-console_region-packet-2"> -<a href="#section-3.3.1.2" class="section-number selfRef">3.3.1.2. </a><a href="#name-console_region-packet-2" class="section-name selfRef">CONSOLE_REGION Packet</a> + <h5 id="name-console_region-packet"> +<a href="#section-3.3.1.2" class="section-number selfRef">3.3.1.2. </a><a href="#name-console_region-packet" class="section-name selfRef">CONSOLE_REGION Packet</a> </h5> <p id="section-3.3.1.2-1">CONSOLE_REGION packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.2-2"> @@ -2340,8 +2356,8 @@ li > p:last-of-type { </div> <div id="game_title"> <section id="section-3.3.1.3"> - <h5 id="name-game_title-packet-2"> -<a href="#section-3.3.1.3" class="section-number selfRef">3.3.1.3. </a><a href="#name-game_title-packet-2" class="section-name selfRef">GAME_TITLE Packet</a> + <h5 id="name-game_title-packet"> +<a href="#section-3.3.1.3" class="section-number selfRef">3.3.1.3. </a><a href="#name-game_title-packet" class="section-name selfRef">GAME_TITLE Packet</a> </h5> <p id="section-3.3.1.3-1">GAME_TITLE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.3-2"> @@ -2368,8 +2384,8 @@ li > p:last-of-type { </div> <div id="rom_name"> <section id="section-3.3.1.4"> - <h5 id="name-rom_name-packet-2"> -<a href="#section-3.3.1.4" class="section-number selfRef">3.3.1.4. </a><a href="#name-rom_name-packet-2" class="section-name selfRef">ROM_NAME Packet</a> + <h5 id="name-rom_name-packet"> +<a href="#section-3.3.1.4" class="section-number selfRef">3.3.1.4. </a><a href="#name-rom_name-packet" class="section-name selfRef">ROM_NAME Packet</a> </h5> <p id="section-3.3.1.4-1">ROM_NAME packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.4-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.4-2"> @@ -2396,8 +2412,8 @@ li > p:last-of-type { </div> <div id="author"> <section id="section-3.3.1.5"> - <h5 id="name-attribution-packet-2"> -<a href="#section-3.3.1.5" class="section-number selfRef">3.3.1.5. </a><a href="#name-attribution-packet-2" class="section-name selfRef">ATTRIBUTION Packet</a> + <h5 id="name-attribution-packet"> +<a href="#section-3.3.1.5" class="section-number selfRef">3.3.1.5. </a><a href="#name-attribution-packet" class="section-name selfRef">ATTRIBUTION Packet</a> </h5> <p id="section-3.3.1.5-1">ATTRIBUTION packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.5-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.5-2"> @@ -2434,8 +2450,8 @@ li > p:last-of-type { </div> <div id="category"> <section id="section-3.3.1.6"> - <h5 id="name-category-packet-2"> -<a href="#section-3.3.1.6" class="section-number selfRef">3.3.1.6. </a><a href="#name-category-packet-2" class="section-name selfRef">CATEGORY Packet</a> + <h5 id="name-category-packet"> +<a href="#section-3.3.1.6" class="section-number selfRef">3.3.1.6. </a><a href="#name-category-packet" class="section-name selfRef">CATEGORY Packet</a> </h5> <p id="section-3.3.1.6-1">CATEGORY packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.6-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.6-2"> @@ -2462,8 +2478,8 @@ li > p:last-of-type { </div> <div id="emulator_name"> <section id="section-3.3.1.7"> - <h5 id="name-emulator_name-packet-2"> -<a href="#section-3.3.1.7" class="section-number selfRef">3.3.1.7. </a><a href="#name-emulator_name-packet-2" class="section-name selfRef">EMULATOR_NAME Packet</a> + <h5 id="name-emulator_name-packet"> +<a href="#section-3.3.1.7" class="section-number selfRef">3.3.1.7. </a><a href="#name-emulator_name-packet" class="section-name selfRef">EMULATOR_NAME Packet</a> </h5> <p id="section-3.3.1.7-1">EMULATOR_NAME packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.7-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.7-2"> @@ -2490,8 +2506,8 @@ li > p:last-of-type { </div> <div id="emulator_version"> <section id="section-3.3.1.8"> - <h5 id="name-emulator_version-packet-2"> -<a href="#section-3.3.1.8" class="section-number selfRef">3.3.1.8. </a><a href="#name-emulator_version-packet-2" class="section-name selfRef">EMULATOR_VERSION Packet</a> + <h5 id="name-emulator_version-packet"> +<a href="#section-3.3.1.8" class="section-number selfRef">3.3.1.8. </a><a href="#name-emulator_version-packet" class="section-name selfRef">EMULATOR_VERSION Packet</a> </h5> <p id="section-3.3.1.8-1">EMULATOR_VERSION packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.8-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.8-2"> @@ -2518,8 +2534,8 @@ li > p:last-of-type { </div> <div id="emulator_core"> <section id="section-3.3.1.9"> - <h5 id="name-emulator_core-packet-2"> -<a href="#section-3.3.1.9" class="section-number selfRef">3.3.1.9. </a><a href="#name-emulator_core-packet-2" class="section-name selfRef">EMULATOR_CORE Packet</a> + <h5 id="name-emulator_core-packet"> +<a href="#section-3.3.1.9" class="section-number selfRef">3.3.1.9. </a><a href="#name-emulator_core-packet" class="section-name selfRef">EMULATOR_CORE Packet</a> </h5> <p id="section-3.3.1.9-1">EMULATOR_CORE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.9-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.9-2"> @@ -2546,8 +2562,8 @@ li > p:last-of-type { </div> <div id="tas_last_modified"> <section id="section-3.3.1.10"> - <h5 id="name-tas_last_modified-packet-2"> -<a href="#section-3.3.1.10" class="section-number selfRef">3.3.1.10. </a><a href="#name-tas_last_modified-packet-2" class="section-name selfRef">TAS_LAST_MODIFIED Packet</a> + <h5 id="name-tas_last_modified-packet"> +<a href="#section-3.3.1.10" class="section-number selfRef">3.3.1.10. </a><a href="#name-tas_last_modified-packet" class="section-name selfRef">TAS_LAST_MODIFIED Packet</a> </h5> <p id="section-3.3.1.10-1">TAS_LAST_MODIFIED packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.10-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.10-2"> @@ -2570,8 +2586,8 @@ li > p:last-of-type { </div> <div id="dump_created"> <section id="section-3.3.1.11"> - <h5 id="name-dump_created-packet-2"> -<a href="#section-3.3.1.11" class="section-number selfRef">3.3.1.11. </a><a href="#name-dump_created-packet-2" class="section-name selfRef">DUMP_CREATED Packet</a> + <h5 id="name-dump_created-packet"> +<a href="#section-3.3.1.11" class="section-number selfRef">3.3.1.11. </a><a href="#name-dump_created-packet" class="section-name selfRef">DUMP_CREATED Packet</a> </h5> <p id="section-3.3.1.11-1">DUMP_CREATED packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.11-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.11-2"> @@ -2594,8 +2610,8 @@ li > p:last-of-type { </div> <div id="dump_last_modified"> <section id="section-3.3.1.12"> - <h5 id="name-dump_last_modified-packet-2"> -<a href="#section-3.3.1.12" class="section-number selfRef">3.3.1.12. </a><a href="#name-dump_last_modified-packet-2" class="section-name selfRef">DUMP_LAST_MODIFIED Packet</a> + <h5 id="name-dump_last_modified-packet"> +<a href="#section-3.3.1.12" class="section-number selfRef">3.3.1.12. </a><a href="#name-dump_last_modified-packet" class="section-name selfRef">DUMP_LAST_MODIFIED Packet</a> </h5> <p id="section-3.3.1.12-1">DUMP_LAST_MODIFIED packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.12-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.12-2"> @@ -2618,8 +2634,8 @@ li > p:last-of-type { </div> <div id="total_frames"> <section id="section-3.3.1.13"> - <h5 id="name-total_frames-packet-2"> -<a href="#section-3.3.1.13" class="section-number selfRef">3.3.1.13. </a><a href="#name-total_frames-packet-2" class="section-name selfRef">TOTAL_FRAMES Packet</a> + <h5 id="name-total_frames-packet"> +<a href="#section-3.3.1.13" class="section-number selfRef">3.3.1.13. </a><a href="#name-total_frames-packet" class="section-name selfRef">TOTAL_FRAMES Packet</a> </h5> <p id="section-3.3.1.13-1">TOTAL_FRAMES packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.13-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.13-2"> @@ -2642,8 +2658,8 @@ li > p:last-of-type { </div> <div id="rerecords"> <section id="section-3.3.1.14"> - <h5 id="name-rerecords-packet-2"> -<a href="#section-3.3.1.14" class="section-number selfRef">3.3.1.14. </a><a href="#name-rerecords-packet-2" class="section-name selfRef">RERECORDS Packet</a> + <h5 id="name-rerecords-packet"> +<a href="#section-3.3.1.14" class="section-number selfRef">3.3.1.14. </a><a href="#name-rerecords-packet" class="section-name selfRef">RERECORDS Packet</a> </h5> <p id="section-3.3.1.14-1">RERECORDS packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.14-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.14-2"> @@ -2666,8 +2682,8 @@ li > p:last-of-type { </div> <div id="source_link"> <section id="section-3.3.1.15"> - <h5 id="name-source_link-packet-2"> -<a href="#section-3.3.1.15" class="section-number selfRef">3.3.1.15. </a><a href="#name-source_link-packet-2" class="section-name selfRef">SOURCE_LINK Packet</a> + <h5 id="name-source_link-packet"> +<a href="#section-3.3.1.15" class="section-number selfRef">3.3.1.15. </a><a href="#name-source_link-packet" class="section-name selfRef">SOURCE_LINK Packet</a> </h5> <p id="section-3.3.1.15-1">SOURCE_LINK packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.15-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.15-2"> @@ -2694,8 +2710,8 @@ li > p:last-of-type { </div> <div id="blank_frames"> <section id="section-3.3.1.16"> - <h5 id="name-blank_frames-packet-2"> -<a href="#section-3.3.1.16" class="section-number selfRef">3.3.1.16. </a><a href="#name-blank_frames-packet-2" class="section-name selfRef">BLANK_FRAMES Packet</a> + <h5 id="name-blank_frames-packet"> +<a href="#section-3.3.1.16" class="section-number selfRef">3.3.1.16. </a><a href="#name-blank_frames-packet" class="section-name selfRef">BLANK_FRAMES Packet</a> </h5> <p id="section-3.3.1.16-1">BLANK_FRAMES packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.16-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.16-2"> @@ -2718,8 +2734,8 @@ li > p:last-of-type { </div> <div id="verified"> <section id="section-3.3.1.17"> - <h5 id="name-verified-packet-2"> -<a href="#section-3.3.1.17" class="section-number selfRef">3.3.1.17. </a><a href="#name-verified-packet-2" class="section-name selfRef">VERIFIED Packet</a> + <h5 id="name-verified-packet"> +<a href="#section-3.3.1.17" class="section-number selfRef">3.3.1.17. </a><a href="#name-verified-packet" class="section-name selfRef">VERIFIED Packet</a> </h5> <p id="section-3.3.1.17-1">VERIFIED packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.17-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.17-2"> @@ -2742,8 +2758,8 @@ li > p:last-of-type { </div> <div id="memory_init"> <section id="section-3.3.1.18"> - <h5 id="name-memory_init-packet-2"> -<a href="#section-3.3.1.18" class="section-number selfRef">3.3.1.18. </a><a href="#name-memory_init-packet-2" class="section-name selfRef">MEMORY_INIT Packet</a> + <h5 id="name-memory_init-packet"> +<a href="#section-3.3.1.18" class="section-number selfRef">3.3.1.18. </a><a href="#name-memory_init-packet" class="section-name selfRef">MEMORY_INIT Packet</a> </h5> <p id="section-3.3.1.18-1">MEMORY_INIT packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.18-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.18-2"> @@ -2752,7 +2768,7 @@ li > p:last-of-type { +---------------+------+------+--------------+ | Data Type (A) | Device (A) | Required (B) | ... +---------------+------+------+--------------+ - 4 5... 6... + 4 5... 5+NLEN... +----------+==========+==========+ | NLEN (N) | Name (S) | Data (A) | +----------+==========+==========+ @@ -2784,7 +2800,7 @@ li > p:last-of-type { NLEN (Unsigned Integer) [1 octet] Name (String) [NLEN octets] Data (Binary Data) [PLEN - NLEN - - 4 octets] + 5 octets] </pre><a href="#section-3.3.1.18-2" class="pilcrow">¶</a> </div> <span class="break"></span><dl class="dlNewline" id="section-3.3.1.18-3"> @@ -2821,8 +2837,8 @@ li > p:last-of-type { </div> <div id="game_identifier"> <section id="section-3.3.1.19"> - <h5 id="name-game_identifier-packet-2"> -<a href="#section-3.3.1.19" class="section-number selfRef">3.3.1.19. </a><a href="#name-game_identifier-packet-2" class="section-name selfRef">GAME_IDENTIFIER Packet</a> + <h5 id="name-game_identifier-packet"> +<a href="#section-3.3.1.19" class="section-number selfRef">3.3.1.19. </a><a href="#name-game_identifier-packet" class="section-name selfRef">GAME_IDENTIFIER Packet</a> </h5> <p id="section-3.3.1.19-1">GAME_IDENTIFIER packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.19-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.19-2"> @@ -2882,8 +2898,8 @@ li > p:last-of-type { </div> <div id="movie_license"> <section id="section-3.3.1.20"> - <h5 id="name-movie_license-packet-2"> -<a href="#section-3.3.1.20" class="section-number selfRef">3.3.1.20. </a><a href="#name-movie_license-packet-2" class="section-name selfRef">MOVIE_LICENSE Packet</a> + <h5 id="name-movie_license-packet"> +<a href="#section-3.3.1.20" class="section-number selfRef">3.3.1.20. </a><a href="#name-movie_license-packet" class="section-name selfRef">MOVIE_LICENSE Packet</a> </h5> <p id="section-3.3.1.20-1">MOVIE_LICENSE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.20-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.20-2"> @@ -2910,8 +2926,8 @@ li > p:last-of-type { </div> <div id="movie_file"> <section id="section-3.3.1.21"> - <h5 id="name-movie_file-packet-2"> -<a href="#section-3.3.1.21" class="section-number selfRef">3.3.1.21. </a><a href="#name-movie_file-packet-2" class="section-name selfRef">MOVIE_FILE Packet</a> + <h5 id="name-movie_file-packet"> +<a href="#section-3.3.1.21" class="section-number selfRef">3.3.1.21. </a><a href="#name-movie_file-packet" class="section-name selfRef">MOVIE_FILE Packet</a> </h5> <p id="section-3.3.1.21-1">MOVIE_FILE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.21-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.21-2"> @@ -2922,7 +2938,7 @@ li > p:last-of-type { +----------+==========+=============+ NLEN (Unsigned Integer) [1 octet] - Name (String) [NLEN + 1 octets] + Name (String) [NLEN octets] Data (Binary Data) [PLEN - NLEN - 1 octets] </pre><a href="#section-3.3.1.21-2" class="pilcrow">¶</a> @@ -2949,8 +2965,8 @@ li > p:last-of-type { </div> <div id="port_controller"> <section id="section-3.3.1.22"> - <h5 id="name-port_controller-packet-2"> -<a href="#section-3.3.1.22" class="section-number selfRef">3.3.1.22. </a><a href="#name-port_controller-packet-2" class="section-name selfRef">PORT_CONTROLLER Packet</a> + <h5 id="name-port_controller-packet"> +<a href="#section-3.3.1.22" class="section-number selfRef">3.3.1.22. </a><a href="#name-port_controller-packet" class="section-name selfRef">PORT_CONTROLLER Packet</a> </h5> <p id="section-3.3.1.22-1">PORT_CONTROLLER packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.1.22-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.1.22-2"> @@ -3006,13 +3022,13 @@ li > p:last-of-type { </div> </section> <section id="section-3.3.2"> - <h4 id="name-nes-specific-key-payload-for"> -<a href="#section-3.3.2" class="section-number selfRef">3.3.2. </a><a href="#name-nes-specific-key-payload-for" class="section-name selfRef">NES Specific Key Payload Formats</a> + <h4 id="name-nes-specific-key-payload-fo"> +<a href="#section-3.3.2" class="section-number selfRef">3.3.2. </a><a href="#name-nes-specific-key-payload-fo" class="section-name selfRef">NES Specific Key Payload Formats</a> </h4> <div id="nes_latch_filter"> <section id="section-3.3.2.1"> - <h5 id="name-nes_latch_filter-packet-2"> -<a href="#section-3.3.2.1" class="section-number selfRef">3.3.2.1. </a><a href="#name-nes_latch_filter-packet-2" class="section-name selfRef">NES_LATCH_FILTER Packet</a> + <h5 id="name-nes_latch_filter-packet"> +<a href="#section-3.3.2.1" class="section-number selfRef">3.3.2.1. </a><a href="#name-nes_latch_filter-packet" class="section-name selfRef">NES_LATCH_FILTER Packet</a> </h5> <p id="section-3.3.2.1-1">NES_LATCH_FILTER packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.2.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.2.1-2"> @@ -3035,8 +3051,8 @@ li > p:last-of-type { </div> <div id="nes_clock_filter"> <section id="section-3.3.2.2"> - <h5 id="name-nes_clock_filter-packet-2"> -<a href="#section-3.3.2.2" class="section-number selfRef">3.3.2.2. </a><a href="#name-nes_clock_filter-packet-2" class="section-name selfRef">NES_CLOCK_FILTER Packet</a> + <h5 id="name-nes_clock_filter-packet"> +<a href="#section-3.3.2.2" class="section-number selfRef">3.3.2.2. </a><a href="#name-nes_clock_filter-packet" class="section-name selfRef">NES_CLOCK_FILTER Packet</a> </h5> <p id="section-3.3.2.2-1">NES_CLOCK_FILTER packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.2.2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.2.2-2"> @@ -3059,8 +3075,8 @@ li > p:last-of-type { </div> <div id="nes_overread"> <section id="section-3.3.2.3"> - <h5 id="name-nes_overread-packet-2"> -<a href="#section-3.3.2.3" class="section-number selfRef">3.3.2.3. </a><a href="#name-nes_overread-packet-2" class="section-name selfRef">NES_OVERREAD Packet</a> + <h5 id="name-nes_overread-packet"> +<a href="#section-3.3.2.3" class="section-number selfRef">3.3.2.3. </a><a href="#name-nes_overread-packet" class="section-name selfRef">NES_OVERREAD Packet</a> </h5> <p id="section-3.3.2.3-1">NES_OVERREAD packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.2.3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.2.3-2"> @@ -3083,8 +3099,8 @@ li > p:last-of-type { </div> <div id="nes_game_genie_code"> <section id="section-3.3.2.4"> - <h5 id="name-nes_game_genie_code-packet-2"> -<a href="#section-3.3.2.4" class="section-number selfRef">3.3.2.4. </a><a href="#name-nes_game_genie_code-packet-2" class="section-name selfRef">NES_GAME_GENIE_CODE Packet</a> + <h5 id="name-nes_game_genie_code-packet"> +<a href="#section-3.3.2.4" class="section-number selfRef">3.3.2.4. </a><a href="#name-nes_game_genie_code-packet" class="section-name selfRef">NES_GAME_GENIE_CODE Packet</a> </h5> <p id="section-3.3.2.4-1">NES_GAME_GENIE_CODE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.2.4-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.2.4-2"> @@ -3111,13 +3127,13 @@ li > p:last-of-type { </div> </section> <section id="section-3.3.3"> - <h4 id="name-snes-specific-key-payload-fo"> -<a href="#section-3.3.3" class="section-number selfRef">3.3.3. </a><a href="#name-snes-specific-key-payload-fo" class="section-name selfRef">SNES Specific Key Payload Formats</a> + <h4 id="name-snes-specific-key-payload-f"> +<a href="#section-3.3.3" class="section-number selfRef">3.3.3. </a><a href="#name-snes-specific-key-payload-f" class="section-name selfRef">SNES Specific Key Payload Formats</a> </h4> <div id="snes_clock_filter"> <section id="section-3.3.3.1"> - <h5 id="name-snes_clock_filter-packet-2"> -<a href="#section-3.3.3.1" class="section-number selfRef">3.3.3.1. </a><a href="#name-snes_clock_filter-packet-2" class="section-name selfRef">SNES_CLOCK_FILTER Packet</a> + <h5 id="name-snes_clock_filter-packet"> +<a href="#section-3.3.3.1" class="section-number selfRef">3.3.3.1. </a><a href="#name-snes_clock_filter-packet" class="section-name selfRef">SNES_CLOCK_FILTER Packet</a> </h5> <p id="section-3.3.3.1-1">SNES_CLOCK_FILTER packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.3.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.3.1-2"> @@ -3140,8 +3156,8 @@ li > p:last-of-type { </div> <div id="snes_overread"> <section id="section-3.3.3.2"> - <h5 id="name-snes_overread-packet-2"> -<a href="#section-3.3.3.2" class="section-number selfRef">3.3.3.2. </a><a href="#name-snes_overread-packet-2" class="section-name selfRef">SNES_OVERREAD Packet</a> + <h5 id="name-snes_overread-packet"> +<a href="#section-3.3.3.2" class="section-number selfRef">3.3.3.2. </a><a href="#name-snes_overread-packet" class="section-name selfRef">SNES_OVERREAD Packet</a> </h5> <p id="section-3.3.3.2-1">SNES_OVERREAD packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.3.2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.3.2-2"> @@ -3164,8 +3180,8 @@ li > p:last-of-type { </div> <div id="snes_game_genie_code"> <section id="section-3.3.3.3"> - <h5 id="name-snes_game_genie_code-packet-2"> -<a href="#section-3.3.3.3" class="section-number selfRef">3.3.3.3. </a><a href="#name-snes_game_genie_code-packet-2" class="section-name selfRef">SNES_GAME_GENIE_CODE Packet</a> + <h5 id="name-snes_game_genie_code-packet"> +<a href="#section-3.3.3.3" class="section-number selfRef">3.3.3.3. </a><a href="#name-snes_game_genie_code-packet" class="section-name selfRef">SNES_GAME_GENIE_CODE Packet</a> </h5> <p id="section-3.3.3.3-1">SNES_GAME_GENIE_CODE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.3.3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.3.3-2"> @@ -3192,21 +3208,42 @@ li > p:last-of-type { </div> <div id="snes_latch_train"> <section id="section-3.3.3.4"> - <h5 id="name-snes_latch_train-packet-rese"> -<a href="#section-3.3.3.4" class="section-number selfRef">3.3.3.4. </a><a href="#name-snes_latch_train-packet-rese" class="section-name selfRef">SNES_LATCH_TRAIN Packet (RESERVED)</a> + <h5 id="name-snes_latch_train-packet"> +<a href="#section-3.3.3.4" class="section-number selfRef">3.3.3.4. </a><a href="#name-snes_latch_train-packet" class="section-name selfRef">SNES_LATCH_TRAIN Packet</a> </h5> -<p id="section-3.3.3.4-1">This packet type is not yet designed and is intended to be described in the future.<a href="#section-3.3.3.4-1" class="pilcrow">¶</a></p> +<p id="section-3.3.3.4-1">SNES_LATCH_TRAIN packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.3.4-1" class="pilcrow">¶</a></p> +<div class="alignLeft art-text artwork" id="section-3.3.3.4-2"> +<pre> + 0... + +==========================+ + | Latch Train Points ([]N) | + +==========================+ + + Latch Train Points (List of Unsigned Integers) [PLEN octets] +</pre><a href="#section-3.3.3.4-2" class="pilcrow">¶</a> +</div> +<span class="break"></span><dl class="dlNewline" id="section-3.3.3.4-3"> + <dt id="section-3.3.3.4-3.1"><strong>Latch Train Points</strong></dt> + <dd style="margin-left: 1.5em" id="section-3.3.3.4-3.2">List of 64-bit unsigned integers of the Latch Train points. <span class="bcp14">MUST</span> be a multiple of 8 octets in size<a href="#section-3.3.3.4-3.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-3.3.3.4-3.3"><strong>PLEN</strong></dt> + <dd style="margin-left: 1.5em" id="section-3.3.3.4-3.4">Length of the packet payload.<a href="#section-3.3.3.4-3.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +</dl> +<p id="section-3.3.3.4-4">A single SNES_LATCH_TRAIN packet <span class="bcp14">MAY</span> contain up to every Latch Train point of a SNES TAS movie console replay and <span class="bcp14">MAY</span> contain fewer than every Latch Train point of a SNES TAS movie console replay. There <span class="bcp14">MAY</span> be more than 1 SNES_LATCH_TRAIN packet.<a href="#section-3.3.3.4-4" class="pilcrow">¶</a></p> </section> </div> </section> <section id="section-3.3.4"> - <h4 id="name-genesis-specific-key-payload"> -<a href="#section-3.3.4" class="section-number selfRef">3.3.4. </a><a href="#name-genesis-specific-key-payload" class="section-name selfRef">Genesis Specific Key Payload Formats</a> + <h4 id="name-genesis-specific-key-payloa"> +<a href="#section-3.3.4" class="section-number selfRef">3.3.4. </a><a href="#name-genesis-specific-key-payloa" class="section-name selfRef">Genesis Specific Key Payload Formats</a> </h4> <div id="genesis_game_genie_code"> <section id="section-3.3.4.1"> - <h5 id="name-genesis_game_genie_code-pack"> -<a href="#section-3.3.4.1" class="section-number selfRef">3.3.4.1. </a><a href="#name-genesis_game_genie_code-pack" class="section-name selfRef">GENESIS_GAME_GENIE_CODE Packet</a> + <h5 id="name-genesis_game_genie_code-pac"> +<a href="#section-3.3.4.1" class="section-number selfRef">3.3.4.1. </a><a href="#name-genesis_game_genie_code-pac" class="section-name selfRef">GENESIS_GAME_GENIE_CODE Packet</a> </h5> <p id="section-3.3.4.1-1">GENESIS_GAME_GENIE_CODE packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.4.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.4.1-2"> @@ -3233,13 +3270,13 @@ li > p:last-of-type { </div> </section> <section id="section-3.3.5"> - <h4 id="name-input-frame-timing-key-paylo"> -<a href="#section-3.3.5" class="section-number selfRef">3.3.5. </a><a href="#name-input-frame-timing-key-paylo" class="section-name selfRef">Input Frame/Timing Key Payload Formats</a> + <h4 id="name-input-frame-timing-key-payl"> +<a href="#section-3.3.5" class="section-number selfRef">3.3.5. </a><a href="#name-input-frame-timing-key-payl" class="section-name selfRef">Input Frame/Timing Key Payload Formats</a> </h4> <div id="input_chunk"> <section id="section-3.3.5.1"> - <h5 id="name-input_chunk-packet-2"> -<a href="#section-3.3.5.1" class="section-number selfRef">3.3.5.1. </a><a href="#name-input_chunk-packet-2" class="section-name selfRef">INPUT_CHUNK Packet</a> + <h5 id="name-input_chunk-packet"> +<a href="#section-3.3.5.1" class="section-number selfRef">3.3.5.1. </a><a href="#name-input_chunk-packet" class="section-name selfRef">INPUT_CHUNK Packet</a> </h5> <p id="section-3.3.5.1-1">INPUT_CHUNK packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.5.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.5.1-2"> @@ -3272,8 +3309,8 @@ li > p:last-of-type { </div> <div id="input_moment"> <section id="section-3.3.5.2"> - <h5 id="name-input_moment-packet-2"> -<a href="#section-3.3.5.2" class="section-number selfRef">3.3.5.2. </a><a href="#name-input_moment-packet-2" class="section-name selfRef">INPUT_MOMENT Packet</a> + <h5 id="name-input_moment-packet"> +<a href="#section-3.3.5.2" class="section-number selfRef">3.3.5.2. </a><a href="#name-input_moment-packet" class="section-name selfRef">INPUT_MOMENT Packet</a> </h5> <p id="section-3.3.5.2-1">INPUT_MOMENT packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.5.2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.5.2-2"> @@ -3324,8 +3361,8 @@ li > p:last-of-type { </div> <div id="transition"> <section id="section-3.3.5.3"> - <h5 id="name-transition-packet-2"> -<a href="#section-3.3.5.3" class="section-number selfRef">3.3.5.3. </a><a href="#name-transition-packet-2" class="section-name selfRef">TRANSITION Packet</a> + <h5 id="name-transition-packet"> +<a href="#section-3.3.5.3" class="section-number selfRef">3.3.5.3. </a><a href="#name-transition-packet" class="section-name selfRef">TRANSITION Packet</a> </h5> <p id="section-3.3.5.3-1">TRANSITION packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.5.3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.5.3-2"> @@ -3380,8 +3417,8 @@ li > p:last-of-type { </div> <div id="lag_frame_chunk"> <section id="section-3.3.5.4"> - <h5 id="name-lag_frame_chunk-packet-2"> -<a href="#section-3.3.5.4" class="section-number selfRef">3.3.5.4. </a><a href="#name-lag_frame_chunk-packet-2" class="section-name selfRef">LAG_FRAME_CHUNK Packet</a> + <h5 id="name-lag_frame_chunk-packet"> +<a href="#section-3.3.5.4" class="section-number selfRef">3.3.5.4. </a><a href="#name-lag_frame_chunk-packet" class="section-name selfRef">LAG_FRAME_CHUNK Packet</a> </h5> <p id="section-3.3.5.4-1">LAG_FRAME_CHUNK packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.5.4-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.5.4-2"> @@ -3409,8 +3446,8 @@ li > p:last-of-type { </div> <div id="movie_transition"> <section id="section-3.3.5.5"> - <h5 id="name-movie_transition-2"> -<a href="#section-3.3.5.5" class="section-number selfRef">3.3.5.5. </a><a href="#name-movie_transition-2" class="section-name selfRef">MOVIE_TRANSITION</a> + <h5 id="name-movie_transition"> +<a href="#section-3.3.5.5" class="section-number selfRef">3.3.5.5. </a><a href="#name-movie_transition" class="section-name selfRef">MOVIE_TRANSITION</a> </h5> <p id="section-3.3.5.5-1">MOVIE_TRANSITION packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.5.5-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.5.5-2"> @@ -3451,13 +3488,13 @@ li > p:last-of-type { </div> </section> <section id="section-3.3.6"> - <h4 id="name-extraneous-key-payload-forma"> -<a href="#section-3.3.6" class="section-number selfRef">3.3.6. </a><a href="#name-extraneous-key-payload-forma" class="section-name selfRef">Extraneous Key Payload Formats</a> + <h4 id="name-extraneous-key-payload-form"> +<a href="#section-3.3.6" class="section-number selfRef">3.3.6. </a><a href="#name-extraneous-key-payload-form" class="section-name selfRef">Extraneous Key Payload Formats</a> </h4> <div id="comment"> <section id="section-3.3.6.1"> - <h5 id="name-comment-packet-2"> -<a href="#section-3.3.6.1" class="section-number selfRef">3.3.6.1. </a><a href="#name-comment-packet-2" class="section-name selfRef">COMMENT Packet</a> + <h5 id="name-comment-packet"> +<a href="#section-3.3.6.1" class="section-number selfRef">3.3.6.1. </a><a href="#name-comment-packet" class="section-name selfRef">COMMENT Packet</a> </h5> <p id="section-3.3.6.1-1">COMMENT packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.6.1-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.6.1-2"> @@ -3484,8 +3521,8 @@ li > p:last-of-type { </div> <div id="experimental"> <section id="section-3.3.6.2"> - <h5 id="name-experimental-packet-2"> -<a href="#section-3.3.6.2" class="section-number selfRef">3.3.6.2. </a><a href="#name-experimental-packet-2" class="section-name selfRef">EXPERIMENTAL Packet</a> + <h5 id="name-experimental-packet"> +<a href="#section-3.3.6.2" class="section-number selfRef">3.3.6.2. </a><a href="#name-experimental-packet" class="section-name selfRef">EXPERIMENTAL Packet</a> </h5> <p id="section-3.3.6.2-1">EXPERIMENTAL packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.6.2-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.6.2-2"> @@ -3500,7 +3537,7 @@ li > p:last-of-type { </div> <span class="break"></span><dl class="dlNewline" id="section-3.3.6.2-3"> <dt id="section-3.3.6.2-3.1"><strong>Experimental</strong></dt> - <dd style="margin-left: 1.5em" id="section-3.3.6.2-3.2">Boolean data that is <strong>TRUE</strong> if the TASD file is using experimental features (Currently SHOULD be TRUE).<a href="#section-3.3.6.2-3.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-3.3.6.2-3.2">Boolean data that is <strong>TRUE</strong> if the TASD file is using draft/experimental features (Currently SHOULD be <strong>TRUE</strong>) and <strong>FALSE</strong> if the TASD file is using only stable features.<a href="#section-3.3.6.2-3.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-3.3.6.2-3.3"><strong>PLEN</strong></dt> @@ -3512,8 +3549,8 @@ li > p:last-of-type { </div> <div id="unspecified"> <section id="section-3.3.6.3"> - <h5 id="name-unspecified-packet-2"> -<a href="#section-3.3.6.3" class="section-number selfRef">3.3.6.3. </a><a href="#name-unspecified-packet-2" class="section-name selfRef">UNSPECIFIED Packet</a> + <h5 id="name-unspecified-packet"> +<a href="#section-3.3.6.3" class="section-number selfRef">3.3.6.3. </a><a href="#name-unspecified-packet" class="section-name selfRef">UNSPECIFIED Packet</a> </h5> <p id="section-3.3.6.3-1">UNSPECIFIED packets <span class="bcp14">MUST</span> be in the following format:<a href="#section-3.3.6.3-1" class="pilcrow">¶</a></p> <div class="alignLeft art-text artwork" id="section-3.3.6.3-2"> @@ -3543,19 +3580,19 @@ li > p:last-of-type { </section> <div id="controller_inputs"> <section id="section-4"> - <h2 id="name-controller-input-formats-2"> -<a href="#section-4" class="section-number selfRef">4. </a><a href="#name-controller-input-formats-2" class="section-name selfRef">Controller Input Formats</a> + <h2 id="name-controller-input-formats"> +<a href="#section-4" class="section-number selfRef">4. </a><a href="#name-controller-input-formats" class="section-name selfRef">Controller Input Formats</a> </h2> <p id="section-4-1">A forward slash (<strong>/</strong>) is used to signify <strong>active low</strong>. As an example, if a bit is labeled as <strong>/A</strong>, the bit <span class="bcp14">MUST</span> be 0 if the A button is pressed and <span class="bcp14">MUST</span> be 1 if the A button is not pressed.<a href="#section-4-1" class="pilcrow">¶</a></p> <p id="section-4-2">Multi-octet controller inputs are in little-endian order<a href="#section-4-2" class="pilcrow">¶</a></p> <p id="section-4-3">Bit order for octets in controller inputs are high-order (MSB) (Most significant bit to least significant bit), so bit 7 <span class="bcp14">MUST</span> be the left-most bit of the octet and bit 0 <span class="bcp14">MUST</span> be the right-most bit of the octet.<a href="#section-4-3" class="pilcrow">¶</a></p> <section id="section-4.1"> - <h3 id="name-nes-famicom-controller-types"> -<a href="#section-4.1" class="section-number selfRef">4.1. </a><a href="#name-nes-famicom-controller-types" class="section-name selfRef">NES/Famicom Controller Types</a> + <h3 id="name-nes-famicom-controller-type"> +<a href="#section-4.1" class="section-number selfRef">4.1. </a><a href="#name-nes-famicom-controller-type" class="section-name selfRef">NES/Famicom Controller Types</a> </h3> <section id="section-4.1.1"> - <h4 id="name-nes-standard-controller-2"> -<a href="#section-4.1.1" class="section-number selfRef">4.1.1. </a><a href="#name-nes-standard-controller-2" class="section-name selfRef">NES Standard Controller</a> + <h4 id="name-nes-standard-controller"> +<a href="#section-4.1.1" class="section-number selfRef">4.1.1. </a><a href="#name-nes-standard-controller" class="section-name selfRef">NES Standard Controller</a> </h4> <p id="section-4.1.1-1">Single Input Length: 1 Octet<a href="#section-4.1.1-1" class="pilcrow">¶</a></p> <p id="section-4.1.1-2"><strong>Octet 0</strong><a href="#section-4.1.1-2" class="pilcrow">¶</a></p> @@ -3595,8 +3632,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.1.2"> - <h4 id="name-nes-four-score-2"> -<a href="#section-4.1.2" class="section-number selfRef">4.1.2. </a><a href="#name-nes-four-score-2" class="section-name selfRef">NES Four Score</a> + <h4 id="name-nes-four-score"> +<a href="#section-4.1.2" class="section-number selfRef">4.1.2. </a><a href="#name-nes-four-score" class="section-name selfRef">NES Four Score</a> </h4> <p id="section-4.1.2-1">Single Input Length: 3 Octets<a href="#section-4.1.2-1" class="pilcrow">¶</a></p> <p id="section-4.1.2-2"><strong>Octet 0</strong><a href="#section-4.1.2-2" class="pilcrow">¶</a></p> @@ -3708,12 +3745,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.2"> - <h3 id="name-snes-controller-types-2"> -<a href="#section-4.2" class="section-number selfRef">4.2. </a><a href="#name-snes-controller-types-2" class="section-name selfRef">SNES Controller Types</a> + <h3 id="name-snes-controller-types"> +<a href="#section-4.2" class="section-number selfRef">4.2. </a><a href="#name-snes-controller-types" class="section-name selfRef">SNES Controller Types</a> </h3> <section id="section-4.2.1"> - <h4 id="name-snes-standard-controller-2"> -<a href="#section-4.2.1" class="section-number selfRef">4.2.1. </a><a href="#name-snes-standard-controller-2" class="section-name selfRef">SNES Standard Controller</a> + <h4 id="name-snes-standard-controller"> +<a href="#section-4.2.1" class="section-number selfRef">4.2.1. </a><a href="#name-snes-standard-controller" class="section-name selfRef">SNES Standard Controller</a> </h4> <p id="section-4.2.1-1">Single Input Length: 2 Octets<a href="#section-4.2.1-1" class="pilcrow">¶</a></p> <p id="section-4.2.1-2"><strong>Octet 0</strong><a href="#section-4.2.1-2" class="pilcrow">¶</a></p> @@ -3788,8 +3825,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.2.2"> - <h4 id="name-snes-mouse-2"> -<a href="#section-4.2.2" class="section-number selfRef">4.2.2. </a><a href="#name-snes-mouse-2" class="section-name selfRef">SNES Mouse</a> + <h4 id="name-snes-mouse"> +<a href="#section-4.2.2" class="section-number selfRef">4.2.2. </a><a href="#name-snes-mouse" class="section-name selfRef">SNES Mouse</a> </h4> <p id="section-4.2.2-1">Single Input Length: 4 Octets<a href="#section-4.2.2-1" class="pilcrow">¶</a></p> <p id="section-4.2.2-2"><strong>Octet 0</strong><a href="#section-4.2.2-2" class="pilcrow">¶</a></p> @@ -3887,12 +3924,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.3"> - <h3 id="name-n64-controller-types-2"> -<a href="#section-4.3" class="section-number selfRef">4.3. </a><a href="#name-n64-controller-types-2" class="section-name selfRef">N64 Controller Types</a> + <h3 id="name-n64-controller-types"> +<a href="#section-4.3" class="section-number selfRef">4.3. </a><a href="#name-n64-controller-types" class="section-name selfRef">N64 Controller Types</a> </h3> <section id="section-4.3.1"> - <h4 id="name-n64-standard-controller-2"> -<a href="#section-4.3.1" class="section-number selfRef">4.3.1. </a><a href="#name-n64-standard-controller-2" class="section-name selfRef">N64 Standard Controller</a> + <h4 id="name-n64-standard-controller"> +<a href="#section-4.3.1" class="section-number selfRef">4.3.1. </a><a href="#name-n64-standard-controller" class="section-name selfRef">N64 Standard Controller</a> </h4> <p id="section-4.3.1-1">Single Input Length: 4 Octets<a href="#section-4.3.1-1" class="pilcrow">¶</a></p> <p id="section-4.3.1-2"><strong>Octet 0</strong><a href="#section-4.3.1-2" class="pilcrow">¶</a></p> @@ -3981,8 +4018,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.3.2"> - <h4 id="name-n64-standard-controller-with-r"> -<a href="#section-4.3.2" class="section-number selfRef">4.3.2. </a><a href="#name-n64-standard-controller-with-r" class="section-name selfRef">N64 Standard Controller with Rumble</a> + <h4 id="name-n64-standard-controller-wit"> +<a href="#section-4.3.2" class="section-number selfRef">4.3.2. </a><a href="#name-n64-standard-controller-wit" class="section-name selfRef">N64 Standard Controller with Rumble</a> </h4> <p id="section-4.3.2-1">Single Input Length: 4 Octets<a href="#section-4.3.2-1" class="pilcrow">¶</a></p> <p id="section-4.3.2-2"><strong>Octet 0</strong><a href="#section-4.3.2-2" class="pilcrow">¶</a></p> @@ -4071,8 +4108,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.3.3"> - <h4 id="name-n64-standard-controller-with-c"> -<a href="#section-4.3.3" class="section-number selfRef">4.3.3. </a><a href="#name-n64-standard-controller-with-c" class="section-name selfRef">N64 Standard Controller with Controller Pak</a> + <h4 id="name-n64-standard-controller-with"> +<a href="#section-4.3.3" class="section-number selfRef">4.3.3. </a><a href="#name-n64-standard-controller-with" class="section-name selfRef">N64 Standard Controller with Controller Pak</a> </h4> <p id="section-4.3.3-1">Single Input Length: 4 Octets<a href="#section-4.3.3-1" class="pilcrow">¶</a></p> <p id="section-4.3.3-2"><strong>Octet 0</strong><a href="#section-4.3.3-2" class="pilcrow">¶</a></p> @@ -4161,8 +4198,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.3.4"> - <h4 id="name-n64-standard-controller-with-t"> -<a href="#section-4.3.4" class="section-number selfRef">4.3.4. </a><a href="#name-n64-standard-controller-with-t" class="section-name selfRef">N64 Standard Controller with Transfer Pak</a> + <h4 id="name-n64-standard-controller-with-"> +<a href="#section-4.3.4" class="section-number selfRef">4.3.4. </a><a href="#name-n64-standard-controller-with-" class="section-name selfRef">N64 Standard Controller with Transfer Pak</a> </h4> <p id="section-4.3.4-1">Single Input Length: 4 Octets<a href="#section-4.3.4-1" class="pilcrow">¶</a></p> <p id="section-4.3.4-2"><strong>Octet 0</strong><a href="#section-4.3.4-2" class="pilcrow">¶</a></p> @@ -4251,8 +4288,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.3.5"> - <h4 id="name-n64-mouse-2"> -<a href="#section-4.3.5" class="section-number selfRef">4.3.5. </a><a href="#name-n64-mouse-2" class="section-name selfRef">N64 Mouse</a> + <h4 id="name-n64-mouse"> +<a href="#section-4.3.5" class="section-number selfRef">4.3.5. </a><a href="#name-n64-mouse" class="section-name selfRef">N64 Mouse</a> </h4> <p id="section-4.3.5-1">Single Input Length: 4 Octets<a href="#section-4.3.5-1" class="pilcrow">¶</a></p> <p id="section-4.3.5-2"><strong>Octet 0</strong><a href="#section-4.3.5-2" class="pilcrow">¶</a></p> @@ -4341,8 +4378,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.3.6"> - <h4 id="name-n64-densha-de-go-2"> -<a href="#section-4.3.6" class="section-number selfRef">4.3.6. </a><a href="#name-n64-densha-de-go-2" class="section-name selfRef">N64 Densha de Go</a> + <h4 id="name-n64-densha-de-go"> +<a href="#section-4.3.6" class="section-number selfRef">4.3.6. </a><a href="#name-n64-densha-de-go" class="section-name selfRef">N64 Densha de Go</a> </h4> <p id="section-4.3.6-1">Single Input Length: 4 Octets<a href="#section-4.3.6-1" class="pilcrow">¶</a></p> <p id="section-4.3.6-2"><strong>Octet 0</strong><a href="#section-4.3.6-2" class="pilcrow">¶</a></p> @@ -4476,12 +4513,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.4"> - <h3 id="name-gamecube-controller-types-2"> -<a href="#section-4.4" class="section-number selfRef">4.4. </a><a href="#name-gamecube-controller-types-2" class="section-name selfRef">GameCube Controller Types</a> + <h3 id="name-gamecube-controller-types"> +<a href="#section-4.4" class="section-number selfRef">4.4. </a><a href="#name-gamecube-controller-types" class="section-name selfRef">GameCube Controller Types</a> </h3> <section id="section-4.4.1"> - <h4 id="name-gamecube-standard-controller"> -<a href="#section-4.4.1" class="section-number selfRef">4.4.1. </a><a href="#name-gamecube-standard-controller" class="section-name selfRef">GameCube Standard Controller</a> + <h4 id="name-gamecube-standard-controlle"> +<a href="#section-4.4.1" class="section-number selfRef">4.4.1. </a><a href="#name-gamecube-standard-controlle" class="section-name selfRef">GameCube Standard Controller</a> </h4> <p id="section-4.4.1-1">Single Input Length: 8 Octets<a href="#section-4.4.1-1" class="pilcrow">¶</a></p> <p id="section-4.4.1-2"><strong>Octet 0</strong><a href="#section-4.4.1-2" class="pilcrow">¶</a></p> @@ -4599,12 +4636,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.5"> - <h3 id="name-game-boy-controller-types-2"> -<a href="#section-4.5" class="section-number selfRef">4.5. </a><a href="#name-game-boy-controller-types-2" class="section-name selfRef">Game Boy Controller Types</a> + <h3 id="name-game-boy-controller-types"> +<a href="#section-4.5" class="section-number selfRef">4.5. </a><a href="#name-game-boy-controller-types" class="section-name selfRef">Game Boy Controller Types</a> </h3> <section id="section-4.5.1"> - <h4 id="name-gb-standard-controller-2"> -<a href="#section-4.5.1" class="section-number selfRef">4.5.1. </a><a href="#name-gb-standard-controller-2" class="section-name selfRef">GB Standard Controller</a> + <h4 id="name-gb-standard-controller"> +<a href="#section-4.5.1" class="section-number selfRef">4.5.1. </a><a href="#name-gb-standard-controller" class="section-name selfRef">GB Standard Controller</a> </h4> <p id="section-4.5.1-1">Single Input Length: 1 Octet<a href="#section-4.5.1-1" class="pilcrow">¶</a></p> <p id="section-4.5.1-2"><strong>Octet 0</strong><a href="#section-4.5.1-2" class="pilcrow">¶</a></p> @@ -4645,12 +4682,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.6"> - <h3 id="name-game-boy-color-controller-ty"> -<a href="#section-4.6" class="section-number selfRef">4.6. </a><a href="#name-game-boy-color-controller-ty" class="section-name selfRef">Game Boy Color Controller Types</a> + <h3 id="name-game-boy-color-controller-t"> +<a href="#section-4.6" class="section-number selfRef">4.6. </a><a href="#name-game-boy-color-controller-t" class="section-name selfRef">Game Boy Color Controller Types</a> </h3> <section id="section-4.6.1"> - <h4 id="name-gbc-standard-controller-2"> -<a href="#section-4.6.1" class="section-number selfRef">4.6.1. </a><a href="#name-gbc-standard-controller-2" class="section-name selfRef">GBC Standard Controller</a> + <h4 id="name-gbc-standard-controller"> +<a href="#section-4.6.1" class="section-number selfRef">4.6.1. </a><a href="#name-gbc-standard-controller" class="section-name selfRef">GBC Standard Controller</a> </h4> <p id="section-4.6.1-1">Single Input Length: 1 Octet<a href="#section-4.6.1-1" class="pilcrow">¶</a></p> <p id="section-4.6.1-2"><strong>Octet 0</strong><a href="#section-4.6.1-2" class="pilcrow">¶</a></p> @@ -4691,12 +4728,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.7"> - <h3 id="name-game-boy-advance-controller-"> -<a href="#section-4.7" class="section-number selfRef">4.7. </a><a href="#name-game-boy-advance-controller-" class="section-name selfRef">Game Boy Advance Controller Types</a> + <h3 id="name-game-boy-advance-controller"> +<a href="#section-4.7" class="section-number selfRef">4.7. </a><a href="#name-game-boy-advance-controller" class="section-name selfRef">Game Boy Advance Controller Types</a> </h3> <section id="section-4.7.1"> - <h4 id="name-gba-standard-controller-2"> -<a href="#section-4.7.1" class="section-number selfRef">4.7.1. </a><a href="#name-gba-standard-controller-2" class="section-name selfRef">GBA Standard Controller</a> + <h4 id="name-gba-standard-controller"> +<a href="#section-4.7.1" class="section-number selfRef">4.7.1. </a><a href="#name-gba-standard-controller" class="section-name selfRef">GBA Standard Controller</a> </h4> <p id="section-4.7.1-1">Single Input Length: 2 Octets<a href="#section-4.7.1-1" class="pilcrow">¶</a></p> <p id="section-4.7.1-2"><strong>Octet 0</strong><a href="#section-4.7.1-2" class="pilcrow">¶</a></p> @@ -4772,12 +4809,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.8"> - <h3 id="name-genesis-controller-types-2"> -<a href="#section-4.8" class="section-number selfRef">4.8. </a><a href="#name-genesis-controller-types-2" class="section-name selfRef">Genesis Controller Types</a> + <h3 id="name-genesis-controller-types"> +<a href="#section-4.8" class="section-number selfRef">4.8. </a><a href="#name-genesis-controller-types" class="section-name selfRef">Genesis Controller Types</a> </h3> <section id="section-4.8.1"> - <h4 id="name-genesis-mega-drive-3-button-2"> -<a href="#section-4.8.1" class="section-number selfRef">4.8.1. </a><a href="#name-genesis-mega-drive-3-button-2" class="section-name selfRef">Genesis (Mega Drive) 3-Button</a> + <h4 id="name-genesis-mega-drive-3-button"> +<a href="#section-4.8.1" class="section-number selfRef">4.8.1. </a><a href="#name-genesis-mega-drive-3-button" class="section-name selfRef">Genesis (Mega Drive) 3-Button</a> </h4> <p id="section-4.8.1-1">Single Input Length: 1 Octet<a href="#section-4.8.1-1" class="pilcrow">¶</a></p> <p id="section-4.8.1-2"><strong>Octet 0</strong><a href="#section-4.8.1-2" class="pilcrow">¶</a></p> @@ -4817,8 +4854,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.8.2"> - <h4 id="name-genesis-mega-drive-6-button-2"> -<a href="#section-4.8.2" class="section-number selfRef">4.8.2. </a><a href="#name-genesis-mega-drive-6-button-2" class="section-name selfRef">Genesis (Mega Drive) 6-Button</a> + <h4 id="name-genesis-mega-drive-6-button"> +<a href="#section-4.8.2" class="section-number selfRef">4.8.2. </a><a href="#name-genesis-mega-drive-6-button" class="section-name selfRef">Genesis (Mega Drive) 6-Button</a> </h4> <p id="section-4.8.2-1">Single Input Length: 2 Octets<a href="#section-4.8.2-1" class="pilcrow">¶</a></p> <p id="section-4.8.2-2"><strong>Octet 0</strong><a href="#section-4.8.2-2" class="pilcrow">¶</a></p> @@ -4894,12 +4931,12 @@ li > p:last-of-type { </section> </section> <section id="section-4.9"> - <h3 id="name-atari-2600-controller-types-2"> -<a href="#section-4.9" class="section-number selfRef">4.9. </a><a href="#name-atari-2600-controller-types-2" class="section-name selfRef">Atari 2600 Controller Types</a> + <h3 id="name-atari-2600-controller-types"> +<a href="#section-4.9" class="section-number selfRef">4.9. </a><a href="#name-atari-2600-controller-types" class="section-name selfRef">Atari 2600 Controller Types</a> </h3> <section id="section-4.9.1"> - <h4 id="name-a2600-joystick-2"> -<a href="#section-4.9.1" class="section-number selfRef">4.9.1. </a><a href="#name-a2600-joystick-2" class="section-name selfRef">A2600 Joystick</a> + <h4 id="name-a2600-joystick"> +<a href="#section-4.9.1" class="section-number selfRef">4.9.1. </a><a href="#name-a2600-joystick" class="section-name selfRef">A2600 Joystick</a> </h4> <p id="section-4.9.1-1">Single Input Length: 1 Octet<a href="#section-4.9.1-1" class="pilcrow">¶</a></p> <p id="section-4.9.1-2"><strong>Octet 0</strong><a href="#section-4.9.1-2" class="pilcrow">¶</a></p> @@ -4939,8 +4976,8 @@ li > p:last-of-type { </dl> </section> <section id="section-4.9.2"> - <h4 id="name-a2600-keyboard-controller-2"> -<a href="#section-4.9.2" class="section-number selfRef">4.9.2. </a><a href="#name-a2600-keyboard-controller-2" class="section-name selfRef">A2600 Keyboard Controller</a> + <h4 id="name-a2600-keyboard-controller"> +<a href="#section-4.9.2" class="section-number selfRef">4.9.2. </a><a href="#name-a2600-keyboard-controller" class="section-name selfRef">A2600 Keyboard Controller</a> </h4> <p id="section-4.9.2-1">Single Input Length: 1 Octet<a href="#section-4.9.2-1" class="pilcrow">¶</a></p> <p id="section-4.9.2-2"><strong>Octet 0</strong><a href="#section-4.9.2-2" class="pilcrow">¶</a></p> @@ -4983,12 +5020,12 @@ li > p:last-of-type { </section> </div> <section id="section-5"> - <h2 id="name-references-2"> -<a href="#section-5" class="section-number selfRef">5. </a><a href="#name-references-2" class="section-name selfRef">References</a> + <h2 id="name-references"> +<a href="#section-5" class="section-number selfRef">5. </a><a href="#name-references" class="section-name selfRef">References</a> </h2> <section id="section-5.1"> - <h3 id="name-normative-references-2"> -<a href="#section-5.1" class="section-number selfRef">5.1. </a><a href="#name-normative-references-2" class="section-name selfRef">Normative References</a> + <h3 id="name-normative-references"> +<a href="#section-5.1" class="section-number selfRef">5.1. </a><a href="#name-normative-references" class="section-name selfRef">Normative References</a> </h3> <dl class="references"> <dt id="RFC2119">[RFC2119]</dt> @@ -5003,8 +5040,8 @@ li > p:last-of-type { </section> </section> <section id="appendix-A"> - <h2 id="name-copyright-notice-2"> -<a href="#name-copyright-notice-2" class="section-name selfRef">Copyright Notice</a> + <h2 id="name-copyright-notice"> +<a href="#name-copyright-notice" class="section-name selfRef">Copyright Notice</a> </h2> <p id="appendix-A-1">Copyright (c) 2021-2022, Vi Grey and Bigbass<a href="#appendix-A-1" class="pilcrow">¶</a></p> <p id="appendix-A-2">All rights reserved.<a href="#appendix-A-2" class="pilcrow">¶</a></p> @@ -5019,8 +5056,8 @@ li > p:last-of-type { </section> <div id="authors-addresses"> <section id="appendix-B"> - <h2 id="name-authors-addresses-2"> -<a href="#name-authors-addresses-2" class="section-name selfRef">Authors' Addresses</a> + <h2 id="name-authors-addresses"> +<a href="#name-authors-addresses" class="section-name selfRef">Authors' Addresses</a> </h2> <address class="vcard"> <div dir="auto" class="left"><span class="fn nameRole">Vi Grey</span></div> |
