Project

General

Profile

Actions

Emulator Issues #13122

open

Dolphin conflicts with EmulationStation-DE when using a GameCube controller through an adapter

Added by fenamori about 2 years ago. Updated 2 months ago.

Status:
New
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:

Description

Game Name?

Any

What's the problem? Describe what went wrong.

Dolphin is unable to use a generic 4-port GameCube controller adapter when launched through EmulationStation-DE. When launched separately from ES-DE (with both open), the adapter configuration panel has the error: "Error Opening Adapter: Resource busy". The adapter is confirmed to be working when Dolphin is launched separately, and with ES-DE closed, or when the adapter is unplugged and plugged back in after launching a game from ES-DE.

What steps will reproduce the problem?

Plug in a generic GameCube controller adapter in Wii U/Switch mode, aswell as a controller. Set Dolphin to use "GameCube Adapter for Wii U" for all four controller ports. Launch EmulationStation-DE, and launch any game through Dolphin standalone, using the GC controller to control the ES-DE interface. The game should be unresponsive.

Is the issue present in the latest stable version?

Yes, 5.0-17269

What are your PC specifications? (CPU, GPU, Operating System, more)

[PC specs here]

OS: Manjaro Linux x86_64
Host: MS-7850 1.0
Kernel: 5.10.157-1-MANJARO
CPU: Intel i5-4460 (4) @ 3.400GHz
GPU: NVIDIA GeForce GTX 770
Memory: 15956MiB

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

It seems like a conflict between Dolphin's custom way of handling the adapter (GCAdapter.cpp? I'm not exactly familiar with the codebase), and ES-DE using SDL for controlling with the adapter.

Actions #1

Updated by JMC4789 about 2 years ago

This seems to be the expected outcome? Something else is using the device as a standard controller, so we can't use it as a LibUSB device with our custom driver. Looks like working as intended.

Actions #2

Updated by fenamori about 2 years ago

JMC4789 wrote in #note-1:

This seems to be the expected outcome? Something else is using the device as a standard controller, so we can't use it as a LibUSB device with our custom driver. Looks like working as intended.

I suppose i'll pass this back to ES-DE then, thank you!

Actions #3

Updated by JMC4789 about 2 years ago

I'm not an expert on this in particular, but if something else claims it, we can't use it. If they also have their own driver and they take control of it first, not sure what we can do. We might be doing something wrong but yeah, definitely ask them first and see if there's anything that can be done on that side.

Actions #4

Updated by fenamori about 2 years ago

JMC4789 wrote in #note-3:

I'm not an expert on this in particular, but if something else claims it, we can't use it. If they also have their own driver and they take control of it first, not sure what we can do. We might be doing something wrong but yeah, definitely ask them first and see if there's anything that can be done on that side.

I did actually, and they told me I should submit a bug report to SDL, although I figured this might make more sense because of the custom driver.

Actions #5

Updated by stickman 5 months ago

Found in the dolphin discord, which appears to work for me.

Setting this environment variable seems to allow me to plug in third party controllers and not get "resource busy".

export SDL_JOYSTICK_HIDAPI_GAMECUBE=0

Credit to Billiard and CasualPokePlayer in the discord for this.

Actions

Also available in: Atom PDF