Dolphin/Gamecube controllers?

Hello there. I just found EmuELEC a few days ago by accident and so far I’m LOVING it! I even bought two Logitech F710 to enjoy games! So first of all, I would like to send a huge THANK YOU to the contributors for making this project possible.

That being said, I began to research the limits of the platform, because as a programmer, I always like to play with config files and stuff. I discovered that there is some “partial” support for GC/Wii games through Dolphin.

Now, I know there’s no official support for Dolphin/GameCube and Wii games, or at least that’s what I have deduced after reading the wiki, the forums, the net in general… Although I remember seeing on an issue that 4.2 would have some automatic configs for Dolphin but anyways, by now all has to be done manually, and that’s fine by me.

Also, I know that not all devices can run GC recently, but as an owner of a GT KING PRO, I decided to give it a try.

It seems to me that there’s almost no info on how to configure this. I downloaded Dolphin packages within RetroArch with the Content Downloader option (or whatever is called, can’t remember exactly now). I placed roms inside gamecube folder within roms folder. All is good, game is running smoothly but, no controller input whatsover. Luckily enough, Hotkey+Start exits the game (without double press check this time).

Now, I’ve found a couple of post in other forums talking about a mapping config file for the controller. I don’t know if rules allow me to post them here, will do if allowed. But in short, I still don’t know these:

1 - Where to put this mapping file?
2 - How to configure it? I have to specify my controller dev name and I have no idea what would that be
3 - How to map buttons? I don’t know my keycodes or what the mapping file expects me to put for button mapping

Also, hotkeys do not work, pressing R3+L3 for bringing up RetroArch menu does not work. Is this normal?

Thanks in advance.

1 Like

SSH in and the file should be located at:
~/.config/emuelec/configs/dolphin-emu/GCPadNew.ini

My sample contents is below. You get the button values by when controller is connected to ES.

For your controllers the device and button values can be obtained from here:

If you dont know the button values I think they can be obtained from the utility xinput. In a linux setup in type “xinput” it will then list the devices, then enter “xinput test <device_id>”, and any controller button pressed it should show the correct code.
UPDATE: emuelec doesnt have xinput so you will have to do it on a linux box.

@shantigilbert can we get the xinput utility or is there an alternative solution to get the map values?

GCPadNew.ini

[GCPad1]
Device = evdev/0/Sony PLAYSTATION(R)3 Controller
Buttons/A = Button 14
Buttons/B = Button 13
Buttons/X = Button 15
Buttons/Y = Button 12
Buttons/Z = Button 9
Buttons/Start = Button 3
Main Stick/Up = Axis 1-
Main Stick/Down = Axis 1+
Main Stick/Left = Axis 0-
Main Stick/Right = Axis 0+
Main Stick/Modifier = Shift_L
Main Stick/Modifier/Range = 50.000000000000000
C-Stick/Up = Axis 3-
C-Stick/Down = Axis 3+
C-Stick/Left = Axis 2+
C-Stick/Right = Axis 2-
C-Stick/Modifier = Control_L
C-Stick/Modifier/Range = 50.000000000000000
Triggers/L = Button 10
Triggers/R = Button 11
D-Pad/Up = Button 4
D-Pad/Down = Button 6
D-Pad/Left = Button 7
D-Pad/Right = Button 5
[GCPad2]
Device = evdev/1/Sony PLAYSTATION(R)3 Controller
Buttons/A = Button 14
Buttons/B = Button 13
Buttons/X = Button 15
Buttons/Y = Button 12
Buttons/Z = Button 9
Buttons/Start = Button 3
Main Stick/Up = Axis 1-
Main Stick/Down = Axis 1+
Main Stick/Left = Axis 0-
Main Stick/Right = Axis 0+
Main Stick/Modifier = Shift_L
Main Stick/Modifier/Range = 50.000000000000000
C-Stick/Up = Axis 3-
C-Stick/Down = Axis 3+
C-Stick/Left = Axis 2+
C-Stick/Right = Axis 2-
C-Stick/Modifier = Control_L
C-Stick/Modifier/Range = 50.000000000000000
Triggers/L = Button 10
Triggers/R = Button 11
D-Pad/Up = Button 4
D-Pad/Down = Button 6
D-Pad/Left = Button 7
D-Pad/Right = Button 5

exiting dolphin, should HOME+START, but you need the latest dev version to read the SDL gamecotnrollerdb.text if your controller is not picked up by default.

Yup, finally got it working, thanks! I was going crazy about the mapping.

Is there a way to bring up the RetroArch interface with L3+R3? Or the only hotkey working is HOME+START? Is there any GUI configs? I guess not, neighter a fancy way to map buttons through interface…

Sorry its the HOTKEY+START buttons you have set in emulation station, and it’s fixed in gptokeyb I think.

Oh yeah and here is the GC button mapping for reference:
GC Controller Layout

