"Dolphin Core" analog gamecube triggers?


#1

Is there any way to use the analog Shoulder Buttons on Xbox 360/Xbox One Controller to emulate the analog triggers?

Or can i just use the official WiiU “Smash Bros” USB Adpater+original Gamecube-Controller ? or at least an 3rd party device like the mayflash gamecube adapter ?

Standalone Dolphin has support for all types but with Lakka/RA i can’t figure out… :frowning:

otherwise the core looks very nice and usable to me and this may be the last thing whats getting me away from playing the sh*t out of mario sunshine/party :stuck_out_tongue:


#2

We unfortunately don’t support analog triggers currently but we may go ahead and make all of the buttons analog-capable, which would fix a few other problems in the process.


#3

thank you for the info. I am totally pleased that this will be fixed someday. Thank you very much.


#4

Hi I’ve submitted a patch for analog trigger support. I’ve implemented it into the beetle-Saturn core, but I think it’s probably a fairly easy thing to port to Dolphin.


#5

Did anything come of this? Nearly 8 months later and I still can’t find any resources on doing this, you’d think it would be top priority to at least support the basic controls of the platform.


#6

Now it should be possible. Also reicast implemented the feature


#7

What about the button click when fully pressed? Dolphin has an adjustable threshold % to adjust when this registers. I think it defaults to 90% in Dolphin, but I started up Mario Sunshine for the first time in Retroarch for windows and any press of the triggers is registering as the full button click. Is there anyway to adjust this threshold in RA?


#8

Retroarch supports analog triggers, however it needs to be properly implemented in the core, which is probably not the case in the dolphin core (not sure many core besides reicast and kronos support this currently).


#9

I need a developer because I believe I know the root cause, but I cannot do a PR (missing dev environment for win currently)

The issue is pretty simple. Dolphin defines two types of shoulder buttons. The 100% pressed shoulder buttons (L and R) and the analog shoulder buttons (L-Analog and R-Analog) Definition here: https://github.com/libretro/dolphin/blob/master/Source/Core/Core/HW/GCPadEmu.cpp (see “static const char* const named_triggers”)

However the libretro port from dolphin missed to port the analog shoulder buttons to the input configuration.

In the “static struct retro_input_descriptor descGC” the L-Analog and R-Analog have to be added. Currently only the L and R shoulder buttons (100% pressed) are in the struct. Therefore in the menu of retroarch the L and R shoulder buttons can be selected but they work as 100% pressed analog buttons. If the L-Analog and R-Analog button can be added to the struct for the Gamecube Descriptor, the user could map the L-Analog shoulder button or the R-Analog shoulder button from dolphin to the libretro analog triggers.

Normally this should fix the issue with the analog gamecube triggers.


#10

The code which must be added into the struct should look like this:

{0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_BUTTON, RETRO_DEVICE_ID_ANALOG_X, “L-Analog”}

{0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_BUTTON, RETRO_DEVICE_ID_ANALOG_Y, “R-Analog”}

Moreover the Select in the struct can be deleted because the Gamecube joypad had no select.


#11

Ok. I added the changes via github directly. :wink: So someone has to review and merge the PR.

@hunterk @flyinghead


#12

That’s amazing man. I can’t wait to see this get implemented. Now if we can just get it to boot the Gamecube BIOS sequence, I can stop using Dolphin standalone for GC games entirely.


#13

Tested now several games and analog triggers are working perfectly since build ecd9321. Thanks to @flyinghead for the better implementation and PRs.


#14

nevertheless, your PR is very much appreciated.