Emulator Issues #11323
Some games (e.g. Mario Kart Wii) are not properly informed about controller removal
Every wired Controller supporting game.
What's the problem? Describe what went wrong.
If a real wired controller is unplugged (In my case the Xbox One Controller which I use to emulate a GameCube Controller), the emulated game will not be informed about this. (e.g. Mario Kart Wii). Normally, MKW would then display a message about which controller was plugged out.
What steps will reproduce the problem?
- Use a real, removable controller as GameCube controller.
- Start a game that supports GameCube Controller. (e.g., Mario Kart Wii)
- Press in title screen A with the controller.
- Plug out the real controller.
A message appears.
No message appears.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Is the issue present in the latest stable version?
I would guess, yes. But I did not test it.
What are your PC specifications? (CPU, GPU, Operating System, more)
I think that's not important.
#5 Updated by Billiard26 10 months ago
- Subject changed from Game is not informed about a wired controller removal to Game is not informed about XInput controller removal
- Operating system Windows added
- Operating system deleted (
Assuming Windows. (poster decided it wasn't important to list operating system :/)
So this would be fixed by XInput hotplug support. (#6047)
Thanks for adding hotplugging support for XInput controllers. But unfortunately, the game is still not informed about a controller removal. I tested this using Mario Kart Wii. Normally the game would display a message about which gamecube controller was plugged out. But it doesn't.
#18 Updated by Billiard26 6 months ago
- Subject changed from Game is not informed about XInput controller removal to Some games are not properly informed about controller removal.
This has nothing to do with XInput.
I'll quote what I said in the related SoulCalibur issue #11165.
"FYI. This is caused by our means of emulating a "Null" device when a "GCController" is chosen but the user's gamepad is not present.
We send the appropriate responses of CSIDevice_Null in this situation but we never call SetNoResponse like ChangeDeviceCallback does.
Adding this call does fix the issue but calling it directly isn't really a clean solution."