Power Pad: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(spacing)
Line 15: Line 15:
`-------------------'    `-------------------'
`-------------------'    `-------------------'
</pre>
</pre>
The sensors are spaced at 252 mm across by 285 mm front and back.


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.
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.
Line 56: Line 57:


Remember to save ''both'' bits that you get from each read.
Remember to save ''both'' bits that you get from each read.
If you're playing [[APU DMC|samples]], beware of [[Standard controller#Evil Details|bit deletions]].


[[Category:Controllers]]
[[Category:Controllers]]

Revision as of 23:41, 16 October 2011

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)      |
|                   |    |                   |
`-------------------'    `-------------------'

The sensors are spaced at 252 mm across by 285 mm front and back.

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)      |
  |               |             |               |
  `---------------'             `---------------'

Hardware interface

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.

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. If you're playing samples, beware of bit deletions.