Parallel port dance pad driver for linux kernel
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


DDR Mat Module for Parallel Ports
This module allows you to use parallel port Playstation controller adapters
with your DDR mat. It is based off of gamecon.c included with the Linux
kernel, but tweaked for DDR mats. Note that this *only* for parallel adapters;
USB is supported via the standard USB joystick drivers. One example of
such an adapter is the standard one from

In addition to this driver, you will need the hid, joydev, and input modules.
You may also need to link /dev/js0 to /dev/input/js0.

This module is *not* approved by any main kernel developers. It may make
your joystick fail. That being said, it does seem to work for many

Dance pads must be plugged in at the time the module is loaded but 
afterward can be unplugged and plugged in freely.

Compiling & Installing
For any kernel version, just run
  $ make
to compile the module. You may need write permission to your kernel
build tree, which means you might need to be root if you compiled
your kernel as root.

To insert the module,
  # insmod ./ddrmat.ko gc=0,7
(or on 2.4 kernels, ddrmat.o rather than .ko)

Finish installing the module by running
  # make install
  # depmod -ae

Once installed, you can insert it via
  # modprobe ddrmat gc=0,7

If you have more than one parallel port, load the module with the 
additional gc_2 option:
  # modprobe ddrmat gc=0,7 gc_2=1,7

If you want to type less, you can add something like the following to
your /etc/modules.conf:

options ddrmat gc=0,7
pre-install ddrmat modprobe parport_pc && modprobe joydev

Then, just running
  # modprobe ddrmat
should work.

It Doesn't Work!
0. This module is *not* for USB mats, only parallel ones.

1. Make sure you have the parport, joydev, input, and hid modules loaded,
   as well as the ddrmat module.

2. Are you passing in gc=0,7 as an argument? Do so.

3. If you're using lp.o (parallel printer support), disable it, and turn off
   anything that might use it, like a printing daemon. Then try reinserting
   the ddrmat module.

4. Make sure /dev/js0 is linked to /dev/input/js0, and your user has read
   permission to /dev/input/js0 (`chmod 444 /dev/input/js0').

5. Are you running DevFS? Don't. (Especially in 2.6.) (Ed claims that
   it might work under DevFS now. But don't expect us to support it.)

6. Is your parallel port turned on in your BIOS? Many times (especially
   on laptops) it is off by default, or because you forgot.

If it still doesn't work, drop by #pyddr on, or email

Many thanks to Vojtech for his help and guidance in hacking around with
his gamecon module!

Tom Grimes, for porting this driver to Linux 2.6.

Ed Anderson, for porting the driver to more recent 2.6 and 2.4 kernels.