Comment 0 for bug 1624463

Revision history for this message
Alberto Salvia Novella (es20490446e) wrote : The default gamepad config is quite unusable

Using a generic PlayStation like game pad (Logitech Dual Action 2), the automatic configuration has major usability drawbacks:

- The analog range is too short, making movement hard. In Super Smash Bros, characters don't jump diagonally.

- C-buttons, instead of isolated as in the original console game pad, are placed in the second analog. This makes pressing buttons by accident a frequent issue. In Golden Eye camera movement prevents the game from been playable, where in Road Rash you frequently discard weapons permanently.

- Z-trigger and Left-trigger are placed both in the left triggers of the game pad. But you usually need to press both simultaneously, where that placement only allows pressing one button at a time.

The solution is this:

- Ignore the console's native analog range, and choose a wider one.

- Place C-buttons in the game pad triggers.

- Place the Z-trigger in the regular button's side, where pressing the rest is usable.

After testing thoroughly various configurations with multiple games, the following seems to be the one that responds better in any circumstance (config file):

# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "338,338"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "21200,21200"
# Digital button configuration mappings
DPad R = "axis(4+) hat(0 Right)"
DPad L = "axis(4-) hat(0 Left)"
DPad D = "axis(5+) hat(0 Down)"
DPad U = "axis(5-) hat(0 Up)"
Start = "button(9)"
Z Trig = "button(2)"
B Button = "button(0)"
A Button = "button(1)"
C Button R = "button(5)"
C Button L = "button(4)"
C Button D = "button(7)"
C Button U = "button(6)"
R Trig = "button(3)"
L Trig = "button(8)"
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: mupen64plus-input-sdl 2.5-3
ProcVersionSignature: Ubuntu 4.4.0-36.55-generic 4.4.16
Uname: Linux 4.4.0-36-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CurrentDesktop: Unity
Date: Fri Sep 16 17:36:29 2016
InstallationDate: Installed on 2013-01-25 (1329 days ago)
InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Release amd64 (20121017.5)
SourcePackage: mupen64plus-input-sdl
UpgradeStatus: Upgraded to xenial on 2016-08-05 (41 days ago)