Power Pad
From NESdevWiki
The Power Pad exercise mat for the Nintendo Entertainment System has twelve sensors arranged in a 3x4 grid, which the player steps on to control the action on the screen:
The Power Pad can be used in either controller port, though most games will only allow you to use it in controller port #2, leaving port #1 for a standard controller used for navigating through options.
| |
,---------+---------. ,---------+---------.
| POWER PAD side B | | POWER PAD side A |
| (1) (2) (3) (4) | | (O) (O) |
| | | |
| (5) (6) (7) (8) | | (O) (X) (X) (O) |
| | | |
| (9) (10)(11)(12) | | (O) (O) |
| | | |
`-------------------' `-------------------'
Most games used side B, with the numbers on top. A few games turned the pad over to side A, whose markings lack numerals and lack markings for spaces 1, 4, 9, and 12 entirely (but they still send a signal). There is a third possible configuration, which no official game used, but which may be useful for homebrew dance simulation games in the style of Dance Dance Revolution: side B rotated 90 degrees anticlockwise, placing sensors 4, 8, and 12 toward the display.
| ,---------------. | ,---------------. | | SIDE B | | | SIDE DDR | | | (4) (8) (12) | | | (Sel) (St) | | | | | | | | | (3) (7) (11) | ____ | | (X) (U) (O) | `-+ | ____ `-+ | | (2) (6) (10) | | (L) (R) | | | | | | (1) (5) (9) | | (D) | | | | | `---------------' `---------------'
[edit] Hardware interface
[edit] Input ($4016 write)
7 bit 0
---- ----
xxxx xxxS
|
+- Controller shift register strobe
Writing 1 to this bit will record the state of each button. Writing 0 afterwards will allow the buttons to be read back, two at a time.
[edit] Output ($4016/$4017 read)
7 bit 0 ---- ---- xxxH Lxxx | | | +---- Serial data from buttons 2, 1, 5, 9, 6, 10, 11, 7 +------ Serial data from buttons 4, 3, 12, 8 (following 4 bits read as H=1)
The first 8 reads will indicate which buttons are pressed (1 if pressed, 0 if not pressed); all subsequent reads will return H=1 and L=1.
Remember to save both bits that you get from each read.
