Oeka Kids tablet
The Oeka Kids tablet is a Famicom accessory from Bandai that resembles a drawing tablet, and plugs into the expansion port. There are two known games that use this peripheral, using iNES Mapper 096, both of which contain a variety of activities, such as painting, drawing lessons, hiragana lessons, and a variety of minigames such as mazes and sliding puzzles.
Very little information about this accessory is available, and only basic reverse engineering has been performed so far. As such, this information may be incorrect, but it seems to be acceptable for the two commercial games that use it and two test ROMs.[1][2]
7 bit 0
---- ----
xxxx xxAS
||
|+- Strobe (0 = Latch, 1 = Read mode)
+-- Advance to next bit
Bits can be read only while S is 1. It advances to the next bit when S is 1 and A transitions from 0 to 1.
It works to write $01 then $00, read the standard controllers, and then write $01 before reading the tablet.
7 bit 0
---- ----
xxxx DSxx
||
|+--- 1 if strobe is 0 or advance is 1, 0 otherwise
+---- 0 if strobe is 0, inverted report bit otherwise
To read one bit, the program must turn on advance ($4016=$03), wait for $4017 bit 2 to become 0, turn off advance ($4016=$01), and wait for $4017 bit 2 to become 1. If the game does not wait for the tablet’s slow microcontroller to acknowledge each edge, the data is incorrect. The MCU can take upwards of 200 cycles to acknowledge each edge, and reading all 18 bits takes about 67 scanlines.[2][3]
The serial data is returned most significant bit first, and inverted (including the touch and click bits).
$4017.3
^
| <-- <-- <-- <--
XXXXXXXXYYYYYYYYBA
||||||||||||||||||
|||||||||||||||||+- Click (gray "space bar" at bottom of tablet is held)
||||||||||||||||+-- Stylus is touching tablet
||||||||++++++++--- Stylus Y, scaled to 0-255
++++++++----------- Stylus X, scaled to 0-239
The fact that X and Y are scaled backwards is not an error - the games which use this mapper rescale the coordinates by multiplying X by 256/240 and multiplying Y by 240/256.
Note that the Stylus X and Y values are nonsense when the stylus is not touching the tablet.
Small Y coordinates (less than $20 or so) correspond to regions under the bezel, with 7 demarcated touch regions. The exact bounding boxes have not yet been verified to be consistent across multiple different instances of the hardware.[4]