Difference between revisions of "Wiimote/Extension Controllers/uDraw GameTablet"
(Added some details about the uDraw GameTablet including its data format.) |
(→Data Format: Fixed detail of ninth bit for pressure after further testing.) |
||
Line 33: | Line 33: | ||
|- 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" | ''' | + | | style="border: 1px solid #ccc; padding: 0.2em;" colspan="8" | '''P'''<span style="color: #777;"><<span style="color: #c00;">7:0</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 | ||
Line 51: | Line 51: | ||
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd; color: #888;" | 1 | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd; color: #888;" | 1 | ||
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd; color: #888;" | 1 | | style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd; color: #888;" | 1 | ||
− | | style="border: 1px solid #ccc; padding: 0.2em;" | ''' | + | | style="border: 1px solid #ccc; padding: 0.2em;" | '''P'''<span style="color: #777;"><<span style="color: #c00;">8</span>></span> |
| style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">L</span> | | style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">L</span> | ||
| style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">U</span> | | style="border: 1px solid #ccc; padding: 0.2em;" | '''B'''<span style="color: #c00;">U</span> | ||
Line 58: | Line 58: | ||
The X and Y coordinates both read 0xFFF (4095) when the stylus is away from the tablet surface. The X coordinate ranges from around 80-1955 units (increasing from left to right) and the Y coordinate ranges from around 95-1450 (increasing from bottom to top) in testing though this likely varies from unit to unit. | The X and Y coordinates both read 0xFFF (4095) when the stylus is away from the tablet surface. The X coordinate ranges from around 80-1955 units (increasing from left to right) and the Y coordinate ranges from around 95-1450 (increasing from bottom to top) in testing though this likely varies from unit to unit. | ||
− | + | P represents the stylus pressure and varies from around 8 when the pen is off the tablet to 505 when fully pressed in. It is a nine-bit value with the upper bit P<8> stored separately in byte 5 to the lower eight bits P<7:0> in byte 3 The pressure value is reported even when the pen is off the tablet surface. | |
− | |||
− | |||
BL is the "lower" button and BU is the "upper" button, and both are active-low values that are 1 when their corresponding button is released and 0 when the button is pressed. | BL is the "lower" button and BU is the "upper" button, and both are active-low values that are 1 when their corresponding button is released and 0 when the button is pressed. |
Latest revision as of 01:49, 30 December 2022
The uDraw GameTablet is a graphics tablet that can be identified by the six bytes FF 00 A4 20 01 12 at register address 0xA400FA after decryption.
The wired stylus has a pressure-sensitive nib and two buttons (named "lower" and "upper" in game manuals, "lower" is closest to the nib) under a single rocker piece.
Data Format
The uDraw GameTablet reports its information as 6 bytes of data, readable at 0xA40008 and streamable using Data Reporting Modes that include Extension bytes. The data is packed into the six bytes as follows (after decryption):
Bit | ||||||||
Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | X<7:0> | |||||||
1 | Y<7:0> | |||||||
2 | Y<11:8> | X<11:8> | ||||||
3 | P<7:0> | |||||||
4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
5 | 1 | 1 | 1 | 1 | 1 | P<8> | BL | BU |
The X and Y coordinates both read 0xFFF (4095) when the stylus is away from the tablet surface. The X coordinate ranges from around 80-1955 units (increasing from left to right) and the Y coordinate ranges from around 95-1450 (increasing from bottom to top) in testing though this likely varies from unit to unit.
P represents the stylus pressure and varies from around 8 when the pen is off the tablet to 505 when fully pressed in. It is a nine-bit value with the upper bit P<8> stored separately in byte 5 to the lower eight bits P<7:0> in byte 3 The pressure value is reported even when the pen is off the tablet surface.
BL is the "lower" button and BU is the "upper" button, and both are active-low values that are 1 when their corresponding button is released and 0 when the button is pressed.