Yes, HOTKEY+START works fine. What I mean is, there’s no fancy RetroArch (or whatever) emulator GUI, right? And no fancy GUI mapping for controller I guess… The config from the link worked for my controller, but on the game menu (RE2) seems buggy, like the down button is pressed all the time… I guess I’ll plug the controller to my linux, then read the code and try to build an ini file myself…

Anyway, If you got any more useful info, please post!

Thanks!

Dolphin is not a Retroarch emulator, so no, there is no GUI for Dolphin

Sooo, after some trial and error, here’s my own GCPadNew.ini for two Logitech F710, with comments to understand it better:

; Controller 1 settings section

[GCPad1]

; First connected F710
Device = evdev/0/Logitech Gamepad F710

; Sensivity settings for Main Stick (GC) or left stick (F710)
Main Stick/Dead Zone = 25.000000000000000

; Sensivity settings for C-Stick (GC) or right stick (F710)
C-Stick/Dead Zone = 25.000000000000000

; D-Pad buttons
D-Pad/Up = Axis 7-
D-Pad/Down = Axis 7+
D-Pad/Left = Axis 6-
D-Pad/Right = Axis 6+

; Button B
Buttons/X = Button 1

; Button A
Buttons/A = Button 0

; Button X
Buttons/B = Button 2

; Button Y
Buttons/Y = Button 3

; Button Start
Buttons/Start = Button 7

; Left Stick
Main Stick/Up = Axis 1-
Main Stick/Down = Axis 1+
Main Stick/Left = Axis 0-
Main Stick/Right = Axis 0+

; Right Stick
C-Stick/Up = Axis 4-
C-Stick/Down = Axis 4+
C-Stick/Left = Axis 3-
C-Stick/Right = Axis 3+

; Button LB
Triggers/L = Button 4

; Button RB
Triggers/R = Button 5

; Button RT
Buttons/Z = Axis 5+

; Unused F710 buttons: Back (Button 6); LT (Axis 2+)



; Controller 2 settings section

[GCPad2]

; Second connected F710
Device = evdev/1/Logitech Gamepad F710

; Sensivity settings for Main Stick (GC) or left stick (F710)
Main Stick/Dead Zone = 25.000000000000000

; Sensivity settings for C-Stick (GC) or right stick (F710)
C-Stick/Dead Zone = 25.000000000000000

; D-Pad buttons
D-Pad/Up = Axis 7-
D-Pad/Down = Axis 7+
D-Pad/Left = Axis 6-
D-Pad/Right = Axis 6+

; Button B
Buttons/X = Button 1

; Button A
Buttons/A = Button 0

; Button X
Buttons/B = Button 2

; Button Y
Buttons/Y = Button 3

; Button Start
Buttons/Start = Button 7

; Left Stick
Main Stick/Up = Axis 1-
Main Stick/Down = Axis 1+
Main Stick/Left = Axis 0-
Main Stick/Right = Axis 0+

; Right Stick
C-Stick/Up = Axis 4-
C-Stick/Down = Axis 4+
C-Stick/Left = Axis 3-
C-Stick/Right = Axis 3+

; Button LB
Triggers/L = Button 4

; Button RB
Triggers/R = Button 5

; Button RT
Buttons/Z = Axis 5+

; Unused F710 buttons: Back (Button 6); LT (Axis 2+)

Buttons and axis numbers were found by typing jstest /dev/input/js0 directly on EmuELEC through SSH (thanks @shantigilbert). The provided .ini file/settings in this thread by @Langerz82 had different button number codes for some reason and my controls were going crazy.

So, to sum up, I can load and play GC games, but I don’t have any fancy stuff like savestates and such, is that correct? Also, few questions about Dolphin:

1 - Is there one or two memory cards?
2 - Any way of making the fps counter bigger?
3 - Some BGM does not play, is there a fix or a switch somewhere, or is it just how bad it performs?
4 - Any recommended settings of the dolphin.ini for best performance?

Thanks!

2 Likes

1 - Is there one or two memory cards?
2 - Any way of making the fps counter bigger?
3 - Some BGM does not play, is there a fix or a switch somewhere, or is it just how bad it performs?
4 - Any recommended settings of the dolphin.ini for best performance?

@Langerz82

Here was my settings awhile ago:
https://gist.github.com/Langerz82/4d58661a51d54383a3813f59d0f8361b

You may have to fiddle with a few settings. Expect fps drops sometimes from what I’ve experienced so far. And some games the clock rate is f**ked.

What do you mean a while ago? You don’t play GC anymore?

I copied over the settings I think, when I changed EE versions.

OK, I’ll give it a try. Thanks anyway!

I am going to create a script similar to set_advmame_joy.sh that attempts to auto generate the input config values to make it much easier for everyone. :slight_smile:

1 Like

Thats some great news!

Yeah man it’s sweet and it’s good practice for me learning linux scripting. I’m nearly finished just got to make sure it works ok! :smiley:

Here is the draft PR. It might still have bugs and is a work in progress.

2 Likes