Input SDL plugin. Compile and run on the OpenPandora. Include config for Pandora...
[mupen64plus-pandora.git] / source / mupen64plus-input-sdl / README
1 ===============================================================================
2 -------------------------------------------------------------------------------
3 Mupen64plus-input-sdl README                                               v2.0
4 -------------------------------------------------------------------------------
5 ===============================================================================
6
7 The latest documentation for this plugin can be found in wiki format at:
8
9 https://code.google.com/p/mupen64plus/wiki/KeyboardSetup
10 https://code.google.com/p/mupen64plus/wiki/ControllerSetup
11
12 The format and usage of this plugin's "mupen64plus.cfg" configuration options
13 can be found at:
14
15 http://mupen64plus.retrouprising.com/mediawiki/index.php?title=Mupen64Plus_Plugin_Parameters#Input-SDL
16
17 -------------------------------------------------------------------------------
18 Notes about usage of SDL input plugin:
19 -------------------------------------------------------------------------------
20
21  - If one of the enabled controllers has the "mouse" general-purpose config parameters set
22    to True, the plugin will hide the mouse cursor and 'grab' the mouse pointer.  The user
23    may press the Left Control and Alt keys together to toggle the mouse cursor on and off.
24  - If X/Y analog axes are mapped to keys, a plain keypress will simulate the joystick
25    being pressed all the way to the edge.  To decrease the amount of simulated joystick
26    deflection, the user may press Right Control, Right Shift, or Right Ctrl+Right Shift.
27
28 -------------------------------------------------------------------------------
29 Notes for supported joysticks for auto-configuration:
30 -------------------------------------------------------------------------------
31
32 1. Jess Tech Rumble Pad (Saitek Rumble)
33 The left D-pad is mapped to the D-pad; The joystick is mapped to the left joystick of the gamepad; the C buttons are mapped to the gampad's right joystick. Start button is mapped to start; the A-button is mapped to the lowest button on the gamepad's right front; the B-button to the left button (buttons marked 3 and 1 on my gamepad). The L and R buttons are mapped to the lower left and right rear triggers; the Z button is mapped to the left upper rear trigger. All other buttons are unused. 
34
35 2. Logitech Dual Action gamepad, Logitech Cordless Rumblepad 2:
36 The digital pad maps to the N64 d-pad.  The left analog stick maps to the N64 analog stick.
37 The right analog stick maps to the C-buttons,  and the buttons 2 and 1 map to A and B.
38 Button 4 is the Z trigger, and the top shoulder buttons map to the left and right N64 triggers.
39 Button 10 is the start button.
40 The bottom shoulder buttons select the memory pack or rumble pak.
41
42 3. Logitech Logitech(R) Precision(TM) Gamepad, Gravis GamePad Pro USB
43 I came up with what I see as one of the few decent configurations (SSB aside) since it allows access to everything but the dpad.
44 A is L1, B is R1, Z is L2, R is R2, L is select. C buttons are the four buttons, and the dpad acts as the joystick. Not the most orthodox, but it works well.
45
46 4. Microsoft X-Box 360 pad:
47 C button U (up) and C button R (right) are assigned to the Y and B buttons.
48 All 4 C buttons are assigned to the U and V axis (including the already configured up and right C buttons).
49 The Z button has been assigned to the left trigger and switching the rumble on and off can be done with the right trigger.
50 Because there are no other buttons left I decided to use the button click behavior of the left joystick to switch Mempak on and off.
51
52 5. MP-8866 Dual USB Joypad:
53 This is a USB adapter for PlayStation controllers (2).
54
55 D-Pad:    hat(0)
56 L-Stick:  x:0, y:1
57 R-Stick:  x:2, y:3
58 Triangle: button(0)
59 Circle:   button(1)
60 Cross:    button(2)
61 Square:   button(3)
62 L2:       button(4)
63 R2:       button(5)
64 L1:       button(6)
65 R1:       button(7)
66 Start:    button(8)
67 Select:   button(9)
68 L3:       button(10)
69 R3:       button(11)
70 Note:  This is when analog mode is selected. If analog is off then D-Pad becomes axes 0/1 and both sticks are disabled (including L3/R3).
71
72 6. N64 controller:
73 All controls are mapped to their proper place on the N64 controller with an Adaptoid or custom hardware with Gamecon driver.
74 Rumble and Memory packs can be selected with the 'r' and 'm' keys, respectively.
75
76 7. Playstation 3 Controller:
77 Left analog stick - analog stick
78 Right analog stick - C-pad
79 D-Pad - D-Pad
80 Cross - A
81 Square - B
82 L1 / R1 - L / R
83 L2 - Z
84 Start - Start
85
86 8. SAITEK P880:
87 The gamepad doesnt have enough keys to real assign all buttons. The second 
88 analog stick can be used as button by pushing him insight.
89
90 General Configuration:
91 Digital Pad was used as N64 digital pad, First analog stick was used as N64 
92 Analog stick. The red button was used as N64 Start button. L and R was used 
93 for N64 L and R. Second analog stick axes was used for N64 C buttons and 
94 second "analog stick button" was used for C-down. The first column of keys was 
95 used for A and B and the second and third row was used for C-Buttons - except 
96 for the Button next to the A button which would be C-Down but got the Z 
97 button.
98
99 9. Xbox Gamepad (userspace driver)
100 I created an Input Config for a Xbox 360 controller running with
101 xboxdrv on a Linux system (http://pingus.seul.org/~grumbel/xboxdrv/).
102
103 Z = Left shoulder button
104 L = Left shoulder trigger
105 A = A Button
106 B = X Button
107
108 everything else should be obvious.
109
110 Unfortunately, you will also have to make some configuration to
111 xboxdrv to make this work properly. xboxdrv has to be started with the
112 following config file. The "-as-button" options make sure that the D-
113 Pad and Trigger are emulated as buttons and the deadzone options make
114 the C buttons work much better.
115 The guide=KEY_ESC allows you to quit the emulator by pressing the
116 guide key on the controller. This is obviously just nice-to-have and
117 not actually neccessary for the config to work.
118
119 [xboxdrv]
120 silent=true
121 trigger-as-button=true
122 dpad-as-button=true
123
124 [ui-buttonmap]
125 guide=KEY_ESC
126
127 [axismap]
128 x2^deadzone:27000
129 y2^deadzone:27000
130
131 10. Saitek Cyborg V.3 Rumble Pad (aka Saitek PS2700)
132 Honestly, it's one of the best pads that I've used in a long time, so thought I'd contribute this quick config. Basically, Dpad and Analog sticks are unchanged, C-buttons are mapped to the right analog stick, L-R triggers are L1 and R1, Z is mapped to R2, A + B are mapped to X and Square, respectively, start is mapped to the Home button, and Triangle, Square, L2, Start, Select, and the Analog triggers are unused, since it's not intuitive to use them for what's left.
133
134 11. Default Keyboard interface:
135 Analog Pad is "Arrow Keys"
136 C Up/Left/Down/Right are "I", "J", "K", "L"
137 DPad Up/Left/Down/Right are "W", "A", "S", "D"
138 Z trig is "z" key
139 L and R trigs are "x" and "c"
140 Start is "Enter" ("Return")
141 A is "left shift"
142 B is "left control"
143 Select Mempack = ","
144 Select Rumblepack = "."
145
146