pyDDR is a dancing simulator, primarily for GNU/Linux, but it also runs on other UNIX-like operating systems, Windows, and Mac OS X. DDR stands for "Dance Dance Revolution", a game that's slowly earning popularity in the United States and other countries, that comes from Japan. The game idea is simple. There's a mat with four directional arrows you can step on, and the game scrolls arrows up the screen while playing a song. When the arrows reach the top of the screen (not sooner and not later, since they pass over stationary arrows), you hit the corresponding arrow on the pad, and given that you hit it on time with the beat, you score points. The idea is that the game is supposed to either teach you to dance, or simulate dancing. It works to a degree. =]
However, if you're just hearing about this game (or you're broke), you don't actually need a mat to play pyDDR (although it definitely makes it more fun). You can use a keyboard or regular joystick instead.
This document assumes you've managed to install pyDDR already. If not, you might want to look at the INSTALL file included with the source.
To play the game, just select "Play Game" from the menu, then select "Regular", and select a song. Press j and l to change your difficulty setting (more bars means more difficult). Hit enter when you're on a difficulty and song you like.
Oh wait, now there's all these arrows scrolling up the screen - what should you do? Actually, it's pretty simple. When the arrows get to the top (which is in time with the music), step on the direction of the arrow on your pad. If you're using the keyboard, you can just IJKL for up/down/left/right.
If you want to play a versus game, just hit start on the second player's dance mat, or '2' on the keyboard (or on the numeric keypad for azerty keyboard users); The second player uses the arrow keys.
In the song selector, you can hold down start when selecting a song to bring up a screen full of game modifiers, that affect how the arrows are displayed. You can also hold down select (or tab) to bring up a screen of game-wide options, like oni or battle mode.
If you need to exit the game or back out of menus, just press escape.
From the normal song selector you can set up Nonstop Mode. Select a song and difficulty you want to play, and press m. That song is now on your nonstop playlist. You can add a lot of songs this way, then play them all in succession without returning to the song selector.
The Endless Mode option on the Play Game menu takes you into a different selector. In this one, you can select a difficulty (either by name, or by rating), and just keep playing until you fail.
The easy way to configure pyDDR is to use the in-game configuration menus. Just select the menu item you want to change and hit enter, or left and right. If you need more precise configuration, read on.
pyDDR reads from configuration files in appropriate places. This means /etc/pyddr.cfg and ~/.pyddr/pyddr.cfg on POSIX, /Library/Preferences/pyDDR/pyddr.cfg and ~/Library/Preferences/pyDDR/pyddr.cfg on Mac OS X, and pyddr.cfg in the current directory on all platforms (note that this is the only configuration file Windows systems will read). Files are read in the order listed above.
To add songs, you just need to put the .step file, music file, and (if they exist) background and banner files into one of your song directories. This is the songdir configuration variable. On POSIX systems this is /usr/share/games/pyddr/songs, /usr/local/share/games/pyddr/songs, and ~/.pyddr/songs. On Windows, this is anywhere in the directory pyDDR was installed in. On Mac OS X, this is the 'pyDDR Songs' folder in your Music folder.
The recommended adapter for pyDDR is the EMSUSB2 from Level Six. pyDDR easily supports two player with it, and it works on all operating systems. Also known to work is the parallel port adapter that comes with BNS pads. Any other 6 axis, 12 button or 4 axis, 16 button joysticks that behave like those two adapters will also work.
For parallel adapters, you can use the ddrmat.o driver available at http://icculus.org/pyddr/get.php (which is a modified gamecon.o from the 2.4 kernel). Once compiled, just run insmod ddrmat gc=0,7 (where 7 is the IRQ of your parallel port, which is probably 7). Note that your lp (parallel printer) module cannot be loaded at the same time. The normal gamecon.o module might work too, although you may have to rotate your pad 45 degrees.
USB drivers are much easier. If your kernel has USB joystick support, just plug it in and it should work. If it doesn't, make sure the input, hid, and joydev modules are loaded (the first two are required for any USB input device).
Plug-and-play, or so I've heard. Just plug in your pad using the USB adapter, and off you go. Parallel port adapters are not supported.
This OS's hardware support is too unreliable and inconsistent to describe the process here. All we can say is "make sure the appropriate driver is installed".
As long as Pygame supports your OS's joysticks, pyDDR will too. pyDDR specifically is looking for 4 axis 16 button, or 6 axis 12 button joysticks (and also the 32 button EMSUSB2).
This program will convert any file pyDDR can read (such as .step or .dwi files) to pyDDR's native .dance format. In addition to using it on one file, it will recurse directories. It also has a --delete option to delete the old files once it is done converting them.
This program plays a song and lets you tap a key along with the beat. It averages the number of times you tap over the length of the song, and calculates a BPM. This method sounds crude, but if you have a good sense of rhythm, it's actually highly accurate. Run it using findbpm song.ogg.
The FAQ is available online at http://www.icculus.org/pyddr/faq.php. Please read it before contacting the developers.
There are several different ways to get in touch with the pyDDR developers.
The primary email address is the pyddr-discuss mailing list on icculus.org. To subscribe, email pyddr-discuss-subscribe@icculus.org. You can then send email to pyddr-discuss@icculus.org to talk about pyDDR. If you want to see about having pyDDR at a convention or show, contact Brendan Becker <tgz@orotech.net>, or show up on the IRC channel.
If you need a bit more real-time help than email offers, pyDDR has an IRC channel on the Freenode IRC network. Surprisingly, the channel is named #pyddr. The main developers are often in the channel as P2E (Brendan), piman (Joe), and DShadow (John).