Controller Configuration
From Performous
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:
- Find out your instruments name.
- Start Performous from command line and look for a line starting with "SDL joystick:".
- 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)
- On Windows:
- Copy the file to your User's config directory for editing.
- On Windows:
C:\Users\USERNAME\AppData\Roaming\performous - On Linux:
~/.config/performous
- On Windows:
- 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:
- Check if one of the existing mappings work, e.g. for a dance pad, try forcing each of the available DANCEPAD_* values in turn.
- If that didn't work, launch Performous with parameter
--jstestand 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). - 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:".
- See if you can make your instrument work by adding an entry (or modifying an existing one) to the
controllers.xmlas described above in the Changing mappings section. - 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.
- 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
- ↑ Tilt is not working (you can enable it with Start though)
- ↑ Need to be configured as: GUITAR_GUITARHERO
- ↑ 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
- ↑ Detection should be forced (otherwise guessed as drumkit)
- ↑ Tilt is working, Upper and lower frets are working
- ↑ Works out of the box incl. Whammy and tilt. USB-Id follows
- ↑ Solo frets are currently unusable, tilt untested. Also, see above for Linux notes.
- ↑ See above for Linux notes.
- ↑ Wii_Linux_Controller
- ↑ It's a Bluetooth controller, you need Bluetooth activated on you computer
- ↑ Should be forced as RockBand Guitar for PS3 for version <=0.5.1, autodetected for version > 0.5.1
- ↑ Should be forced as RockBand Drumkit for PS3 for version <=0.5.1, autodetected for version > 0.5.1
- ↑ Controller_Configuration#PS2_Dance_Pad_with_the_EMS_usb2_adapter
- ↑ Controller_Configuration#Wii_Dance_Pad_with_the_3_in_1_Magic_Joy_Box_adapter
