summaryrefslogtreecommitdiff
path: root/docs/latest
diff options
context:
space:
mode:
authorbigbass1997 <bigbass1997.website@gmail.com>2025-02-01 23:40:31 -0600
committerbigbass1997 <bigbass1997.website@gmail.com>2025-02-01 23:40:31 -0600
commite3147fb48be4f55b2688e664bb66be5143eda2d1 (patch)
tree89f8ecde1f2a4044bcfed2c6a1ddc9bc31807b5c /docs/latest
parenta6902c42f284f41672ea85a1ff54437009f563e2 (diff)
downloadtasd-e3147fb48be4f55b2688e664bb66be5143eda2d1.tar.gz
tasd-e3147fb48be4f55b2688e664bb66be5143eda2d1.zip
Changed Genesis controller input format. Further clarified INPUT_CHUNK usage.
Diffstat (limited to 'docs/latest')
-rw-r--r--docs/latest/draft-tasd-spec.html42
-rw-r--r--docs/latest/draft-tasd-spec.txt49
2 files changed, 50 insertions, 41 deletions
diff --git a/docs/latest/draft-tasd-spec.html b/docs/latest/draft-tasd-spec.html
index 79efc1e..a216583 100644
--- a/docs/latest/draft-tasd-spec.html
+++ b/docs/latest/draft-tasd-spec.html
@@ -3363,7 +3363,7 @@ li > p:last-of-type:only-child {
</dl>
<p id="section-4.3.5.1-4">All INPUT_CHUNK packets with corresponding Port values in the <strong>TASD</strong> file <span class="bcp14">MUST</span> be in chronological order, where earlier inputs in the TAS movie console replay are earlier in the <strong>TASD</strong> file and later inputs in the TAS movie console replay are later in the <strong>TASD</strong> file. If there are more than one INPUT_CHUNK packets for a specific Port, the input data <span class="bcp14">MUST</span> be interpreted as if all their contents were concatenated into a single INPUT_CHUNK packet. As such, a single INPUT_CHUNK packet <span class="bcp14">MAY</span> contain up to every input of a TAS movie console replay and <span class="bcp14">MAY</span> contain fewer than every input of a TAS movie console replay.<a href="#section-4.3.5.1-4" class="pilcrow">¶</a></p>
<p id="section-4.3.5.1-5">The input data contained in <strong>Inputs</strong> is divided up based on the PORT_CONTROLLER type corresponding to the <strong>Port</strong> number. Refer to <a href="#controller_inputs" class="auto internal xref">Section 5</a> for each available type and the number of bytes used for each instance of controller input. The PORT_CONTROLLER type <span class="bcp14">MAY</span> be changed using TRANSITION packets, which <span class="bcp14">MAY</span> change the interpretation of the input data until either the end of the replay or until the next PORT_CONTROLLER transition.<a href="#section-4.3.5.1-5" class="pilcrow">¶</a></p>
-<p id="section-4.3.5.1-6"></p>
+<p id="section-4.3.5.1-6">Each instance of controller input <strong>SHOULD</strong> remain held until the input has been used according to the current replay configuration. By default, this means each instance of controller input corresponds to a single input "latch" or polling sequence by the console. However, some packet types <strong>MAY</strong> alter how inputs are used during replay. For example, the NES has the NES_LATCH_FILTER packet available. When NES_LATCH_FILTER is active, each instance of controller input <strong>MUST</strong> remain held until the end of the filter period.<a href="#section-4.3.5.1-6" class="pilcrow">¶</a></p>
</section>
</div>
<div id="input_moment">
@@ -5075,35 +5075,35 @@ li > p:last-of-type:only-child {
<p id="section-5.8.1-2"><strong>Octet 0</strong><a href="#section-5.8.1-2" class="pilcrow">¶</a></p>
<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.8.1-3">
<dt id="section-5.8.1-3.1">Bit 7:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.2">/Up<a href="#section-5.8.1-3.2" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.2">/C<a href="#section-5.8.1-3.2" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.3">Bit 6:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.4">/Down<a href="#section-5.8.1-3.4" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.4">/B<a href="#section-5.8.1-3.4" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.5">Bit 5:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.6">/Left<a href="#section-5.8.1-3.6" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.6">/Right<a href="#section-5.8.1-3.6" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.7">Bit 4:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.8">/Right<a href="#section-5.8.1-3.8" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.8">/Left<a href="#section-5.8.1-3.8" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.9">Bit 3:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.10">/B<a href="#section-5.8.1-3.10" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.10">/Down<a href="#section-5.8.1-3.10" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.11">Bit 2:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.12">/C<a href="#section-5.8.1-3.12" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.12">/Up<a href="#section-5.8.1-3.12" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.13">Bit 1:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.14">/A<a href="#section-5.8.1-3.14" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.14">/Start<a href="#section-5.8.1-3.14" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.1-3.15">Bit 0:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.1-3.16">/Start<a href="#section-5.8.1-3.16" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.1-3.16">/A<a href="#section-5.8.1-3.16" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
</dl>
@@ -5116,54 +5116,54 @@ li > p:last-of-type:only-child {
<p id="section-5.8.2-2"><strong>Octet 0</strong><a href="#section-5.8.2-2" class="pilcrow">¶</a></p>
<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.8.2-3">
<dt id="section-5.8.2-3.1">Bit 7:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.2">/Up<a href="#section-5.8.2-3.2" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.2">/C<a href="#section-5.8.2-3.2" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.3">Bit 6:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.4">/Down<a href="#section-5.8.2-3.4" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.4">/B<a href="#section-5.8.2-3.4" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.5">Bit 5:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.6">/Left<a href="#section-5.8.2-3.6" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.6">/Right<a href="#section-5.8.2-3.6" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.7">Bit 4:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.8">/Right<a href="#section-5.8.2-3.8" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.8">/Left<a href="#section-5.8.2-3.8" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.9">Bit 3:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.10">/B<a href="#section-5.8.2-3.10" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.10">/Down<a href="#section-5.8.2-3.10" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.11">Bit 2:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.12">/C<a href="#section-5.8.2-3.12" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.12">/Up<a href="#section-5.8.2-3.12" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.13">Bit 1:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.14">/A<a href="#section-5.8.2-3.14" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.14">/Start<a href="#section-5.8.2-3.14" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-3.15">Bit 0:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-3.16">/Start<a href="#section-5.8.2-3.16" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-3.16">/A<a href="#section-5.8.2-3.16" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
</dl>
<p id="section-5.8.2-4"><strong>Octet 1</strong><a href="#section-5.8.2-4" class="pilcrow">¶</a></p>
<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.8.2-5">
<dt id="section-5.8.2-5.1">Bit 7:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-5.2">/Z<a href="#section-5.8.2-5.2" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-5.2">/Mode<a href="#section-5.8.2-5.2" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-5.3">Bit 6:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-5.4">/Y<a href="#section-5.8.2-5.4" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-5.4">/X<a href="#section-5.8.2-5.4" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-5.5">Bit 5:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-5.6">/X<a href="#section-5.8.2-5.6" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-5.6">/Y<a href="#section-5.8.2-5.6" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-5.7">Bit 4:</dt>
- <dd style="margin-left: 1.5em" id="section-5.8.2-5.8">/Mode<a href="#section-5.8.2-5.8" class="pilcrow">¶</a>
+ <dd style="margin-left: 1.5em" id="section-5.8.2-5.8">/Z<a href="#section-5.8.2-5.8" class="pilcrow">¶</a>
</dd>
<dd class="break"></dd>
<dt id="section-5.8.2-5.9">Bit 3:</dt>
diff --git a/docs/latest/draft-tasd-spec.txt b/docs/latest/draft-tasd-spec.txt
index ba5b0b9..6903ec8 100644
--- a/docs/latest/draft-tasd-spec.txt
+++ b/docs/latest/draft-tasd-spec.txt
@@ -1439,6 +1439,15 @@ Table of Contents
of the input data until either the end of the replay or until the
next PORT_CONTROLLER transition.
+ Each instance of controller input *SHOULD* remain held until the
+ input has been used according to the current replay configuration.
+ By default, this means each instance of controller input corresponds
+ to a single input "latch" or polling sequence by the console.
+ However, some packet types *MAY* alter how inputs are used during
+ replay. For example, the NES has the NES_LATCH_FILTER packet
+ available. When NES_LATCH_FILTER is active, each instance of
+ controller input *MUST* remain held until the end of the filter
+ period.
4.3.5.2. INPUT_MOMENT Packet
@@ -2212,14 +2221,14 @@ Table of Contents
*Octet 0*
- Bit 7: /Up
- Bit 6: /Down
- Bit 5: /Left
- Bit 4: /Right
- Bit 3: /B
- Bit 2: /C
- Bit 1: /A
- Bit 0: /Start
+ Bit 7: /C
+ Bit 6: /B
+ Bit 5: /Right
+ Bit 4: /Left
+ Bit 3: /Down
+ Bit 2: /Up
+ Bit 1: /Start
+ Bit 0: /A
5.8.2. Genesis (Mega Drive) 6-Button
@@ -2227,21 +2236,21 @@ Table of Contents
*Octet 0*
- Bit 7: /Up
- Bit 6: /Down
- Bit 5: /Left
- Bit 4: /Right
- Bit 3: /B
- Bit 2: /C
- Bit 1: /A
- Bit 0: /Start
+ Bit 7: /C
+ Bit 6: /B
+ Bit 5: /Right
+ Bit 4: /Left
+ Bit 3: /Down
+ Bit 2: /Up
+ Bit 1: /Start
+ Bit 0: /A
*Octet 1*
- Bit 7: /Z
- Bit 6: /Y
- Bit 5: /X
- Bit 4: /Mode
+ Bit 7: /Mode
+ Bit 6: /X
+ Bit 5: /Y
+ Bit 4: /Z
Bit 3: 1
Bit 2: 1
Bit 1: 1