Controller Configuration

From Performous

Jump to: navigation, search

Performous supports and autodetects guitars and drumkits from Guitar Hero and Rock Band and also some generic dance pads. For help on configuring microphones, see Audio Configuration.

Contents

General notes

  • Guitar Hero World Tour guitar/drums cannot be differentiated automatically, so if Performous detects them wrong, use instrument type forcing.
  • Linux kernel driver doesn't allow detecting the tilt sensor from Guitar Hero guitars.
  • Ensure that CONFIG_INPUT_JOYSTICK=y if you've compiled your kernel from source.

Remote controls

Main article: Remote Controls

Changing mappings

From 0.6.0 version onwards, it is possible to change the button mappings of the various joystick-based controllers. Note that as of 0.6.1, this still applies only for buttons, not axes or hats. Performous still uses auto-detection and the goal is to have as good out-of-the-box experience as is possible, but sometimes that fails so this option is provided. The procedure is as follows:

  1. Find out your instruments name.
    • Start Performous from command line and look for a line starting with "SDL joystick:".
  2. Locate the controllers.xml file.
    • On Windows: C:\Program Files (x86)\Performous\config
    • On Linux: /usr/share/games/performous/config (or something similar depending on the distro)
  3. Copy the file to your User's config directory for editing.
    • On Windows: C:\Users\USERNAME\AppData\Roaming\performous
    • On Linux: ~/.config/performous
  4. Edit the file to suit your needs.
    • It's fairly understandable XML.
    • If Performous reported a detection in step 1, edit that instrument's configuration.
    • If Performous didn't auto-detect the instrument in step 1, add a new controller entry with a regexp matching your instruments name.
    • Note that you don't need to have all the entries in there, you can just delete the ones that don't need modifications and the defaults from the master controllers.xml are used.

Forcing instrument type

As described in the previous section, it is possible to add new auto-detections or modify the existing ones. Alternatively, you can force Performous to detect a joystick as a certain type. You may need to do this with e.g. Guitar Hero World Tour instruments or if you want to try if your officially non-supported dancepad works.

Editing config.xml

If you haven't done so already, go to the Configuration screen in the main menu and press Ctrl+S to create your local config file. In Linux, it will be located at ~/.config/performous/config.xml Edit the file with a text editor and add the following entry inside the <performous> and </performous> tags.

<entry name="game/instruments" type="string_list">
  <stringvalue>SDL_ID:INSTRUMENT_TYPE</stringvalue>
</entry>

Where SDL_ID is an integer id number for the instrument (Performous reports it in console output and it is typically 0, if you have just one instrument connected).

INSTRUMENT_TYPE is the desired type, one of the following. These strings can also be looked up from controllers.xml file:

  • GUITAR_GUITARHERO
  • GUITAR_GUITARHERO5
  • GUITAR_GUITARHERO_XPLORER
  • GUITAR_HAMA_PS2
  • GUITAR_ROCKBAND_PS3
  • GUITAR_ROCKBAND_XBOX360
  • GUITAR_ROCKBAND_XBOXADAPTER
  • DRUMS_GUITARHERO
  • DRUMS_GUITARHERO5
  • DRUMS_ROCKBAND_PS3
  • DRUMS_ROCKBAND_XBOX360
  • DRUMS_ROCKBAND_WII
  • DRUMS_MIDI
  • DANCEPAD_GENERIC
  • DANCEPAD_EMS2
  • DANCEPAD_TIGERGAME
  • DANCEPAD_2TECH
  • DANCEPAD_THRUST

Notes:

  • Starting with version 0.6.0, user can dynamically add new types and mappings (take a look at controllers.xml file for more information).

New mappings

We are happy to add new mappings and auto-detections to controllers. Follow these steps to get your instrument added:

  1. Check if one of the existing mappings work, e.g. for a dance pad, try forcing each of the available DANCEPAD_* values in turn.
  2. If that didn't work, launch Performous with parameter --jstest and identify the button/axis IDs (printed on the console, the black window is there to be able to capture the events) of your controller. That means writing down what button you just pressed together with the corresponding line printed to the console (containing the IDs).
  3. The name of the controller is also required (as reported to Performous), so check the terminal output (near beginning) and look for a line starting with "SDL joystick:".
  4. See if you can make your instrument work by adding an entry (or modifying an existing one) to the controllers.xml as described above in the Changing mappings section.
  5. The final step is to come to IRC with all that information and if there is no problems, we add it to the next release.
  6. If axis configuration is needed and you feel adventurous, you can also try mapping them yourself - the code is in joystick.cc.

Xbox / Xbox360 Controllers

Your Linux kernel might not have a proper driver for XBox360 (or XBox) instruments, so in order for them to work, you must install a kernel module or a userspace driver. At least for the latter, you must also use instrument type forcing (the driver reports wrong names) and supply a custom button mapping. E.g. for Rock Band drums, start the userspace driver with

./xboxdrv --buttonmap green=dd,red=dl,yellow=dr,blue=du,orange=back,start=yellow,back=red,dd=green,du=blue,dl=red,dd=green

Note: After Xbox360 mapping improvements in 0.5.1, the custom mapping might not be needed (the given one applies for PS3-type). Testing needed.

For additional information about mapping the buttons with userspace driver, see http://github.com/Grumbel/xboxdrv/blob/master/README

An example spell with userspace driver

The following seems to work in Ubuntu 9.10, with performous 0.5.1, xboxdrv-linux-0.5.0 and Rock Band: Band in a Box. (A drum set and a guitar). The usb ID:s are the following:

user@host:~$ sudo lsusb | grep Harmo
Bus 002 Device 009: ID 1bad:0003 Harmonix Music Harmonix Drum Kit for Xbox 360
Bus 002 Device 007: ID 1bad:0002 Harmonix Music Harmonix Guitar for Xbox 360
user@host:~$ 

