Dolphin - Gamecube only sets up three controllers by default (4th not present)
-
Hello,
When starting any gamecube game with dolphin, the first three of my connected xbox 360 wireless controllers will map correctly on startup. These controllers work fine and everything appears normal in the GCPadNew.ini file. However, the 4th xbox 360 wireless controller will always be missing and must be manually mapped (or loaded from a profile) each and every time. Having all four controllers connected at boot makes no difference. Having no controllers connected at boot and then connecting each one at a time makes no difference. The most controllers I can ever have mapped on startup is three. Adding a fourth controller manually works with the front end, but must be done each time - and these settings are lost on exit each time.
Is there any way to fix this? Perhaps a loop has been misconfigured since the first three controllers work reliably?
I've also tried to hardcode the settings in GCPadNew.ini , but it is constantly overwritten and I cannot prevent it from being changed.
Note: I've also verified that this weird three controller behavior extends to the Wii also, with some slight differences. With wii, the first three controllers will work on startup, but the mappings are reset each time. Similarly to the gamecube, the config for the fourth controller is missing each time the emulator is restarted. The biggest difference being that the fourth controller for the Wii will never work, even when manually added. (When doing this, the settings do appear correctly in WiimoteNew.ini, but the controller still does not work). Another difference is that the default settings there are constantly overwritten (with different configs than what I used last). This means I have four controllers to correct on each game start.
Perhaps the temporary solution I need is some way to hardcode these config files and prevent them from being re-generated by the system each time. Any ideas on how to do this?
More details and steps to reproduce follow below. Thank you,
ym
Recalbox version (build) : 6.1.1 for PC (x64)
Hardware (Micro SD, Power Supply, etc.): Core 2 Duo E8500, ATI HD6950
Controller(s): Four Microsoft XBOX360 wireless coneected with one USB wireless adapter
Emulator used: DolphinIs the problem reproducible (how): Yes, steps follow:
- Map and Connect four controllers in recalbox frontend
- Start gamecube game, which launches dolphin
- Only 3 of the 4 controllers work...
- Check \recalbox\share\system\configs\dolphin-emu\GCPadNew.ini
See that the first three controllers have entries, but the 4th controller does not... - Copy one of the preceding entries for the fourth controller using the built in control-mapper in dolphin so that the 4th controller has been connected.
- Click Play
- Recheck \recalbox\share\system\configs\dolphin-emu\GCPadNew.ini
See that now all four controllers have entries, and the 4th controller now works !!! - Restart the emulator
- Recheck \recalbox\share\system\configs\dolphin-emu\GCPadNew.ini
See that the 4th controller is missing again, and no longer works - Scream loudly in anguish
The full config file (with all 4 controllers present) follows. Please be aware that [GCPad4] and everything below it are constantly being removed)
[GCPad1]
Device = evdev/0/Xbox 360 Wireless Receiver (XBOX)
Main Stick/Dead Zone = 25.000000000000000
C-Stick/Dead Zone = 25.000000000000000
Buttons/X =Button 1
C-Stick/Up =Axis 3-
C-Stick/Down =Axis 3+
C-Stick/Left =Axis 2-
C-Stick/Right =Axis 2+
Buttons/A =Button 0
Buttons/B =Button 2
Buttons/Z =Button 7
Triggers/L =Button 4
D-Pad/Up =Button 15
Buttons/Start =Button 9
D-Pad/Down =Button 16
Triggers/R =Button 5
D-Pad/Right =Button 14
Buttons/Y =Button 3
Main Stick/Up =Axis 1-
Main Stick/Down =Axis 1+
Main Stick/Left =Axis 0-
Main Stick/Right =Axis 0+
D-Pad/Left =Button 13
[GCPad2]
Device = evdev/1/Xbox 360 Wireless Receiver (XBOX)
Main Stick/Dead Zone = 25.000000000000000
C-Stick/Dead Zone = 25.000000000000000
Buttons/X =Button 1
C-Stick/Up =Axis 3-
C-Stick/Down =Axis 3+
C-Stick/Left =Axis 2-
C-Stick/Right =Axis 2+
Buttons/A =Button 0
Buttons/B =Button 2
Buttons/Z =Button 7
Triggers/L =Button 4
D-Pad/Up =Button 15
Buttons/Start =Button 9
D-Pad/Down =Button 16
Triggers/R =Button 5
D-Pad/Right =Button 14
Buttons/Y =Button 3
Main Stick/Up =Axis 1-
Main Stick/Down =Axis 1+
Main Stick/Left =Axis 0-
Main Stick/Right =Axis 0+
D-Pad/Left =Button 13
[GCPad3]
Device = evdev/2/Xbox 360 Wireless Receiver (XBOX)
Main Stick/Dead Zone = 25.000000000000000
C-Stick/Dead Zone = 25.000000000000000
Buttons/X =Button 1
C-Stick/Up =Axis 3-
C-Stick/Down =Axis 3+
C-Stick/Left =Axis 2-
C-Stick/Right =Axis 2+
Buttons/A =Button 0
Buttons/B =Button 2
Buttons/Z =Button 7
Triggers/L =Button 4
D-Pad/Up =Button 15
Buttons/Start =Button 9
D-Pad/Down =Button 16
Triggers/R =Button 5
D-Pad/Right =Button 14
Buttons/Y =Button 3
Main Stick/Up =Axis 1-
Main Stick/Down =Axis 1+
Main Stick/Left =Axis 0-
Main Stick/Right =Axis 0+
D-Pad/Left =Button 13
[GCPad4]
Device = evdev/3/Xbox 360 Wireless Receiver (XBOX)
Buttons/A =Button 0
Buttons/B =Button 2
Buttons/X =Button 1
Buttons/Y =Button 3
Buttons/Z =Button 7
Buttons/Start =Button 9
Main Stick/Dead Zone = 25.000000000000000
Main Stick/Up =Axis 1-
Main Stick/Down =Axis 1+
Main Stick/Left =Axis 0-
Main Stick/Right =Axis 0+
C-Stick/Dead Zone = 25.000000000000000
C-Stick/Up =Axis 3-
C-Stick/Down =Axis 3+
C-Stick/Left =Axis 2-
C-Stick/Right =Axis 2+
Triggers/L =Button 4
Triggers/R =Button 5
Rumble/Motor = Sine
D-Pad/Up =Button 15
D-Pad/Down =Button 16
D-Pad/Left =Button 13
D-Pad/Right =Button 14
-
I've discovered why the fourth controller did not work on the wii - for some reason that particular game had chosen to use the config for the gamecube controller rather than the wii controllers. When I chose a different game, the 4th wii controller work.
The behavior between the wii and the gamecube controllers now appears the same - so it is still broken and requires resetting all controllers each time a game is started.
Does anyone know how I can lock my control settings file so that dolphin will not constantly overwrite it? If I could do that, my problems would be solved. Thanks.
-
The answer in case anyone else is wondering.
To keep dolphin from auto-generating the controls for you map each time (for gamecube and wii respectively), put these lines into your system/recalbox.conf file:
##Keep dolphin emulator from overwriting custom config files
gamecube.configfile=dummy
wii.configfile=dummyNow put the controller map you want to use into these files:
/system/configs/dolphin-emu/GCPadNew.ini
/system/configs/dolphin-emu/WiimoteNew.iniI use dolphin to create one profile and then duplicated it within these .ini files. That worked great for my purposes.
I found the answer here. Apologies for the double post, but I did not find it before in my search. https://forum.recalbox.com/topic/14345/dolphin-emulatet-wiimote-settings-are-reseted-every-startup
-
@ym where exactly is the recalbox.conf file? I'm on the shield tv trying to fix this issue for my gamecube controllers.