citra
citra copied to clipboard
Citra instantly closes/crashes with some controllers/adapters connected to the PC
I was asked to report that issue although I couldn't observe it myself due to the lack of a problematic controller:
Due to the changes added to support controller hotplugging Citra opens a connection to all connected controllers on startup. Some controllers (mainly some mayflash adapters) cause a crash inside SDL. This will result in an instant crash of citra without any log.
The solution to this issue for now is to unplug the controller/adapter. The controller wouldn't work for Citra anyway.
Further investigation why SDL causes the crash is necessary. E.g. running it with a debugger while such controller is connected and then looking at the stack trace could be a first hint. This would require the dev to look at the issue to have such troublesome controller (which I'm not).
There are two solutions to that issue:
-
Don't open all controllers at startup: This would prevent Citra from crashing but Citra would crash when someone tries to configure such controller.
-
Figure out the main reason why SDL crashes and upstream the fix to SDL
Summary of our findings in a Discord chat:
First off, the adapter in question is this: http://www.mayflash.com/Products/NINTENDOWiiU/W012.html
I have it.
~~Turns out, the driver that can be downloaded from their website (Ctrl+F for W012) is not compatible with Windows 10, and it crashes. There's essentially nothing Citra or SDL can do about this, it's Mayflash's fault and they fucked up. They updated the ~~driver~~ firmware in May of 2016, but the driver from 2015 still doesn't support Windows 10 - even though it claims it does on the page.~~ see next comment
The controller adapter works great with a generic driver, except that it does not support rumble. Thus, we should tell users who suffer from this issue to uninstall the driver from their system. It can be uninstalled from Add & Remove Programs:
I did some more research, turns out this only affects 64-bit applications.
I compiled SDL's "testrumble" test for both Win32 and x64. The x64 version crashed with no sign of even starting, similar to Citra. The Win32 version worked just fine and successfully rumbled my controller.
When the driver is uninstalled, nothing crashes, but there is no force feedback (testrumble reports that no haptic device was found). This is expected, since rumble is the only feature the driver adds.
I am experiencing this too, I believe. I run all my games through steam by adding citra's exe file to steam and adding the rom in the launch parameters (as such, the "target" field is as follows: ""D:\Games\Emulators\Citra\canary-mingw\citra-qt.exe" "D:\Games\Emu Games\3DS\Roms\Fire Emblem Fates - Special Edition.3ds"") This allows me to use steam's controller functions to remap inputs to keyboard, mouse, or controller. Steam then creates it's own xinput device and that is the controller citra would use. Upon having this enabled, citra crashes at launch or shortly after. Disabling this and using the controller directly allows for normal function without crash. Hopefully this can be addressed in fixing this bug as well, as I run all my emulators through steam and would like to continue to do so.
I have the same issue. When I connect my controller to better joy and open citra my controller disconnects. When I try to reconnect it it refuses to work, and eventually citra crashes. What's worse is that yesterday it was working fine
https://user-images.githubusercontent.com/108077737/175324811-407ba5ab-6a3a-4ca1-917e-b099c768399b.mp4
.
Just want to add that everyone using Steam ROM Manager is experiencing this issue with citra. It's rendered the emulator essentially unusable via steam, which for our community is quite a blow.
Just my two cents.
Yea I personally would rather run Citra without steam (So I can use my controller gyro) but I can just use my phone
(although it is a bit weird)