After compiling the xbox driver a separate userspace instance of the driver is started for each instrument:

user@host:~/xboxUserSpace/xboxdrv-linux-0.5.0$ sudo modprobe uinput
user@host:~/xboxUserSpace/xboxdrv-linux-0.5.0$ sudo ./xboxdrv --buttonmap green=du,red=dd,yellow=dr,blue=dl,orange=back,start=yellow,back=red,dd=green,du=blue,dl=red,dd=green --name "Harmonix Drum Kit for Xbox360" -D
user@host:~/xboxUserSpace/xboxdrv-linux-0.5.0$ sudo ./xboxdrv --device-by-id 1bad:0002  --type xbox360 --name "Harmonix Guitar for Xbox" -D

Please note, that you have to specify the --device-by-id for the guitar to make the --type xbox360 to take effect.

After these commands performous should be automatically detecting your instruments. If not, you could try adding the following to ~/.config/perfomous/config.xml.

 <entry name="game/instruments" type="string_list">
   <stringvalue>0:DRUMS_ROCKBAND_XB360</stringvalue>
 </entry>
 <entry name="game/instruments" type="string_list">
   <stringvalue>1:GUITAR_ROCKBAND_XB360</stringvalue>
 </entry>

Wii Dance Pad with the 3 in 1 Magic Joy Box adapter

It will be recognized as DANCEPAD_TIGERGAME

To use it you need to hold the + button of the dance pad 3 seconds to switch to the digital mode

PS2 Dance Pad with the EMS usb2 adapter

It will be recognized as DANCEPAD_EMS2

To use it you need to hold the up, select and start buttons of the dance pad 3 seconds to switch to the digital mode

Tested controllers

Instruments

Note: Most of these are not tested on Mac.

Console Game Instrument USB id Status (with version) Tester Notes
PS3 Guitar Hero III - Legends of Rock Official Guitar 12ba:0100 OK (0.5.1) Yoda [1]
PS3 Guitar Hero - Metallica Official Guitar 12ba:0100 OK (0.5.1) Lordheavy [2]
PS3 Guitar Hero World Tour Official Guitar 12ba:0100 OK (0.5.1) Yoda [3][4]
PS3 Guitar Hero 5

Band Hero

Official Guitar 12ba:0100 OK (>0.5.1) Darkmagister [3]
PS3 Guitar Hero World Tour Official Drumkit 12ba:0120 OK (0.5.1) Yoda
PS3 Guitar Hero 5

Band Hero

Official Drumkit 12ba:0120 OK (>0.5.1) Darkmagister
PS3 The Beatles RockBand Official Guitar (Bass design) 12ba:0200 OK (0.5.1) Yoda [5]
PS3 The Beatles RockBand Official Drumkit 12ba:0210 OK (0.5.1) Yoda
PS3 Rock Band Official Guitar 12ba:0200 OK (>=0.4.0) Aave
PS3 Rock Band Official Drumkit 12ba:0210 OK (>=0.4.0) Aave
PS2 Rock Band Hardware Bundle Hardware Bundle  ????:???? OK (0.5.0) h3ndrik [6]
Xbox360 Rock Band Official Guitar 1bad:0002 OK mostly (>=0.5.1) Aave [7]
Xbox360 Rock Band Official Drumkit 1bad:0003 OK (>=0.5.1) Aave [8]
Xbox360 Guitar Hero II X-plorer guitar 1430:4748 OK (>=0.5.0) zaddo
Xbox360 Rock Band Mad Catz Portable Drum Kit  ????:???? OK (>=0.5.1) fatdogem
Wii GHWT Official Guitar - OK (>=0.5.1) Esver [9][10]
Wii RockBand Official Guitar  ????:???? OK (>=0.5.1) fbert68 [11]
Wii RockBand Official Drumkit  ????:???? OK (>=0.5.1) fbert68 [12]

Dance pads

Console Game Name USB id Status (with version) Tester Notes
PC / PS2 - Play.com PS2 Controller Converter 0b43:0003 OK (>=0.5.2) Lordheavy [13]
PC / PS2 - RedOctane USB Pad  ? OK (>=0.4.0) Aave
Wii - TigerGame USB adapter 0926:2526 OK (>=0.5.1) Esver [14]

Microphones

Any Alsa capable devices should work under Linux (this includes PS2 Singstar mics, wireless PS2/PS3 mics, GHWT/GH5/BH mic, Rock Band mics, Wii mic)

Notes

  1. Tilt is not working (you can enable it with Start though)
  2. Need to be configured as: GUITAR_GUITARHERO
  3. 3.0 3.1 Tilt is not working and you should press Start instead of Select to activate it. Touch fret (solo) is not working
  4. Detection should be forced (otherwise guessed as drumkit)
  5. Tilt is working, Upper and lower frets are working
  6. Works out of the box incl. Whammy and tilt. USB-Id follows
  7. Solo frets are currently unusable, tilt untested. Also, see above for Linux notes.
  8. See above for Linux notes.
  9. Wii_Linux_Controller
  10. It's a Bluetooth controller, you need Bluetooth activated on you computer
  11. Should be forced as RockBand Guitar for PS3 for version <=0.5.1, autodetected for version > 0.5.1
  12. Should be forced as RockBand Drumkit for PS3 for version <=0.5.1, autodetected for version > 0.5.1
  13. Controller_Configuration#PS2_Dance_Pad_with_the_EMS_usb2_adapter
  14. Controller_Configuration#Wii_Dance_Pad_with_the_3_in_1_Magic_Joy_Box_adapter
Personal tools