• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Site › Dolphin Patches (Archive) v
« Previous 1 ... 3 4 5 6 7 Next »

New GCPad Plugin
View New Posts | View Today's Posts

Pages (17): 1 2 3 4 5 ... 17 Next »
Jump to page 
Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
New GCPad Plugin
03-05-2010, 11:57 AM (This post was last modified: 08-23-2010, 12:59 AM by Billiard26.)
#1
Billiard26 Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 2,653
Threads: 8
Joined: Feb 2010
Brick 
I have created my own GameCube controller input plugin because I was sick of the default gcpad plugin having various bugs... triggers not working correctly, wrong controller vibrating, deadzone not working right, code being a complete mess...

THESE PATCHES ARE OLD
Download the latest revision of Dolphin to get the newest version of New GCPad. Smile


Supported Sources:
- XInput (with rumble)
- SDL for other joysticks ( some rumble )
- DirectInput for keyboard/mouse
- Xlib for Linux keyboard ( untested )
- Extremely easy to add in additional sources

changes from binary release:
- Rumble should work now for both XInput and regular DirectInput (via SDL - Constant and Ramp forces )
- Added a Refresh devices button - don't have to restart Dolphin after attaching new controllers
- Game no longer hangs while setting controls in GUI
- Removed regex support - instead, using a simple "|button 1|button 2|" format

Patch 2 changes:
- Using Common::CriticalSection instead of wxMutex
- Profiles should now be properly deleted on Plugin destruction
- File::GetUserPath(D_CONFIG_IDX) is used
- Fixed up some comments, some are a bit better english now Tongue

