The Power Pad brand dance 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:

          |                        |
,---------+---------.    ,---------+---------.
| 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)      |
  |               |             |               |
  `---------------'             `---------------'

Hardware interface

The following assumes familiarity with NES programming, especially the contents of my writeup in 2A03.

To read the Power Pad, first write 1 then 0 to $4016 (as for joypads). Then:

$4016 (read): Player 1 Power Pad (rare)
76543210
   ||
   |+---- Button state, in order 2, 1, 5, 9, 6, 10, 11, 7
   +----- Button state, in order 4, 3, 12, 8

$4017 (read): Player 2 Power Pad (most common)
76543210
   ||
   |+---- Button state, in order 2, 1, 5, 9, 6, 10, 11, 7
   +----- Button state, in order 4, 3, 12, 8

Remember to save BOTH bits that you get from each read.

But if you actually do try to make a dance game for the NES, you'll have to put in a special mode for emulators because of the unavoidable audio latency that Microsoft Windows imposes. For example, on my system, FCE Ultra delays audio by 100 milliseconds; to compensate, delay the spawning of arrows by six frames.