diff options
| -rw-r--r-- | CHANGELOG.md | 5 | ||||
| -rw-r--r-- | docs/latest/draft-tasd-spec.html | 256 | ||||
| -rw-r--r-- | docs/latest/draft-tasd-spec.txt | 84 | ||||
| -rw-r--r-- | docs/tasd-spec-0001/draft-tasd-spec-0001.html | 256 | ||||
| -rw-r--r-- | docs/tasd-spec-0001/draft-tasd-spec-0001.txt | 84 | ||||
| -rw-r--r-- | src/docs/draft-tasd-spec-0001.xml | 74 |
6 files changed, 383 insertions, 376 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index e47712f..aa5d240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), although currently without version numbers added. +## 2023-10-15 + +### Changed +- Reordered the SNES controller types to match PORT_CONTROLLER ordering + ## 2023-10-13 ### Changed diff --git a/docs/latest/draft-tasd-spec.html b/docs/latest/draft-tasd-spec.html index dd70bf9..9e53fab 100644 --- a/docs/latest/draft-tasd-spec.html +++ b/docs/latest/draft-tasd-spec.html @@ -1464,10 +1464,10 @@ li > p:last-of-type { <p id="section-toc.1-1.5.2.2.2.1.1"><a href="#section-5.2.1" class="xref">5.2.1</a>. <a href="#name-snes-standard-controller-2" class="xref">SNES Standard Controller</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.2"> - <p id="section-toc.1-1.5.2.2.2.2.1"><a href="#section-5.2.2" class="xref">5.2.2</a>. <a href="#name-snes-mouse-2" class="xref">SNES Mouse</a></p> + <p id="section-toc.1-1.5.2.2.2.2.1"><a href="#section-5.2.2" class="xref">5.2.2</a>. <a href="#name-snes-super-multitap-2" class="xref">SNES Super Multitap</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.3"> - <p id="section-toc.1-1.5.2.2.2.3.1"><a href="#section-5.2.3" class="xref">5.2.3</a>. <a href="#name-snes-super-multitap-2" class="xref">SNES Super Multitap</a></p> + <p id="section-toc.1-1.5.2.2.2.3.1"><a href="#section-5.2.3" class="xref">5.2.3</a>. <a href="#name-snes-mouse-2" class="xref">SNES Mouse</a></p> </li> </ul> </li> @@ -3850,11 +3850,11 @@ li > p:last-of-type { </dl> </section> <section id="section-5.2.2"> - <h4 id="name-snes-mouse-2"> -<a href="#section-5.2.2" class="section-number selfRef">5.2.2. </a><a href="#name-snes-mouse-2" class="section-name selfRef">SNES Mouse</a> + <h4 id="name-snes-super-multitap-2"> +<a href="#section-5.2.2" class="section-number selfRef">5.2.2. </a><a href="#name-snes-super-multitap-2" class="section-name selfRef">SNES Super Multitap</a> </h4> -<p id="section-5.2.2-1">Single Input Length: 4 Octets<a href="#section-5.2.2-1" class="pilcrow">¶</a></p> -<p id="section-5.2.2-2"><strong>Octet 0</strong><a href="#section-5.2.2-2" class="pilcrow">¶</a></p> +<p id="section-5.2.2-1">Single Input Length: 5 Octets<a href="#section-5.2.2-1" class="pilcrow">¶</a></p> +<p id="section-5.2.2-2"><strong>Octet 0</strong> :<a href="#section-5.2.2-2" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-3"> <dt id="section-5.2.2-3.1">Bit 7:</dt> <dd style="margin-left: 1.5em" id="section-5.2.2-3.2">1<a href="#section-5.2.2-3.2" class="pilcrow">¶</a> @@ -3885,74 +3885,158 @@ li > p:last-of-type { </dd> <dd class="break"></dd> <dt id="section-5.2.2-3.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-3.16">1<a href="#section-5.2.2-3.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-3.16">I/O Pin State - <strong>1</strong> if Multitap ports <strong>1 and 2</strong> are being polled, <strong>0</strong> if ports <strong>3 and 4</strong> are.<a href="#section-5.2.2-3.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-4"><strong>Octet 1</strong><a href="#section-5.2.2-4" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-5"> <dt id="section-5.2.2-5.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.2">/Right button<a href="#section-5.2.2-5.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.2">Controller N-1 or N-3 /B<a href="#section-5.2.2-5.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.4">/Left button<a href="#section-5.2.2-5.4" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.4">Controller N-1 or N-3 /Y<a href="#section-5.2.2-5.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.6">Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)<a href="#section-5.2.2-5.6" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.6">Controller N-1 or N-3 /Select<a href="#section-5.2.2-5.6" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.8">Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)<a href="#section-5.2.2-5.8" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.8">Controller N-1 or N-3 /Start<a href="#section-5.2.2-5.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.10">1<a href="#section-5.2.2-5.10" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.10">Controller N-1 or N-3 /Up<a href="#section-5.2.2-5.10" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.12">1<a href="#section-5.2.2-5.12" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.12">Controller N-1 or N-3 /Down<a href="#section-5.2.2-5.12" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.14">1<a href="#section-5.2.2-5.14" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.14">Controller N-1 or N-3 /Left<a href="#section-5.2.2-5.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.16">0<a href="#section-5.2.2-5.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.16">Controller N-1 or N-3 /Right<a href="#section-5.2.2-5.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-6"><strong>Octet 2</strong><a href="#section-5.2.2-6" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-7"> - <dt id="section-5.2.2-7.1">Bits 7-1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-7.2">/Vertical displacement since last read<a href="#section-5.2.2-7.2" class="pilcrow">¶</a> + <dt id="section-5.2.2-7.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.2">Controller N-1 or N-3 /A<a href="#section-5.2.2-7.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.4">Controller N-1 or N-3 /X<a href="#section-5.2.2-7.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.6">Controller N-1 or N-3 /L<a href="#section-5.2.2-7.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.8">Controller N-1 or N-3 /R<a href="#section-5.2.2-7.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.10">1<a href="#section-5.2.2-7.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.12">1<a href="#section-5.2.2-7.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.14">1<a href="#section-5.2.2-7.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.2-7.3">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-7.4">Direction (0: up; 1: down)<a href="#section-5.2.2-7.4" class="pilcrow">¶</a> +<dt id="section-5.2.2-7.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.16">1<a href="#section-5.2.2-7.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-8"><strong>Octet 3</strong><a href="#section-5.2.2-8" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-9"> - <dt id="section-5.2.2-9.1">Bits 7-1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-9.2">/Horizontal displacement since last read<a href="#section-5.2.2-9.2" class="pilcrow">¶</a> + <dt id="section-5.2.2-9.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.2">Controller N-2 or N-4 /B<a href="#section-5.2.2-9.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.4">Controller N-2 or N-4 /Y<a href="#section-5.2.2-9.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.6">Controller N-2 or N-4 /Select<a href="#section-5.2.2-9.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.8">Controller N-2 or N-4 /Start<a href="#section-5.2.2-9.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.10">Controller N-2 or N-4 /Up<a href="#section-5.2.2-9.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.12">Controller N-2 or N-4 /Down<a href="#section-5.2.2-9.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.14">Controller N-2 or N-4 /Left<a href="#section-5.2.2-9.14" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.16">Controller N-2 or N-4 /Right<a href="#section-5.2.2-9.16" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +</dl> +<p id="section-5.2.2-10"><strong>Octet 4</strong><a href="#section-5.2.2-10" class="pilcrow">¶</a></p> +<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-11"> + <dt id="section-5.2.2-11.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.2">Controller N-2 or N-4 /A<a href="#section-5.2.2-11.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.4">Controller N-2 or N-4 /X<a href="#section-5.2.2-11.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.6">Controller N-2 or N-4 /L<a href="#section-5.2.2-11.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.8">Controller N-2 or N-4 /R<a href="#section-5.2.2-11.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.10">1<a href="#section-5.2.2-11.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.12">1<a href="#section-5.2.2-11.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.14">1<a href="#section-5.2.2-11.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.2-9.3">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-9.4">Direction (0: up; 1: down)<a href="#section-5.2.2-9.4" class="pilcrow">¶</a> +<dt id="section-5.2.2-11.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.16">1<a href="#section-5.2.2-11.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> +<p id="section-5.2.2-12"><strong>Controller N</strong> is the controller port number on the console that the Multitap is connected to. <strong>Controller N-1...N-4</strong> are the controller ports <strong>1...4</strong> on the Multitap. Two Multitap ports are polled simultaneously by the game - either <strong>1 and 2</strong>, or <strong>3 and 4</strong>. The I/O Pin state in octet 0 <span class="bcp14">MUST</span> be <strong>1</strong> for multitap ports <strong>1 and 2</strong>, or <strong>0</strong> for ports <strong>3 and 4</strong>.<a href="#section-5.2.2-12" class="pilcrow">¶</a></p> </section> <section id="section-5.2.3"> - <h4 id="name-snes-super-multitap-2"> -<a href="#section-5.2.3" class="section-number selfRef">5.2.3. </a><a href="#name-snes-super-multitap-2" class="section-name selfRef">SNES Super Multitap</a> + <h4 id="name-snes-mouse-2"> +<a href="#section-5.2.3" class="section-number selfRef">5.2.3. </a><a href="#name-snes-mouse-2" class="section-name selfRef">SNES Mouse</a> </h4> -<p id="section-5.2.3-1">Single Input Length: 5 Octets<a href="#section-5.2.3-1" class="pilcrow">¶</a></p> -<p id="section-5.2.3-2"><strong>Octet 0</strong> :<a href="#section-5.2.3-2" class="pilcrow">¶</a></p> +<p id="section-5.2.3-1">Single Input Length: 4 Octets<a href="#section-5.2.3-1" class="pilcrow">¶</a></p> +<p id="section-5.2.3-2"><strong>Octet 0</strong><a href="#section-5.2.3-2" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-3"> <dt id="section-5.2.3-3.1">Bit 7:</dt> <dd style="margin-left: 1.5em" id="section-5.2.3-3.2">1<a href="#section-5.2.3-3.2" class="pilcrow">¶</a> @@ -3983,151 +4067,67 @@ li > p:last-of-type { </dd> <dd class="break"></dd> <dt id="section-5.2.3-3.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-3.16">I/O Pin State - <strong>1</strong> if Multitap ports <strong>1 and 2</strong> are being polled, <strong>0</strong> if ports <strong>3 and 4</strong> are.<a href="#section-5.2.3-3.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-3.16">1<a href="#section-5.2.3-3.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-4"><strong>Octet 1</strong><a href="#section-5.2.3-4" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-5"> <dt id="section-5.2.3-5.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.2">Controller N-1 or N-3 /B<a href="#section-5.2.3-5.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.2">/Right button<a href="#section-5.2.3-5.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.4">Controller N-1 or N-3 /Y<a href="#section-5.2.3-5.4" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.4">/Left button<a href="#section-5.2.3-5.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.6">Controller N-1 or N-3 /Select<a href="#section-5.2.3-5.6" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.6">Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)<a href="#section-5.2.3-5.6" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.8">Controller N-1 or N-3 /Start<a href="#section-5.2.3-5.8" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.8">Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)<a href="#section-5.2.3-5.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.10">Controller N-1 or N-3 /Up<a href="#section-5.2.3-5.10" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.10">1<a href="#section-5.2.3-5.10" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.12">Controller N-1 or N-3 /Down<a href="#section-5.2.3-5.12" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.12">1<a href="#section-5.2.3-5.12" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.14">Controller N-1 or N-3 /Left<a href="#section-5.2.3-5.14" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.14">1<a href="#section-5.2.3-5.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.16">Controller N-1 or N-3 /Right<a href="#section-5.2.3-5.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.16">0<a href="#section-5.2.3-5.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-6"><strong>Octet 2</strong><a href="#section-5.2.3-6" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-7"> - <dt id="section-5.2.3-7.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.2">Controller N-1 or N-3 /A<a href="#section-5.2.3-7.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.4">Controller N-1 or N-3 /X<a href="#section-5.2.3-7.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.6">Controller N-1 or N-3 /L<a href="#section-5.2.3-7.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.8">Controller N-1 or N-3 /R<a href="#section-5.2.3-7.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.10">1<a href="#section-5.2.3-7.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.12">1<a href="#section-5.2.3-7.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.14">1<a href="#section-5.2.3-7.14" class="pilcrow">¶</a> + <dt id="section-5.2.3-7.1">Bits 7-1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-7.2">/Vertical displacement since last read<a href="#section-5.2.3-7.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.3-7.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.16">1<a href="#section-5.2.3-7.16" class="pilcrow">¶</a> +<dt id="section-5.2.3-7.3">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-7.4">Direction (0: up; 1: down)<a href="#section-5.2.3-7.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-8"><strong>Octet 3</strong><a href="#section-5.2.3-8" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-9"> - <dt id="section-5.2.3-9.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.2">Controller N-2 or N-4 /B<a href="#section-5.2.3-9.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.4">Controller N-2 or N-4 /Y<a href="#section-5.2.3-9.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.6">Controller N-2 or N-4 /Select<a href="#section-5.2.3-9.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.8">Controller N-2 or N-4 /Start<a href="#section-5.2.3-9.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.10">Controller N-2 or N-4 /Up<a href="#section-5.2.3-9.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.12">Controller N-2 or N-4 /Down<a href="#section-5.2.3-9.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.14">Controller N-2 or N-4 /Left<a href="#section-5.2.3-9.14" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.16">Controller N-2 or N-4 /Right<a href="#section-5.2.3-9.16" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -</dl> -<p id="section-5.2.3-10"><strong>Octet 4</strong><a href="#section-5.2.3-10" class="pilcrow">¶</a></p> -<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-11"> - <dt id="section-5.2.3-11.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.2">Controller N-2 or N-4 /A<a href="#section-5.2.3-11.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.4">Controller N-2 or N-4 /X<a href="#section-5.2.3-11.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.6">Controller N-2 or N-4 /L<a href="#section-5.2.3-11.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.8">Controller N-2 or N-4 /R<a href="#section-5.2.3-11.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.10">1<a href="#section-5.2.3-11.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.12">1<a href="#section-5.2.3-11.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.14">1<a href="#section-5.2.3-11.14" class="pilcrow">¶</a> + <dt id="section-5.2.3-9.1">Bits 7-1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-9.2">/Horizontal displacement since last read<a href="#section-5.2.3-9.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.3-11.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.16">1<a href="#section-5.2.3-11.16" class="pilcrow">¶</a> +<dt id="section-5.2.3-9.3">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-9.4">Direction (0: up; 1: down)<a href="#section-5.2.3-9.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> -<p id="section-5.2.3-12"><strong>Controller N</strong> is the controller port number on the console that the Multitap is connected to. <strong>Controller N-1...N-4</strong> are the controller ports <strong>1...4</strong> on the Multitap. Two Multitap ports are polled simultaneously by the game - either <strong>1 and 2</strong>, or <strong>3 and 4</strong>. The I/O Pin state in octet 0 <span class="bcp14">MUST</span> be <strong>1</strong> for multitap ports <strong>1 and 2</strong>, or <strong>0</strong> for ports <strong>3 and 4</strong>.<a href="#section-5.2.3-12" class="pilcrow">¶</a></p> </section> </section> <section id="section-5.3"> diff --git a/docs/latest/draft-tasd-spec.txt b/docs/latest/draft-tasd-spec.txt index 03d279a..c7f2222 100644 --- a/docs/latest/draft-tasd-spec.txt +++ b/docs/latest/draft-tasd-spec.txt @@ -7,7 +7,7 @@ Independent TAS Console Replay Research Group V. Grey Bigbass rasteri - 13 October 2023 + 15 October 2023 TASD File Format Specification Version 1 @@ -102,8 +102,8 @@ Table of Contents 5.1.2. NES Four Score 5.2. SNES Controller Types 5.2.1. SNES Standard Controller - 5.2.2. SNES Mouse - 5.2.3. SNES Super Multitap + 5.2.2. SNES Super Multitap + 5.2.3. SNES Mouse 5.3. N64 Controller Types 5.3.1. N64 Standard Controller 5.3.2. N64 Standard Controller with Rumble @@ -1744,45 +1744,7 @@ Table of Contents Bit 1: 1 Bit 0: 1 -5.2.2. SNES Mouse - - Single Input Length: 4 Octets - - *Octet 0* - - Bit 7: 1 - Bit 6: 1 - Bit 5: 1 - Bit 4: 1 - Bit 3: 1 - Bit 2: 1 - Bit 1: 1 - Bit 0: 1 - - *Octet 1* - - Bit 7: /Right button - Bit 6: /Left button - Bit 5: Current sensitivity (0: high sensitivity; 1: low or medium - sensitivity) - Bit 4: Current sensitivity (0: medium sensitivity; 1: low or high - sensitivity) - Bit 3: 1 - Bit 2: 1 - Bit 1: 1 - Bit 0: 0 - - *Octet 2* - - Bits 7-1: /Vertical displacement since last read - Bit 0: Direction (0: up; 1: down) - - *Octet 3* - - Bits 7-1: /Horizontal displacement since last read - Bit 0: Direction (0: up; 1: down) - -5.2.3. SNES Super Multitap +5.2.2. SNES Super Multitap Single Input Length: 5 Octets @@ -1849,6 +1811,44 @@ Table of Contents Pin state in octet 0 MUST be *1* for multitap ports *1 and 2*, or *0* for ports *3 and 4*. +5.2.3. SNES Mouse + + Single Input Length: 4 Octets + + *Octet 0* + + Bit 7: 1 + Bit 6: 1 + Bit 5: 1 + Bit 4: 1 + Bit 3: 1 + Bit 2: 1 + Bit 1: 1 + Bit 0: 1 + + *Octet 1* + + Bit 7: /Right button + Bit 6: /Left button + Bit 5: Current sensitivity (0: high sensitivity; 1: low or medium + sensitivity) + Bit 4: Current sensitivity (0: medium sensitivity; 1: low or high + sensitivity) + Bit 3: 1 + Bit 2: 1 + Bit 1: 1 + Bit 0: 0 + + *Octet 2* + + Bits 7-1: /Vertical displacement since last read + Bit 0: Direction (0: up; 1: down) + + *Octet 3* + + Bits 7-1: /Horizontal displacement since last read + Bit 0: Direction (0: up; 1: down) + 5.3. N64 Controller Types 5.3.1. N64 Standard Controller diff --git a/docs/tasd-spec-0001/draft-tasd-spec-0001.html b/docs/tasd-spec-0001/draft-tasd-spec-0001.html index dd70bf9..9e53fab 100644 --- a/docs/tasd-spec-0001/draft-tasd-spec-0001.html +++ b/docs/tasd-spec-0001/draft-tasd-spec-0001.html @@ -1464,10 +1464,10 @@ li > p:last-of-type { <p id="section-toc.1-1.5.2.2.2.1.1"><a href="#section-5.2.1" class="xref">5.2.1</a>. <a href="#name-snes-standard-controller-2" class="xref">SNES Standard Controller</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.2"> - <p id="section-toc.1-1.5.2.2.2.2.1"><a href="#section-5.2.2" class="xref">5.2.2</a>. <a href="#name-snes-mouse-2" class="xref">SNES Mouse</a></p> + <p id="section-toc.1-1.5.2.2.2.2.1"><a href="#section-5.2.2" class="xref">5.2.2</a>. <a href="#name-snes-super-multitap-2" class="xref">SNES Super Multitap</a></p> </li> <li class="compact toc ulBare ulEmpty" id="section-toc.1-1.5.2.2.2.3"> - <p id="section-toc.1-1.5.2.2.2.3.1"><a href="#section-5.2.3" class="xref">5.2.3</a>. <a href="#name-snes-super-multitap-2" class="xref">SNES Super Multitap</a></p> + <p id="section-toc.1-1.5.2.2.2.3.1"><a href="#section-5.2.3" class="xref">5.2.3</a>. <a href="#name-snes-mouse-2" class="xref">SNES Mouse</a></p> </li> </ul> </li> @@ -3850,11 +3850,11 @@ li > p:last-of-type { </dl> </section> <section id="section-5.2.2"> - <h4 id="name-snes-mouse-2"> -<a href="#section-5.2.2" class="section-number selfRef">5.2.2. </a><a href="#name-snes-mouse-2" class="section-name selfRef">SNES Mouse</a> + <h4 id="name-snes-super-multitap-2"> +<a href="#section-5.2.2" class="section-number selfRef">5.2.2. </a><a href="#name-snes-super-multitap-2" class="section-name selfRef">SNES Super Multitap</a> </h4> -<p id="section-5.2.2-1">Single Input Length: 4 Octets<a href="#section-5.2.2-1" class="pilcrow">¶</a></p> -<p id="section-5.2.2-2"><strong>Octet 0</strong><a href="#section-5.2.2-2" class="pilcrow">¶</a></p> +<p id="section-5.2.2-1">Single Input Length: 5 Octets<a href="#section-5.2.2-1" class="pilcrow">¶</a></p> +<p id="section-5.2.2-2"><strong>Octet 0</strong> :<a href="#section-5.2.2-2" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-3"> <dt id="section-5.2.2-3.1">Bit 7:</dt> <dd style="margin-left: 1.5em" id="section-5.2.2-3.2">1<a href="#section-5.2.2-3.2" class="pilcrow">¶</a> @@ -3885,74 +3885,158 @@ li > p:last-of-type { </dd> <dd class="break"></dd> <dt id="section-5.2.2-3.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-3.16">1<a href="#section-5.2.2-3.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-3.16">I/O Pin State - <strong>1</strong> if Multitap ports <strong>1 and 2</strong> are being polled, <strong>0</strong> if ports <strong>3 and 4</strong> are.<a href="#section-5.2.2-3.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-4"><strong>Octet 1</strong><a href="#section-5.2.2-4" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-5"> <dt id="section-5.2.2-5.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.2">/Right button<a href="#section-5.2.2-5.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.2">Controller N-1 or N-3 /B<a href="#section-5.2.2-5.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.4">/Left button<a href="#section-5.2.2-5.4" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.4">Controller N-1 or N-3 /Y<a href="#section-5.2.2-5.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.6">Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)<a href="#section-5.2.2-5.6" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.6">Controller N-1 or N-3 /Select<a href="#section-5.2.2-5.6" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.8">Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)<a href="#section-5.2.2-5.8" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.8">Controller N-1 or N-3 /Start<a href="#section-5.2.2-5.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.10">1<a href="#section-5.2.2-5.10" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.10">Controller N-1 or N-3 /Up<a href="#section-5.2.2-5.10" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.12">1<a href="#section-5.2.2-5.12" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.12">Controller N-1 or N-3 /Down<a href="#section-5.2.2-5.12" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.14">1<a href="#section-5.2.2-5.14" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.14">Controller N-1 or N-3 /Left<a href="#section-5.2.2-5.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.2-5.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-5.16">0<a href="#section-5.2.2-5.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.2-5.16">Controller N-1 or N-3 /Right<a href="#section-5.2.2-5.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-6"><strong>Octet 2</strong><a href="#section-5.2.2-6" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-7"> - <dt id="section-5.2.2-7.1">Bits 7-1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-7.2">/Vertical displacement since last read<a href="#section-5.2.2-7.2" class="pilcrow">¶</a> + <dt id="section-5.2.2-7.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.2">Controller N-1 or N-3 /A<a href="#section-5.2.2-7.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.4">Controller N-1 or N-3 /X<a href="#section-5.2.2-7.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.6">Controller N-1 or N-3 /L<a href="#section-5.2.2-7.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.8">Controller N-1 or N-3 /R<a href="#section-5.2.2-7.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.10">1<a href="#section-5.2.2-7.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.12">1<a href="#section-5.2.2-7.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-7.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.14">1<a href="#section-5.2.2-7.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.2-7.3">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-7.4">Direction (0: up; 1: down)<a href="#section-5.2.2-7.4" class="pilcrow">¶</a> +<dt id="section-5.2.2-7.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-7.16">1<a href="#section-5.2.2-7.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.2-8"><strong>Octet 3</strong><a href="#section-5.2.2-8" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-9"> - <dt id="section-5.2.2-9.1">Bits 7-1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-9.2">/Horizontal displacement since last read<a href="#section-5.2.2-9.2" class="pilcrow">¶</a> + <dt id="section-5.2.2-9.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.2">Controller N-2 or N-4 /B<a href="#section-5.2.2-9.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.4">Controller N-2 or N-4 /Y<a href="#section-5.2.2-9.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.6">Controller N-2 or N-4 /Select<a href="#section-5.2.2-9.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.8">Controller N-2 or N-4 /Start<a href="#section-5.2.2-9.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.10">Controller N-2 or N-4 /Up<a href="#section-5.2.2-9.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.12">Controller N-2 or N-4 /Down<a href="#section-5.2.2-9.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.14">Controller N-2 or N-4 /Left<a href="#section-5.2.2-9.14" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-9.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-9.16">Controller N-2 or N-4 /Right<a href="#section-5.2.2-9.16" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +</dl> +<p id="section-5.2.2-10"><strong>Octet 4</strong><a href="#section-5.2.2-10" class="pilcrow">¶</a></p> +<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.2-11"> + <dt id="section-5.2.2-11.1">Bit 7:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.2">Controller N-2 or N-4 /A<a href="#section-5.2.2-11.2" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.3">Bit 6:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.4">Controller N-2 or N-4 /X<a href="#section-5.2.2-11.4" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.5">Bit 5:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.6">Controller N-2 or N-4 /L<a href="#section-5.2.2-11.6" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.7">Bit 4:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.8">Controller N-2 or N-4 /R<a href="#section-5.2.2-11.8" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.9">Bit 3:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.10">1<a href="#section-5.2.2-11.10" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.11">Bit 2:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.12">1<a href="#section-5.2.2-11.12" class="pilcrow">¶</a> +</dd> + <dd class="break"></dd> +<dt id="section-5.2.2-11.13">Bit 1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.14">1<a href="#section-5.2.2-11.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.2-9.3">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.2-9.4">Direction (0: up; 1: down)<a href="#section-5.2.2-9.4" class="pilcrow">¶</a> +<dt id="section-5.2.2-11.15">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.2-11.16">1<a href="#section-5.2.2-11.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> +<p id="section-5.2.2-12"><strong>Controller N</strong> is the controller port number on the console that the Multitap is connected to. <strong>Controller N-1...N-4</strong> are the controller ports <strong>1...4</strong> on the Multitap. Two Multitap ports are polled simultaneously by the game - either <strong>1 and 2</strong>, or <strong>3 and 4</strong>. The I/O Pin state in octet 0 <span class="bcp14">MUST</span> be <strong>1</strong> for multitap ports <strong>1 and 2</strong>, or <strong>0</strong> for ports <strong>3 and 4</strong>.<a href="#section-5.2.2-12" class="pilcrow">¶</a></p> </section> <section id="section-5.2.3"> - <h4 id="name-snes-super-multitap-2"> -<a href="#section-5.2.3" class="section-number selfRef">5.2.3. </a><a href="#name-snes-super-multitap-2" class="section-name selfRef">SNES Super Multitap</a> + <h4 id="name-snes-mouse-2"> +<a href="#section-5.2.3" class="section-number selfRef">5.2.3. </a><a href="#name-snes-mouse-2" class="section-name selfRef">SNES Mouse</a> </h4> -<p id="section-5.2.3-1">Single Input Length: 5 Octets<a href="#section-5.2.3-1" class="pilcrow">¶</a></p> -<p id="section-5.2.3-2"><strong>Octet 0</strong> :<a href="#section-5.2.3-2" class="pilcrow">¶</a></p> +<p id="section-5.2.3-1">Single Input Length: 4 Octets<a href="#section-5.2.3-1" class="pilcrow">¶</a></p> +<p id="section-5.2.3-2"><strong>Octet 0</strong><a href="#section-5.2.3-2" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-3"> <dt id="section-5.2.3-3.1">Bit 7:</dt> <dd style="margin-left: 1.5em" id="section-5.2.3-3.2">1<a href="#section-5.2.3-3.2" class="pilcrow">¶</a> @@ -3983,151 +4067,67 @@ li > p:last-of-type { </dd> <dd class="break"></dd> <dt id="section-5.2.3-3.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-3.16">I/O Pin State - <strong>1</strong> if Multitap ports <strong>1 and 2</strong> are being polled, <strong>0</strong> if ports <strong>3 and 4</strong> are.<a href="#section-5.2.3-3.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-3.16">1<a href="#section-5.2.3-3.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-4"><strong>Octet 1</strong><a href="#section-5.2.3-4" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-5"> <dt id="section-5.2.3-5.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.2">Controller N-1 or N-3 /B<a href="#section-5.2.3-5.2" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.2">/Right button<a href="#section-5.2.3-5.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.4">Controller N-1 or N-3 /Y<a href="#section-5.2.3-5.4" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.4">/Left button<a href="#section-5.2.3-5.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.6">Controller N-1 or N-3 /Select<a href="#section-5.2.3-5.6" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.6">Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)<a href="#section-5.2.3-5.6" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.8">Controller N-1 or N-3 /Start<a href="#section-5.2.3-5.8" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.8">Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)<a href="#section-5.2.3-5.8" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.10">Controller N-1 or N-3 /Up<a href="#section-5.2.3-5.10" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.10">1<a href="#section-5.2.3-5.10" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.12">Controller N-1 or N-3 /Down<a href="#section-5.2.3-5.12" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.12">1<a href="#section-5.2.3-5.12" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.14">Controller N-1 or N-3 /Left<a href="#section-5.2.3-5.14" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.14">1<a href="#section-5.2.3-5.14" class="pilcrow">¶</a> </dd> <dd class="break"></dd> <dt id="section-5.2.3-5.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-5.16">Controller N-1 or N-3 /Right<a href="#section-5.2.3-5.16" class="pilcrow">¶</a> + <dd style="margin-left: 1.5em" id="section-5.2.3-5.16">0<a href="#section-5.2.3-5.16" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-6"><strong>Octet 2</strong><a href="#section-5.2.3-6" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-7"> - <dt id="section-5.2.3-7.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.2">Controller N-1 or N-3 /A<a href="#section-5.2.3-7.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.4">Controller N-1 or N-3 /X<a href="#section-5.2.3-7.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.6">Controller N-1 or N-3 /L<a href="#section-5.2.3-7.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.8">Controller N-1 or N-3 /R<a href="#section-5.2.3-7.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.10">1<a href="#section-5.2.3-7.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.12">1<a href="#section-5.2.3-7.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-7.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.14">1<a href="#section-5.2.3-7.14" class="pilcrow">¶</a> + <dt id="section-5.2.3-7.1">Bits 7-1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-7.2">/Vertical displacement since last read<a href="#section-5.2.3-7.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.3-7.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-7.16">1<a href="#section-5.2.3-7.16" class="pilcrow">¶</a> +<dt id="section-5.2.3-7.3">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-7.4">Direction (0: up; 1: down)<a href="#section-5.2.3-7.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> <p id="section-5.2.3-8"><strong>Octet 3</strong><a href="#section-5.2.3-8" class="pilcrow">¶</a></p> <span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-9"> - <dt id="section-5.2.3-9.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.2">Controller N-2 or N-4 /B<a href="#section-5.2.3-9.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.4">Controller N-2 or N-4 /Y<a href="#section-5.2.3-9.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.6">Controller N-2 or N-4 /Select<a href="#section-5.2.3-9.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.8">Controller N-2 or N-4 /Start<a href="#section-5.2.3-9.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.10">Controller N-2 or N-4 /Up<a href="#section-5.2.3-9.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.12">Controller N-2 or N-4 /Down<a href="#section-5.2.3-9.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.14">Controller N-2 or N-4 /Left<a href="#section-5.2.3-9.14" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-9.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-9.16">Controller N-2 or N-4 /Right<a href="#section-5.2.3-9.16" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -</dl> -<p id="section-5.2.3-10"><strong>Octet 4</strong><a href="#section-5.2.3-10" class="pilcrow">¶</a></p> -<span class="break"></span><dl class="dlCompact dlParallel" id="section-5.2.3-11"> - <dt id="section-5.2.3-11.1">Bit 7:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.2">Controller N-2 or N-4 /A<a href="#section-5.2.3-11.2" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.3">Bit 6:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.4">Controller N-2 or N-4 /X<a href="#section-5.2.3-11.4" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.5">Bit 5:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.6">Controller N-2 or N-4 /L<a href="#section-5.2.3-11.6" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.7">Bit 4:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.8">Controller N-2 or N-4 /R<a href="#section-5.2.3-11.8" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.9">Bit 3:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.10">1<a href="#section-5.2.3-11.10" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.11">Bit 2:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.12">1<a href="#section-5.2.3-11.12" class="pilcrow">¶</a> -</dd> - <dd class="break"></dd> -<dt id="section-5.2.3-11.13">Bit 1:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.14">1<a href="#section-5.2.3-11.14" class="pilcrow">¶</a> + <dt id="section-5.2.3-9.1">Bits 7-1:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-9.2">/Horizontal displacement since last read<a href="#section-5.2.3-9.2" class="pilcrow">¶</a> </dd> <dd class="break"></dd> -<dt id="section-5.2.3-11.15">Bit 0:</dt> - <dd style="margin-left: 1.5em" id="section-5.2.3-11.16">1<a href="#section-5.2.3-11.16" class="pilcrow">¶</a> +<dt id="section-5.2.3-9.3">Bit 0:</dt> + <dd style="margin-left: 1.5em" id="section-5.2.3-9.4">Direction (0: up; 1: down)<a href="#section-5.2.3-9.4" class="pilcrow">¶</a> </dd> <dd class="break"></dd> </dl> -<p id="section-5.2.3-12"><strong>Controller N</strong> is the controller port number on the console that the Multitap is connected to. <strong>Controller N-1...N-4</strong> are the controller ports <strong>1...4</strong> on the Multitap. Two Multitap ports are polled simultaneously by the game - either <strong>1 and 2</strong>, or <strong>3 and 4</strong>. The I/O Pin state in octet 0 <span class="bcp14">MUST</span> be <strong>1</strong> for multitap ports <strong>1 and 2</strong>, or <strong>0</strong> for ports <strong>3 and 4</strong>.<a href="#section-5.2.3-12" class="pilcrow">¶</a></p> </section> </section> <section id="section-5.3"> diff --git a/docs/tasd-spec-0001/draft-tasd-spec-0001.txt b/docs/tasd-spec-0001/draft-tasd-spec-0001.txt index 03d279a..c7f2222 100644 --- a/docs/tasd-spec-0001/draft-tasd-spec-0001.txt +++ b/docs/tasd-spec-0001/draft-tasd-spec-0001.txt @@ -7,7 +7,7 @@ Independent TAS Console Replay Research Group V. Grey Bigbass rasteri - 13 October 2023 + 15 October 2023 TASD File Format Specification Version 1 @@ -102,8 +102,8 @@ Table of Contents 5.1.2. NES Four Score 5.2. SNES Controller Types 5.2.1. SNES Standard Controller - 5.2.2. SNES Mouse - 5.2.3. SNES Super Multitap + 5.2.2. SNES Super Multitap + 5.2.3. SNES Mouse 5.3. N64 Controller Types 5.3.1. N64 Standard Controller 5.3.2. N64 Standard Controller with Rumble @@ -1744,45 +1744,7 @@ Table of Contents Bit 1: 1 Bit 0: 1 -5.2.2. SNES Mouse - - Single Input Length: 4 Octets - - *Octet 0* - - Bit 7: 1 - Bit 6: 1 - Bit 5: 1 - Bit 4: 1 - Bit 3: 1 - Bit 2: 1 - Bit 1: 1 - Bit 0: 1 - - *Octet 1* - - Bit 7: /Right button - Bit 6: /Left button - Bit 5: Current sensitivity (0: high sensitivity; 1: low or medium - sensitivity) - Bit 4: Current sensitivity (0: medium sensitivity; 1: low or high - sensitivity) - Bit 3: 1 - Bit 2: 1 - Bit 1: 1 - Bit 0: 0 - - *Octet 2* - - Bits 7-1: /Vertical displacement since last read - Bit 0: Direction (0: up; 1: down) - - *Octet 3* - - Bits 7-1: /Horizontal displacement since last read - Bit 0: Direction (0: up; 1: down) - -5.2.3. SNES Super Multitap +5.2.2. SNES Super Multitap Single Input Length: 5 Octets @@ -1849,6 +1811,44 @@ Table of Contents Pin state in octet 0 MUST be *1* for multitap ports *1 and 2*, or *0* for ports *3 and 4*. +5.2.3. SNES Mouse + + Single Input Length: 4 Octets + + *Octet 0* + + Bit 7: 1 + Bit 6: 1 + Bit 5: 1 + Bit 4: 1 + Bit 3: 1 + Bit 2: 1 + Bit 1: 1 + Bit 0: 1 + + *Octet 1* + + Bit 7: /Right button + Bit 6: /Left button + Bit 5: Current sensitivity (0: high sensitivity; 1: low or medium + sensitivity) + Bit 4: Current sensitivity (0: medium sensitivity; 1: low or high + sensitivity) + Bit 3: 1 + Bit 2: 1 + Bit 1: 1 + Bit 0: 0 + + *Octet 2* + + Bits 7-1: /Vertical displacement since last read + Bit 0: Direction (0: up; 1: down) + + *Octet 3* + + Bits 7-1: /Horizontal displacement since last read + Bit 0: Direction (0: up; 1: down) + 5.3. N64 Controller Types 5.3.1. N64 Standard Controller diff --git a/src/docs/draft-tasd-spec-0001.xml b/src/docs/draft-tasd-spec-0001.xml index e527bf3..0d7bcc1 100644 --- a/src/docs/draft-tasd-spec-0001.xml +++ b/src/docs/draft-tasd-spec-0001.xml @@ -1390,42 +1390,6 @@ </dl> </section> <section numbered="true" toc="default"> - <name>SNES Mouse</name> - <t>Single Input Length: 4 Octets</t> - <t><strong>Octet 0</strong></t> - <dl spacing="compact"> - <dt>Bit 7:</dt><dd>1</dd> - <dt>Bit 6:</dt><dd>1</dd> - <dt>Bit 5:</dt><dd>1</dd> - <dt>Bit 4:</dt><dd>1</dd> - <dt>Bit 3:</dt><dd>1</dd> - <dt>Bit 2:</dt><dd>1</dd> - <dt>Bit 1:</dt><dd>1</dd> - <dt>Bit 0:</dt><dd>1</dd> - </dl> - <t><strong>Octet 1</strong></t> - <dl spacing="compact"> - <dt>Bit 7:</dt><dd>/Right button</dd> - <dt>Bit 6:</dt><dd>/Left button</dd> - <dt>Bit 5:</dt><dd>Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)</dd> - <dt>Bit 4:</dt><dd>Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)</dd> - <dt>Bit 3:</dt><dd>1</dd> - <dt>Bit 2:</dt><dd>1</dd> - <dt>Bit 1:</dt><dd>1</dd> - <dt>Bit 0:</dt><dd>0</dd> - </dl> - <t><strong>Octet 2</strong></t> - <dl spacing="compact"> - <dt>Bits 7-1:</dt><dd>/Vertical displacement since last read</dd> - <dt>Bit 0:</dt><dd>Direction (0: up; 1: down)</dd> - </dl> - <t><strong>Octet 3</strong></t> - <dl spacing="compact"> - <dt>Bits 7-1:</dt><dd>/Horizontal displacement since last read</dd> - <dt>Bit 0:</dt><dd>Direction (0: up; 1: down)</dd> - </dl> - </section> - <section numbered="true" toc="default"> <name>SNES Super Multitap</name> <t>Single Input Length: 5 Octets</t> <t><strong>Octet 0</strong> : </t> @@ -1485,6 +1449,42 @@ </dl> <t><strong>Controller N</strong> is the controller port number on the console that the Multitap is connected to. <strong>Controller N-1...N-4</strong> are the controller ports <strong>1...4</strong> on the Multitap. Two Multitap ports are polled simultaneously by the game - either <strong>1 and 2</strong>, or <strong>3 and 4</strong>. The I/O Pin state in octet 0 <bcp14>MUST</bcp14> be <strong>1</strong> for multitap ports <strong>1 and 2</strong>, or <strong>0</strong> for ports <strong>3 and 4</strong>.</t> </section> + <section numbered="true" toc="default"> + <name>SNES Mouse</name> + <t>Single Input Length: 4 Octets</t> + <t><strong>Octet 0</strong></t> + <dl spacing="compact"> + <dt>Bit 7:</dt><dd>1</dd> + <dt>Bit 6:</dt><dd>1</dd> + <dt>Bit 5:</dt><dd>1</dd> + <dt>Bit 4:</dt><dd>1</dd> + <dt>Bit 3:</dt><dd>1</dd> + <dt>Bit 2:</dt><dd>1</dd> + <dt>Bit 1:</dt><dd>1</dd> + <dt>Bit 0:</dt><dd>1</dd> + </dl> + <t><strong>Octet 1</strong></t> + <dl spacing="compact"> + <dt>Bit 7:</dt><dd>/Right button</dd> + <dt>Bit 6:</dt><dd>/Left button</dd> + <dt>Bit 5:</dt><dd>Current sensitivity (0: high sensitivity; 1: low or medium sensitivity)</dd> + <dt>Bit 4:</dt><dd>Current sensitivity (0: medium sensitivity; 1: low or high sensitivity)</dd> + <dt>Bit 3:</dt><dd>1</dd> + <dt>Bit 2:</dt><dd>1</dd> + <dt>Bit 1:</dt><dd>1</dd> + <dt>Bit 0:</dt><dd>0</dd> + </dl> + <t><strong>Octet 2</strong></t> + <dl spacing="compact"> + <dt>Bits 7-1:</dt><dd>/Vertical displacement since last read</dd> + <dt>Bit 0:</dt><dd>Direction (0: up; 1: down)</dd> + </dl> + <t><strong>Octet 3</strong></t> + <dl spacing="compact"> + <dt>Bits 7-1:</dt><dd>/Horizontal displacement since last read</dd> + <dt>Bit 0:</dt><dd>Direction (0: up; 1: down)</dd> + </dl> + </section> </section> <section numbered="true" toc="default"> <name>N64 Controller Types</name> @@ -1924,6 +1924,8 @@ </section> <!-- Change Log +draft 15 - 2023-10-15 Bigbass Reordered SNES controller types + draft 14 - 2023-10-13 Bigbass Removed Other encoding option from GAME_IDENTIFIER and clarified which encoding alphabets are used. Added clarifications and improved descriptions of various packets and the Introduction section. draft 13 - 2023-10-08 VG Change Base to Encoding in GAME_IDENTIFIER packet |
