
                                  About pyDDR

   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.

                                 Playing pyDDR

   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.

Nonstop Mode

   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.

Endless Mode

   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.

                               Configuring pyDDR

   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.

Adding Songs

   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.

pyddr.cfg

  Gameplay Options

   assist 0|1
          In this mode, pyDDR will play a sound when you are supposed to
          hit an arrow. It's useful if you can't see the screen, or need
          help getting on beat in a particular song.

   autofail 1|0
          If this is turned off, the game will continue, even when your
          lifebar runs out.

   grading 1|0
          pyDDR will normally display a grade at the end of every song.
          Turning this option off will bring you back to the song
          selector immediately instead.

  Graphical Options

   bgbrightness [num] (default 127)
          This option determines how bright the background during the
          song is. Higher numbers mean a brighter background.

   explodestyle [0|1|2|3] (default 3)
          pyDDR usually displays an effect if you successfully hit an
          arrow, rotating and scaling the arrow at the top. If this is
          too CPU intensive (or you just don't like it), you can set it
          to 0 for no effect, 1 for rotating, 2 for scaling, and 3 for
          rotating and scaling.

   fpsdisplay 1|0
          If this is on pyDDR will display an FPS counter in the corner,
          and a timer in the top center. See the FAQ for what to do if
          your FPS is very low.

   gfxtheme [themename]
          Sets your graphical theme (affecting the look of the arrows and
          your lifebar). pyDDR comes with the 'classic' and 'bryan'
          themes. More themes can be installed by putting them in your
          themes/gfx directory.

   gratuitous 1|0
          This turns on some graphical effects that may slow down the
          game and interface considerably, but look nice.

   ingamehelp 1|0
          Normally pyDDR displays some messages about how to use the
          menus. If these annoy you, turn this off.

   lyriccolor [colors] (default cyan)
          Set the colors that lyrics appear in. Possible values are cyan,
          aqua, yellow, white, black, red, purple, or orange. If you list
          more than one color, other lines of lyrics will appear in those
          colors.

   showbackground 1|0
          Many songs in pyDDR and other dancing games have a background
          image that displays when you play them; however, this can make
          the game slightly slower. If you're desperate for more frames,
          try turning this off to remove the background.

   showcombo 1|0
          Normally when you get a combo, pyDDR will display your current
          combo length on the screen. Turning this off will remove that
          display.

   showlyrics 1|0
          Some songs have lyrics or other text that will appear at the
          bottom of the screen. Turning this off will remove those
          lyrics.

   stickycombo 1|0
          If this is off, your combo is erased from the screen after a
          period of time, even if you don't miss an arrow.

   stickyjudge 1|0
          This is like stickycombo, but for judgings (good, marvelous,
          and so on), rather than your combo.

   totaljudgings [num] (default 1)
          This many judgings will be displayed on the screen at a time.

  Sound Options

   djtheme [themename]
          Sets your announcer theme. By default pyDDR comes with the
          'none' theme (no announcer). Copies from the official website
          also have a 'mrt' theme, which is not distributed with various
          other packages for legal reasons. The pyDDR development team is
          looking for people willing to do voice acting for free
          announcer samples! New themes can be installed in themes/dj.

   masteroffset [num] (default 0)
          Some systems have speakers or displays that take measurable
          time (in terms of affecting gameplay) to output a signal. If
          you have one of these, you can add an offset in milliseconds to
          every song you have.

          This should not be used if you have a lot of step files that
          are a specific number of milliseconds off. If you use it for
          this, all new files you get will be wrong, and no one else will
          be able to use your original files.

   onboardaudio 0|1
          Some systems (especially laptops) use sound cards or drivers
          that resample sound in strange ways, which may make pyDDR play
          songs such that they "drift" in relation to the steps. If you
          seem to be having drifting issues in all the songs you play,
          you should try turning this on.

   previewmusic 1|0
          If this is on, the song selection screen will play a brief
          sound clip from the middle of the song when you move the
          selector over it.

  Interface Options

   keyboard qwerty|rqwerty|dvorak|rdvorak
          Your keyboard type. 'ijkl', while convenient on qwerty
          (standard) keyboards, doesn't work at all on dvorak ones.
          Setting this option to dvorak will redefine your keys to
          'chtn'. The "r" variants swap controls (so player 1 uses the
          arrows, and player 2 uses the letters).

   sortmode 0|1|2|3|4 (default 0)
          This sets the sorting mode for the song select screen. 0 sorts
          by mix, 1 by song name, 2 by artist name, 3 by BPM, and 4 by
          difficulty.

          This can also be changed by pressing 's' on the song select
          screen.

  System Options

   songdir [dir1:dir2:dir] (or on Windows, dir1;dir2;dir3)
          This is a list of directories where pyDDR should look for songs
          (.step files, backgrounds and banners, and the audio itself).
          Generally installing pyDDR gives you a system-wide location to
          place songs (that all users will have access to), and a local
          one in your home directory.

  Obscure Options

   strobe 0|1
          Turning this on results in a little blinking light in the
          bottom right corner of the screen. With various light detection
          equipment, this can be used to make pyDDR communicate with a
          strobe lighting system.

                                  Using a Mat

   The recommended adapter for pyDDR is the [1]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 [2]BNS pads. Any other 6 axis, 12 button or 4 axis, 16
   button joysticks that behave like those two adapters will also work.

GNU/Linux

   For parallel adapters, you can use the ddrmat.o driver available at
   [3]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).

Mac OS X

   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.

Windows

   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".

Other

   As long as [4]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).

                                Other Programs

any2dance

   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.

findbpm

   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.

                                      FAQ

   The FAQ is available online at
   [5]http://www.icculus.org/pyddr/faq.php. Please read it before
   contacting the developers.

                                   Contacts

   There are several different ways to get in touch with the pyDDR
   developers.

Email

   The primary email address is the pyddr-discuss mailing list on
   icculus.org. To subscribe, email
   [6]pyddr-discuss-subscribe@icculus.org. You can then send email to
   [7]pyddr-discuss@icculus.org to talk about pyDDR. If you want to see
   about having pyDDR at a convention or show, contact [8]Brendan Becker
   <tgz@orotech.net>, or show up on the IRC channel.

IRC

   If you need a bit more real-time help than email offers, pyDDR has an
   IRC channel on the [9]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).

References

   1. http://levelsix.com/products/pc/EMSUSB2.shtml
   2. http://www.buynshop.com/
   3. http://icculus.org/pyddr/get.php
   4. http://www.pygame.org/
   5. http://www.icculus.org/pyddr/faq.php
   6. mailto:pyddr-discuss-subscribe@icculus.org
   7. mailto:pyddr-discuss@icculus.org
   8. mailto:tgz@orotech.net
   9. http://www.freenode.net/
