Line 63:
Line 63:
=== Data Format 0x02 ===
=== Data Format 0x02 ===
β
The main difference from the data format 0x01 is that the Analog Sticks and Triggers have much higher precision: 8 bits (0-255). The Classic Controller reports its information as 9 bytes of data, readable at 0x(4)A40008 ('''after decryption'''):
+
The main difference from the data format 0x01 is that the Analog Sticks and Triggers have much higher precision: 10 bits (0-1023) and 8 bits (0-255). The Classic Controller reports its information as 9 bytes of data, readable at 0x(4)A40008 ('''after decryption'''):
{| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em; text-align: center;"
{| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em; text-align: center;"
|- style="background-color: #ddd;"
|- style="background-color: #ddd;"
Line 80:
Line 80:
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 0
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 0
β
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''LX'''<span style="color: #777;"><<span style="color: #c00;">7:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''LX'''<span style="color: #777;"><<span style="color: #c00;">9:2</span>></span>
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 1
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 1
β
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''RX'''<span style="color: #777;"><<span style="color: #c00;">7:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''RX'''<span style="color: #777;"><<span style="color: #c00;">9:2</span>></span>
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 2
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 2
β
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''LY'''<span style="color: #777;"><<span style="color: #c00;">7:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''LY'''<span style="color: #777;"><<span style="color: #c00;">9:2</span>></span>
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 3
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 3
β
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''RY'''<span style="color: #777;"><<span style="color: #c00;">7:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''RY'''<span style="color: #777;"><<span style="color: #c00;">9:2</span>></span>
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 4
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 4
β
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''Unknown'''<span style="color: #777;"></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="2" | '''RY'''<span style="color: #777;"><<span style="color: #c00;">1:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="2" | '''LY'''<span style="color: #777;"><<span style="color: #c00;">1:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="2" | '''RX'''<span style="color: #777;"><<span style="color: #c00;">1:0</span>></span>
+
| style="border: 1px solid #ccc; padding: 0.2em;" colspan="2" | '''LX'''<span style="color: #777;"><<span style="color: #c00;">1:0</span>></span>
|- style="background-color: #ded;"
|- style="background-color: #ded;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 5
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | 5
Line 120:
Line 123:
| style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">DU</span>
| style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">DU</span>
|}
|}
β
LX,LY are the left Analog Stick X and Y (0-255), RX and RY are the right Analog Stick X and Y (0-255), and LT and RT are the Left and Right Triggers (0-255).
+
LX,LY are the left Analog Stick X and Y (0-1023), RX and RY are the right Analog Stick X and Y (0-1023), and LT and RT are the Left and Right Triggers (0-255).
BD{L,R,U,D} are the D-Pad direction buttons. B{ZR,ZL,A,B,X,Y,+,H,-} are the discrete buttons. B{LT,RT} are the digital button click of LT and RT. All buttons are 0 when pressed.
BD{L,R,U,D} are the D-Pad direction buttons. B{ZR,ZL,A,B,X,Y,+,H,-} are the discrete buttons. B{LT,RT} are the digital button click of LT and RT. All buttons are 0 when pressed.