Patch 3 changes:
- All dialogs are modal now ( just copied GCPad's code )
- Fixed the bug that GodRays mentioned ( SDL devices not showing up after using config without a game running )
- Maybe more minor stuff, can't remember

Patch 4 changes:
- Fixed up the GUI a bit (doesn't look as ugly now)
- Added diagonal adjustment option ( click detect button and move main stick in complete circles to automatically set the adjustment. far left is disabled )
- Added option to disable input when Dolphin is not focused.
- Other minor stuff

Patch 5 changes:
- Added DirectInput mouse support
- Added Windows keyboard LED output ( for emulating rumble by flashing {num,scroll,caps}lock )
- Removed a lot of inactive code ( SDL mouse/keyboard, OIS, DirectInput joystick )
- Attempted to add in Linux Xlib keyboard support ( not tested at all, but it's like 80% done )
- Code cleanup and other minor stuff

Patch 6 changes:
- Detect button works correctly for XInput devices again
- Setting mouse wheel to a control works better
- Stick modifiers work again
- Triggers have been renamed, you will have to remap them in this version

Patch 7 changes: ( I forgot missed the vcproj file in this patch, sorry Sad )
- SDL eliminated on windows build ( using DirectInput for joysticks now )
- DirectInput devices will be numbered better ( range from 0-n for each set of devices with the same name )
- Force Feedback should work much better ( x86 / x64 ) now that SDL is gone ( only Constant force temporarily )
- Many GUI changes ( hopefully more user friendly, still want to make some more changes )
- Added live previews for the sticks, deadzones, buttons, and triggers
- Removed some features that I decided the average user won't need (hold down, double tap time, if there is something you wish I didn't remove, tell me )
- Pretty much redid the half of the plugin that I didn't like, preparing it to support emulated wiimotes more easily
- Profiles will save to their own ini file now, also saving a profile won't be necessary for saving your config ( currently saved in "User/Config/Profiles/GCPad", might change )
- Name of the main config file has changed to GCPadNew.ini ( this will probably change again eventually Tongue )
- IniFile format has changed a bit so you will need to modify your old file's section names in a text editor, or just reconfig all your controls again Sad
- Many other code changes/cleanup

Patch 8 changes:
- Fixed bugs of patch 7. ( motor strength, stick modifier button )
- Improved the detect input function. It allows detection of multiple inputs now. ( don't have to manually select them in the list )
- When physically removing a gamepad while playing, all the buttons/axes/hats should go to an unpressed state rather than being stuck.
- included vcproj file in the patch, hopefully it's all good now. Tongue

Now that I have svn access I will probably not update this thread anymore, you can just grab the latest dolphin source to get this plugin. Tongue

Here's a screenshot from patch 8:
[Image: 2mg06lv.png]

New Patch (8):
Source:
.zip   GCPadNew8.zip (Size: 32.1 KB / Downloads: 4,341)
x64 Binary:
.7z   Plugin_GCPadNew.7z (Size: 507.53 KB / Downloads: 3,060)
Old Patches:
.7z   GCPadNew6.7z (Size: 369.79 KB / Downloads: 1,136)
.7z   GCPadNew5.7z (Size: 369.68 KB / Downloads: 546)
.7z   GCPadNew4.7z (Size: 371.52 KB / Downloads: 613)

I have included updated SDL 1.3 libraries. They may or may not be needed.
Find
03-05-2010, 02:19 PM
#2
boogerlad Offline
Above and Beyond
*******
Posts: 1,134
Threads: 21
Joined: Apr 2009
WOW! Nicely done. You should post an issue on google code and put this as a patch.
Find
03-05-2010, 02:52 PM
#3
Billiard26 Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 2,653
Threads: 8
Joined: Feb 2010
(03-05-2010, 02:19 PM)boogerlad Wrote: WOW! Nicely done. You should post an issue on google code and put this as a patch.
Thanks, I don't think it's quite ready to be a patch though. The GUI is pretty lame and buggy. Though I think the internal input device handling stuff is pretty organized. It doesn't have a bunch of "if (using_keyboard) else if (using_axis)" statement's like Dolphin's GCPad.
Find
03-05-2010, 10:13 PM
#4
fagoatse Offline
The Dungeon Keeper
****
Posts: 300
Threads: 2
Joined: Mar 2009
Profiles pretty please in either .ini or .xml =)
btw, does it auto detect gamepads?(yeah yeah im lazy...please don't say you are lazy nananana♪)
It'd would be better to improve the existing gcpad, ayu did outstanding job but it should've been tested moar.
[Image: FSM_Logo.svg]
F S M I believe.
Find
03-05-2010, 10:54 PM
#5
GodRays Offline
"Playable" ... rrright.
****
Posts: 298
Threads: 6
Joined: Feb 2010
Why didn't you fork the existing plugin ?

Anyway, I hope you improve this, so it can be included in the official builds, and maybe then you can improve the wiimote plugin ? Plz ?
Find
03-05-2010, 11:55 PM
#6
RupeeClock Offline
Dolphin Enthusiast
****
Posts: 445
Threads: 9
Joined: Dec 2009
Wow, this is just what I've been waiting for.

If this works with my actual Gamecube pad, hooked up by a Trio Linker Plus 2, and the shoulder triggers work as they should do in Mario Sunshine...YEEEEEES.

I can't wait to get home now!
[Image: e33MT.gif]
[Image: 971934.png]
Find
03-06-2010, 12:32 AM
#7
Jack Frost Offline
aka. BhaaL
**********
Developers (Some Administrators and Super Moderators)
Posts: 498
Threads: 3
Joined: Oct 2009
Mind showing us a patch, even if it is still messy? (Tho, GUI code is always messy Tongue)
Find
03-06-2010, 02:07 AM
#8
RupeeClock Offline
Dolphin Enthusiast
****
Posts: 445
Threads: 9
Joined: Dec 2009
I'm trying it out, and it seems it might work....but i can't seem to figure out how to configure the shoulder triggers.
Since I'm using a real GC pad, how should I be setting up the L/R, and L/R click buttons...?
[Image: e33MT.gif]
[Image: 971934.png]
Find
03-06-2010, 02:09 AM (This post was last modified: 03-06-2010, 02:18 AM by Billiard26.)
#9
Billiard26 Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 2,653
Threads: 8
Joined: Feb 2010
(03-05-2010, 10:13 PM)fagoatse Wrote: Profiles pretty please in either .ini or .xml =)
btw, does it auto detect gamepads?(yeah yeah im lazy...please don't say you are lazy nananana♪)
It'd would be better to improve the existing gcpad, ayu did outstanding job but it should've been tested moar.

I'll try to get profiles support added in later today. It would be such a pain to improve the existing gcpad plugin. The way it managed different types of sources was handled all wrong.

Quote:Mind showing us a patch, even if it is still messy? (Tho, GUI code is always messy Tongue)

I'll probably release the source after I add a few more features and try to work out some of the GUI bugs.
(03-06-2010, 02:07 AM)RupeeClock Wrote: I'm trying it out, and it seems it might work....but i can't seem to figure out how to configure the shoulder triggers.
Since I'm using a real GC pad, how should I be setting up the L/R, and L/R click buttons...?

I'm not sure how your gc controller is configured in windows.
If your triggers show up as axes, set up L and R as your trigger axes with no deadzone/full range. If windows also has the button under the trigger mapped as a button, you can try holding the trigger all the way in while clicking the L/R-Click and see if it maps Button <X>. If not, map your axes to L-Click and R-Click with a deadzone of like 95%.

If your triggers aren't detected as axes at all, Theres nothing you can do with an input plugin to fix that, (would have to get different drivers) you would have to set up L/R-Click as the triggers and have some other button for L/R. Or try setting the L/R-Click range to 0 and drag the double-tap to the middle, so you can double tap to do the standing still aiming watergun thing on mario sunshine.
Find
03-06-2010, 03:13 AM
#10
RupeeClock Offline
Dolphin Enthusiast
****
Posts: 445
Threads: 9
Joined: Dec 2009
They show up as buttons, hmm...

Well, that sucks, unless I can find a way to configure them into axis.
Otherwise, double tap it is.
[Image: e33MT.gif]
[Image: 971934.png]
Find
« Next Oldest | Next Newest »
Pages (17): 1 2 3 4 5 ... 17 Next »
Jump to page 


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode