Dolphin, the GameCube and Wii emulator - Forums

Full Version: New GCPad Plugin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
(03-08-2010, 12:36 AM)GodRays Wrote: [ -> ]When using your SDL.dll, I'm getting some squeaking sounds from my motherboard (?) , like I'm pressing too many buttons or something. It happens also in the default gc plugin when using the newer SDL.dll, not just ingame.

I put back the original SDL.dll and using the default gcpad plugin, it's all fine. And rumble works.

I couldn't get rumble to work with your plugin (what should I select ? that "set devices for all controls" does nothing when I select my pad)
I'm using a Thrustmaster 3-in-1 dual trigger pad

I don't know about the squeaking. Tongue Unlike the default gcpad, each control can use a different device in my plugin. "Set device for all controls" will make all the controls use the same device.
Like I said in my first post, rumble only works with XInput currently.

I'm working on getting rumble working for other pads.
I have tried different methods, but my controller will never rumble with x64. I'm not sure if its my controller and it's drivers or directinput just failing with force feedback on x64.
It would be cool if someone with windows x64 and a normal force feedback controller could test this exe and tell me the results. DOWNLOAD
It should make your controller rumble when you hit the enter key.
It crashes with my controller, while the 32bit version works fine.
Does nothing here (win7 x64), exits normally :
Code:
joy count: 1
joystick **with ForceFeedback** support.
press enter to start force


press enter to stop force


press enter to quit

Strange. Also, how do I select Xinput ? :-D

Can you release a XInput-only version to get rid of SDL.dll dependency and the compatibility problem with the default plugin ?
(03-08-2010, 10:49 AM)GodRays Wrote: [ -> ]Strange. Also, how do I select Xinput ? :-D

Can you release a XInput-only version to get rid of SDL.dll dependency and the compatibility problem with the default plugin ?

Thanks for testing that, could you try this one ? Tongue DOWNLOAD

To use XInput, just press the detect button, then press a button on your controller. If that isn't working (it should), you can click the list button, choose your device, then hit the set button.

I could release an XInput only version. I'm working on changing it to use OIS for joysticks/keyboard/mouse to eliminate the SDL/SDL.dll. I'm just having some problems initializing OIS without a HWND.
Success ! It worked. Actually, it vibrated on my desk and scared the shit out of me (it's late at night here)

Code:
joy count: 1
joystick **with ForceFeedback** support.
Force =  1 Type = 1
Force =  2 Type = 2
Force =  3 Type = 7
Force =  4 Type = 8
Force =  5 Type = 12
press enter to start force


press enter to stop force


press enter to quit
(03-07-2010, 08:35 AM)Billiard26 Wrote: [ -> ]If one of the Dolphin devs tells me they could use it in the official project I will release the source and make a patch, but I'm not going to bother working my plugin into the Dolphin source if it might not even be accepted.

I didn't test it yet (since its binary only, I'd like to see a patch first Tongue), but alone from screenshots and the other replies, it's pretty likely that it will get in - provided you want that.
GCPad was a good move (eliminating other plugins that were broken in one or the other way), but isnt the golden cow after all. I'm pretty sure other devs will also agree with me (patch patch!)
yeah, they should! Big Grin
amazing plugin, very nice job, solved all issues i was having
Looks interresting. Just had a brief look at the .patch file, some random thoughts about it, in no particular order:

- Those double pointers look a bit odd tho Tongue
- And whats with the nested classes, up to 3 levels? That could have been solved simpler i think. And at least MasterControl could (should?) be a Namespace instead.
- Did you forget a delete pi; inside ~Plugin?
- Proper way for the config should be File::GetUserPath(D_CONFIG_IDX), so it works on all OSes.
- Instead of wxMutex, any problem with using what Common defines? CriticalSection for example?
- Did you have to reinvent the wheel with your IniFile class? Couldnt you just have used (or extended) the one we already have?
- For the Modal stuff, you should probably call ShowModal anyways, even if it doesnt work - use a pattern similar to the one we have in other plugins, so its easy to find and change if we ever find out how to fix it properly.

I'll try it out later and see how it flys Smile
(03-13-2010, 03:37 AM)Jack Frost Wrote: [ -> ]Looks interresting. Just had a brief look at the .patch file, some random thoughts about it, in no particular order:

- Those double pointers look a bit odd tho Tongue
- And whats with the nested classes, up to 3 levels? That could have been solved simpler i think. And at least MasterControl could (should?) be a Namespace instead.
- Did you forget a delete pi; inside ~Plugin?
- Proper way for the config should be File::GetUserPath(D_CONFIG_IDX), so it works on all OSes.
- Instead of wxMutex, any problem with using what Common defines? CriticalSection for example?
- Did you have to reinvent the wheel with your IniFile class? Couldnt you just have used (or extended) the one we already have?
- For the Modal stuff, you should probably call ShowModal anyways, even if it doesnt work - use a pattern similar to the one we have in other plugins, so its easy to find and change if we ever find out how to fix it properly.

I'll try it out later and see how it flys Smile

Thanks for commenting.
Yeah, the namespaces could be changed.
In ~Plugin, "delete pi;" wouldn't be needed, it's not a pointer. But I just realized that I did forget to delete the Pads' contents in the profiles map.
I forgot to look for the function File::GetUserPath to get the config path.
Part of the reason I didn't use a CriticalSection from Common is because I released a binary only version. I didn't want to have any GPL code and violate the GPL. Then I didn't bother changing over when making this patch. I used a mutex rather than a critsection so I could use TryLock in the PadStatus function, so the game doesn't hang while using the GUI. edit: I see Common::CriticalSection has a TryEnter
Again, I didn't want to use GPL code for the ini file.
When I used ShowModal, the window would not show up at all. I was forced to use Show. I tried using the methods in the other plugins, but they didn't seem to work. I believe I have a "TODO" in every place that I should be using ShowModal.

I'm going to make some changes and upload another patch. OK, edited first post.

sickofit

i didnt test the patch but im using your plugin and its great! fixed some issues for me. keep on working. id love to see your plugin as default gc plugin one day Wink
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17