Project

General

Profile

Actions

Emulator Issues #2437

closed

GCPad - Many Issues

Added by Billiard26 about 14 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
Controls
% Done:

0%

Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
Yes
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What steps will reproduce the problem?

  1. Start Dolphin
  2. Use GCPad
  3. Notice how much GCPad sucks?

What is the expected output? What do you see instead?

  • The triggers are expected to work properly.
  • Rumble is expected to work properly.
  • The source code is expected to be organized and easy to modify.

What version of the product are you using? On what operating system?

  • Any version with GCPad, Windows/All.

Please provide any additional information below.

  • GCPad is just njoy and that other input plugin thrown together with a
    bunch of if statements. That's not cool. Here's a patch for a complete
    replacement plugin for GCPad.

Download:
http://forums.dolphin-emu.com/attachment.php?aid=2798
Thread:
http://forums.dolphin-emu.com/thread-7818.html
Screenshots:
http://i42.tinypic.com/33xvptl.png
http://i40.tinypic.com/4h9ojd.png

Supported Sources: ( not just thrown together with a bunch of if statements )

  • XInput (with rumble)
  • SDL for joysticks (with rumble)
  • DirectInput for keyboard/AND mouse
  • Xlib for Linux keyboard ( completely untested, but like 80% done )

Features:

  • multiple devices mapped to each gamepad
  • map buttons to axis - AND axis to buttons
  • Individual dead zone for each input / direction
  • map multiple inputs to the same control, AND/OR modes
  • hold down time ( 0 - 400ms ) - useful when you want A+B to grab while A
    and B are also attacks, set hold down time of a few milliseconds for A and B
  • adjustable range for each input
  • modifier for analog sticks - either increase or decrease the default
    range of the sticks
  • double tap time ( 0 - 400ms ) - useful for walking/running when playing
    ssbm/b on a keyboard or dpad. set range to around half, when you double tap
    you will get the full range instead.
  • separated trigger-analogs and trigger-clicks - set L/R-Click to the same
    button with a high dead zone if you want to use actual analog triggers -
    can set R-Click range to 0 and enable double tap to have a full trigger
    pull when you double tap - works alright on mario sunshine
  • profiles - basic load, save, and delete - currently they are all saved in
    the main ini file, i'm going to change this.

Bugs:

  • In this patch, I accidentally put the SDL devices before the XInput, so
    the detect button picks up the SDL device rather than the XInput like it
    should. I've got it fixed now, only takes half a second to swap 2 lines of
    code.
  • Setting the mouse wheel to an input can get a little funky. I have that
    fixed in my code.
  • I accidentally disabled the main stick modifier in this new patch. It is
    fixed on my end.

TODO:

  • GUI code is a mess
  • The class "MasterControl" was kinda a joke, I renamed it DeviceInterface now
  • Currently, the code would need #ifdefs added to allow compiling without a
    GUI, but it wouldn't be difficult.
  • I have only tested on Windows. ( needs a few modifications for non-windows )
  • It uses SDL for joysticks, but keyboard input is using DirectInput/Xlib,
    so there would be no keyboard in OS X. This could be added in pretty easily
    by someone who knows how to use the OS X keyboard.
  • I am re-doing some of the code so I can integrate the plugin with
    emulated wiimote support. Then I will merge the plugin with Dolphin,
    eliminating input plugins.
Actions #1

Updated by Billiard26 about 14 years ago

New Patch Download:
http://forums.dolphin-emu.com/attachment.php?aid=2827

Fixed the 3 Bugs that I mentioned in my original message. Currently, there are no
issues that I know of, on Windows.

Actions #2

Updated by BhaaL about 14 years ago

  • Status changed from New to Accepted
  • Issue type set to Feature request
  • Category set to controls
  • Relates to usability set to Yes
Actions #3

Updated by Billiard26 about 14 years ago

Another new patch at http://forums.dolphin-emu.com/attachment.php?aid=2916

Check the thread link in my first message for a list of all the changes.

Actions #4

Updated by Billiard26 about 14 years ago

  • Status changed from Accepted to Fixed
Actions

Also available in: Atom PDF