Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
controllers [2023/05/29 17:42] – [Flow control] pulkomandy | controllers [2023/06/05 19:59] (current) – [Checksum/keepalive] simer | ||
---|---|---|---|
Line 80: | Line 80: | ||
| Right | C3 80 to C7 80 | C0 80 | | | Right | C3 80 to C7 80 | C0 80 | | ||
+ | The controller also sends Bx values for keepalive (see below). | ||
==== Dance mat ==== | ==== Dance mat ==== | ||
Line 150: | Line 151: | ||
These are repeated every 20ms. After the controller sends 55 (idle), the game also returns to its idle reply (E6 followed by D6 for example) every 20ms. | These are repeated every 20ms. After the controller sends 55 (idle), the game also returns to its idle reply (E6 followed by D6 for example) every 20ms. | ||
+ | |||
+ | |||
+ | ==== Checksum/ | ||
+ | |||
+ | The console sends 7x commands (where x is a " | ||
+ | |||
+ | The controller response algorithm to compute the correct reply is: | ||
+ | |||
+ | '' | ||
+ | |||
+ | where A and B are the two most recent lower nibbles sent by the console in 7x commands. If only one nibble has been sent, the other nibble in the algorithm will have 0 as its value. The console can also reset the previous state by sending a Bx command instead which otherwise works like a 7x command. | ||
+ | |||
+ | The console must send the 7x commands, even if it ignores all the Bx replies from the controller. Without these commands, the controller eventually shuts down. | ||
+ | |||