Project

General

Profile

Actions

Emulator Issues #10954

closed

GameCube controller rumble very weak in-game unless motor is configured twice

Added by shoegazer over 6 years ago. Updated almost 6 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-9299

Description

In GameCube controller settings, selecting any motor (e.g. "Sine") by itself, then launching any game, observe that rumble is very weak. However, if you configure a second motor using "OR", even if it's the same one twice (e.g. "Sine | Sine"), then go back in-game, rumble works normally (comparable to an actual GameCube controller).

This issue was tracked to build 5504, specifically this commit: https://github.com/dolphin-emu/dolphin/commit/ba87a503389a6db8e4ddae5a87f9d1ebc52db46a. Rumble works as expected with any build prior to that.

Tested with Linux/evdev, kernel 4.13 and 1st- and 2nd-generation DS4 pads, though spycrab0cloud also confirmed this to be an issue with other pads. Tested with SSBM and other GC games.

Note that this is NOT related to the other major rumble-related bug, though having that one fixed would have made discovering this one easier: https://bugs.dolphin-emu.org/issues/10441


Related issues 1 (0 open1 closed)

Related to Emulator - Emulator Issues #11465: With Mayflash 2-port GameCube adapter and genuine GameCube controllers, rumble works in Windows but not in DolphinFixedBilliard26

Actions
Actions #1

Updated by Billiard26 almost 6 years ago

  • Related to Emulator Issues #11465: With Mayflash 2-port GameCube adapter and genuine GameCube controllers, rumble works in Windows but not in Dolphin added
Actions #2

Updated by Billiard26 almost 6 years ago

  • Status changed from New to Work started
  • Assignee set to Billiard26
Actions #3

Updated by Billiard26 almost 6 years ago

  • Status changed from Work started to Fix pending
Actions #4

Updated by Billiard26 almost 6 years ago

  • Status changed from Fix pending to Fixed
  • Fixed in set to 5.0-9299
Actions #5

Updated by shoegazer almost 6 years ago

Thanks, Billiard. Tested and working mostly fine.

A few observations though:

  1. Attempting to select rumble settings of a second controller does not appear to work - Dolphin does not respond to mouse clicks. For example when I click "Sine | Sine" for controller 2 (which I was trying to do to revert back to a single-Sine setting), Dolphin doesn't respond as it does with Controller 1.

  2. Dolphin doesn't behave properly when setting rumble strength from a higher value to a lower value and then back to the higher value. For example if I change strength from 250 > 100 > 250, Dolphin remains at 100 strength.

  3. Rumble strength at lower values seems too low. For example at 100 (and single "Sine"), I can barely feel anything. I recall much older versions of Dolphin where strength seemed better apportioned.

Actions #6

Updated by Billiard26 almost 6 years ago

The "Sine" parameters have changed so the rumble strength might feel different. You could try "Constant".
Controller selection is still somewhat broken in the pad dialog. Dolphin doesn't actually switch controllers when you select one in the device drop down. You have to make it detect an input to perform the actual switch (this is a separate issue) and maybe that's making it seem like a 2nd controller doesn't work.
Also, the "Apply" button doesn't work so that can make things confusing but the "Range" setting definitely works.
Rumble strength higher than 100 doesn't exist. 100 is 100%. It's not surprising that 250 feels the same as 100. :)

Actions #7

Updated by shoegazer almost 6 years ago

The "Sine" parameters have changed so the rumble strength might feel different. You could try "Constant".

Thanks, Billiard. There's no "constant" setting though - only Sine, Square, Triangle and LeftRight. Which one is the most accurate rumble setting for a GC controller motor? And would it make sense to only have that one setting, or are the four selections intended to accommodate differences in controllers mapping to the GC pad?

Controller selection is still somewhat broken in the pad dialog. Dolphin doesn't actually switch controllers when you select one in the device drop down. You have to make it detect an input to perform the actual switch (this is a separate issue) and maybe that's making it seem like a 2nd controller doesn't work.

Good to know, I'll need to remember that.

Also, the "Apply" button doesn't work so that can make things confusing but the "Range" setting definitely works.

Also good to know. Can I assume that the "OK" button still works even if "Apply" doesn't?

Rumble strength higher than 100 doesn't exist. 100 is 100%. It's not surprising that 250 feels the same as 100. :)

Actually it doesn't - as I mentioned above, 100 is much too faint (almost imperceptible), whereas 250 feels about right. I'm talking about the "Range" slider, which is confusing to me anyway: range is from -500 to 500, so what exactly would "100%" of an actual gamecube controller's strength be, or would it depend on what controller is used? Also, why would anyone want to set the controller rumble to -500 (or anything negative for that matter?).

Actions #8

Updated by Billiard26 almost 6 years ago

Sorry, shoegazer, I assumed you were using DirectInput on Windows which is where most of my changes applied. I didn't touch the effect parameters of evdev on Linux or how the range slider works. The only change you should see is that mapping a motor once works now. But I'm going to take a look at the evdev code now for anything suspicious.

Edit: Some things do look a bit funky that I'm going to try to clean up.

Actions #9

Updated by shoegazer almost 6 years ago

Hey, no worries. You are right about mapping the motor - I've confirmed it works when set only once now. Thanks for looking into evdev. :)

Actions #10

Updated by shoegazer almost 6 years ago

I noticed this PR related to this issue was merged - nice work and thanks again Billiard.

Can we move this issue from "Fixed" to "Closed" now? I looked to do this myself but apparently I don't have privileges to do so. I'll open a separate issue report for the other issues noted in the PR as they are unrelated here.

Actions #11

Updated by JosJuice almost 6 years ago

We don't have a separate "closed" status. If an issue is marked as fixed, it counts as closed.

Actions #12

Updated by shoegazer almost 6 years ago

Ah, good to know. Thanks JosJuice.

Actions

Also available in: Atom PDF