Emulator Issues #13125
openDolphin not opening through Steam while Switch Pro Controller is connected
Added by DolphinBrutus about 2 years ago. Updated almost 2 years ago.
0%
Description
(This was previously posted, but was falsely assumed to be fixed and is now closed: https://bugs.dolphin-emu.org/issues/13047?tab=notes)
What's the problem? Describe what went wrong.
When trying to open the latest version of Dolphin (5.0-17995) through Steam while a Switch Pro Controller is connected, Dolphin will not open (no window ever appears), and Steam will show the "Stop" button, thinking it is currently running. This only happens while the controller is connected, and Dolphin will be able to open again once the controller disconnects. Occasionally Dolphin would open, but this was very rare and inconsistent. Dolphin can still be opened directly from the Dolphin.exe while the controller is connected. Replacing the Dolphin-x64 folder with version 5.0-16793 fixed the problem and allowed Dolphin to open normally while the controller was connected.
Is the issue present in the latest development version?
Yes (5.0-18076).
What steps will reproduce the problem?
On Windows 10 x64, add Dolphin as a non-Steam game and try to run it while a Switch Pro Controller is connected. Other controllers may have similar effects, but I only have a Switch Pro Controller, so it's the only one I can test.
Files
Screenshot 2023-01-31.png (54.3 KB) Screenshot 2023-01-31.png | funkypc, 02/01/2023 02:35 AM | ||
Switch-Controller-Settings.png (376 KB) Switch-Controller-Settings.png | funkypc, 02/02/2023 07:29 PM |
Updated by DolphinBrutus about 2 years ago
Sorry, I didn't realize I was posting in the wrong category, and I don't know how to move it.
Updated by JosJuice about 2 years ago
- Tracker changed from Issue to Emulator Issues
- Project changed from Infrastructure to Emulator
- Issue type set to Bug
- Regression set to No
- Relates to usability set to No
- Relates to performance set to No
- Easy set to No
- Relates to maintainability set to No
- Operating system N/A added
Regular users don't have permission to move issues between the different projects. I'll move it for you.
Updated by Anonymous almost 2 years ago
The linked issue was fixed. I suspect a successive update to SDL caused a regression, or the issue with Switch Pro Controller has different underlying cause than the linked issue.
In any case, the fix is probably just updating the SDL submodule. Unfortunately atm SDL is in the middle of moving to SDL3 so it could be annoying.
Updated by DolphinBrutus almost 2 years ago
I tried 5.0-17295 which they said fixed the problem, but it didn't work when I used it so I don't know.
Updated by Anonymous almost 2 years ago
Can you try this build: https://dl.dolphin-emu.org/prs/20/5d/pr-11418-dolphin-latest-x64.7z
Updated by DolphinBrutus almost 2 years ago
Okay, I’ll try it when I get the chance.
Updated by funkypc almost 2 years ago
I am also facing this problem. It's been erratic for me. Sometimes Dolphin opens, sometimes it does not. The issue is still present on the latest development version 5.0-18485
Updated by Anonymous almost 2 years ago
Is dolphin crashing or hanging in the background?
Upload a crashdump and we'll take a look.
Updated by funkypc almost 2 years ago
It just seems to hang in the background. Does Dolphin save a log or a crash dump somewhere that I can upload?
I've attached a screenshot of what Task Manager shows.
Updated by Anonymous almost 2 years ago
right click on dolphin in task manager and choose "create dump file"
Updated by Anonymous almost 2 years ago
here are the stacks if someone wants to squint at them. Relevant threads seem to be 6 and 13
0:000> ~*k
. 0 Id: 49d0.2130 Suspend: 0 Teb: 000000bd`26376000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`264fe5d8 00007ffe`29939a75 ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`264fe5e0 00007ffe`14273301 ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`264fe650 00007ff6`37f1a1ea msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106]
03 (Inline Function) --------`-------- Dolphin!std::_Mutex_base::lock+0x5 [v:\14.34.31933\include\mutex @ 50]
04 000000bd`264fe6b0 00007ff6`37f1afaa Dolphin!std::_Lock_attempt_small<std::recursive_mutex,std::recursive_mutex>+0x1a [v:\14.34.31933\include\mutex @ 394]
05 (Inline Function) --------`-------- Dolphin!std::_Lock_nonmember1+0x1a [v:\14.34.31933\include\mutex @ 412]
06 (Inline Function) --------`-------- Dolphin!std::lock+0x1a [v:\14.34.31933\include\mutex @ 418]
07 (Inline Function) --------`-------- Dolphin!std::scoped_lock<std::recursive_mutex,std::recursive_mutex>::{ctor}+0x30 [v:\14.34.31933\include\mutex @ 448]
08 000000bd`264fe6e0 00007ff6`37f0b859 Dolphin!ControllerEmu::EmulatedController::UpdateReferences+0x4a [d:\Source\Core\InputCommon\ControllerEmu\ControllerEmu.cpp @ 44]
09 000000bd`264fe740 00007ff6`37f2bc85 Dolphin!InputConfig::LoadConfig+0xec9 [d:\Source\Core\InputCommon\InputConfig.cpp @ 143]
0a 000000bd`264fead0 00007ff6`37d5fcc6 Dolphin!Wiimote::LoadConfig+0x15 [d:\Source\Core\Core\HW\Wiimote.cpp @ 208]
0b (Inline Function) --------`-------- Dolphin!MainWindow::InitControllers+0xa9 [d:\Source\Core\DolphinQt\MainWindow.cpp @ 338]
0c 000000bd`264feb00 00007ff6`37d5e5e0 Dolphin!MainWindow::MainWindow+0x1f6 [d:\Source\Core\DolphinQt\MainWindow.cpp @ 223]
0d 000000bd`264feed0 00007ff6`37d5ed8d Dolphin!app_main+0x11e0 [d:\Source\Core\DolphinQt\Main.cpp @ 258]
0e 000000bd`264ff6c0 00007ff6`382e637a Dolphin!wWinMain+0x10d [d:\Source\Core\DolphinQt\Main.cpp @ 320]
0f (Inline Function) --------`-------- Dolphin!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118]
10 000000bd`264ff710 00007ffe`27fd55a0 Dolphin!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288]
11 000000bd`264ff750 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
12 000000bd`264ff780 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
1 Id: 49d0.1df8 Suspend: 0 Teb: 000000bd`26380000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`269fedb8 00007ffe`271ef310 ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`269fedc0 00007ffe`2403a387 KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`269ff0b0 00007ffe`2403a124 CoreMessaging!Microsoft::CoreUI::Dispatch::WaitController::Callback_WaitAny+0xb7
03 000000bd`269ff1a0 00007ffe`24039e7e CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_DoWait+0x114
04 000000bd`269ff270 00007ffe`2403c7a1 CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_Wait+0x5e
05 000000bd`269ff330 00007ffe`2403d072 CoreMessaging!Microsoft::CoreUI::Dispatch::WaitCollection::Callback_DoGeneralWait+0x1e1
06 000000bd`269ff3f0 00007ffe`2403bd1d CoreMessaging!Microsoft::CoreUI::Dispatch::WaitController::Callback_OnDispatch+0x312
07 000000bd`269ff4c0 00007ffe`2403804a CoreMessaging!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop+0x2ed
08 000000bd`269ff580 00007ffe`24061e79 CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_Run+0x41a
09 000000bd`269ff630 00007ffe`24061daf CoreMessaging!Microsoft::CoreUI::Dispatch::EventLoop::Callback_Run+0xa9
0a 000000bd`269ff670 00007ffe`240669b6 CoreMessaging!Microsoft::CoreUI::Messaging::MessageSession::InterfaceImplementation$::_Microsoft_CoreUI_IExportMessageSession::Dispatcher::Run+0x2f
0b 000000bd`269ff6a0 00007ffe`0fe56c95 CoreMessaging!Microsoft::CoreUI::IExportMessageSession::ExportAdapter$::Run+0x66
0c 000000bd`269ff6e0 00007ffe`0fe55d29 inputhost!MessagingThread::ThreadProc+0x10d
0d 000000bd`269ff740 00007ffe`27fd55a0 inputhost!<lambda_376318154f061e76a4fa5387c7eed0ca>::<lambda_invoker_cdecl>+0x9
0e 000000bd`269ff770 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
0f 000000bd`269ff7a0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
2 Id: 49d0.40d0 Suspend: 0 Teb: 000000bd`26384000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`26bff638 00007ffe`2998aaf7 ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`26bff640 00007ffe`271fbeb9 ntdll!RtlSleepConditionVariableSRW+0x137
02 000000bd`26bff6c0 00007ffe`14272c55 KERNELBASE!SleepConditionVariableSRW+0x29
03 000000bd`26bff700 00007ffe`14272e03 msvcp140!Concurrency::details::stl_condition_variable_win7::wait_for+0x15 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 167]
04 000000bd`26bff730 00007ff6`37e06c2d msvcp140!_Cnd_timedwait+0x93 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cond.cpp @ 75]
05 (Inline Function) --------`-------- Dolphin!std::condition_variable::wait_until+0x1d [v:\14.34.31933\include\mutex @ 671]
06 (Inline Function) --------`-------- Dolphin!std::condition_variable::wait_for+0x53 [v:\14.34.31933\include\mutex @ 619]
07 (Inline Function) --------`-------- Dolphin!IoThreadHolder::Start::__l2::<lambda_1>::operator()+0x96 [d:\Externals\discord-rpc\src\discord_rpc.cpp @ 95]
08 (Inline Function) --------`-------- Dolphin!std::invoke+0x96 [v:\14.34.31933\include\type_traits @ 1562]
09 000000bd`26bff7a0 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<`IoThreadHolder::Start'::`2'::<lambda_1> >,0>+0xad [v:\14.34.31933\include\thread @ 55]
0a 000000bd`26bff7e0 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0b 000000bd`26bff810 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
0c 000000bd`26bff840 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
3 Id: 49d0.1eac Suspend: 0 Teb: 000000bd`26386000 Unfrozen "Analytics"
# Child-SP RetAddr Call Site
00 000000bd`26cff948 00007ffe`2998aaf7 ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`26cff950 00007ffe`271fbeb9 ntdll!RtlSleepConditionVariableSRW+0x137
02 000000bd`26cff9d0 00007ffe`14272c09 KERNELBASE!SleepConditionVariableSRW+0x29
03 (Inline Function) --------`-------- msvcp140!Concurrency::details::stl_condition_variable_win7::wait_for+0x15 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 167]
04 000000bd`26cffa10 00007ffe`14272e9a msvcp140!Concurrency::details::stl_condition_variable_win7::wait+0x19 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 161]
05 000000bd`26cffa40 00007ff6`381969ea msvcp140!_Cnd_wait+0x3a [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cond.cpp @ 60]
06 (Inline Function) --------`-------- Dolphin!std::condition_variable::wait+0x10 [v:\14.34.31933\include\mutex @ 598]
07 (Inline Function) --------`-------- Dolphin!std::condition_variable::wait+0x1a [v:\14.34.31933\include\mutex @ 604]
08 (Inline Function) --------`-------- Dolphin!Common::Event::Wait+0x3a [d:\Source\Core\Common\Event.h @ 55]
09 000000bd`26cffa70 00007ff6`37d3f22f Dolphin!Common::AnalyticsReporter::ThreadProc+0x6a [d:\Source\Core\Common\Analytics.cpp @ 169]
0a (Inline Function) --------`-------- Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578]
0b 000000bd`26cffb10 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56]
0c 000000bd`26cffb40 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0d 000000bd`26cffb70 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
0e 000000bd`26cffba0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
4 Id: 49d0.fa4 Suspend: 0 Teb: 000000bd`2638a000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`26eff7c8 00007ffe`2997b873 ntdll!NtDelayExecution+0x14
01 000000bd`26eff7d0 00007ffe`271eb031 ntdll!RtlDelayExecution+0x43
02 000000bd`26eff800 00007ffe`1edad1c7 KERNELBASE!SleepEx+0x71
03 000000bd`26eff880 00007ffe`1edad02c Windows_Gaming_Input!ProviderManagerWorker::WorkerThreadProc+0x157
04 000000bd`26effb10 00007ffe`27fd55a0 Windows_Gaming_Input!ProviderManagerWorker::WorkerThreadProcThunk+0x1c
05 000000bd`26effb40 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
06 000000bd`26effb70 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
5 Id: 49d0.2c64 Suspend: 0 Teb: 000000bd`2638c000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`26fff908 00007ffe`2997b873 ntdll!NtDelayExecution+0x14
01 000000bd`26fff910 00007ffe`271eb031 ntdll!RtlDelayExecution+0x43
02 000000bd`26fff940 00007ff6`386c3868 KERNELBASE!SleepEx+0x71
03 000000bd`26fff9c0 00007ff6`38105cf5 Dolphin!SDL_WaitEventTimeout_REAL+0x788 [d:\Externals\SDL\SDL\src\events\SDL_events.c @ 1172]
04 000000bd`26fffa70 00007ff6`38104ece Dolphin!`ciface::SDL::InputBackend::InputBackend'::`2'::<lambda_1>::operator()+0x245 [d:\Source\Core\InputCommon\ControllerInterface\SDL\SDL.cpp @ 242]
05 (Inline Function) --------`-------- Dolphin!std::invoke+0x5 [v:\14.34.31933\include\type_traits @ 1562]
06 000000bd`26fffba0 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<`ciface::SDL::InputBackend::InputBackend'::`2'::<lambda_1> >,0>+0xe [v:\14.34.31933\include\thread @ 56]
07 000000bd`26fffbd0 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
08 000000bd`26fffc00 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
09 000000bd`26fffc30 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
6 Id: 49d0.22a4 Suspend: 0 Teb: 000000bd`26390000 Unfrozen "SDL_joystick"
# Child-SP RetAddr Call Site
00 000000bd`2710fb68 00007ffe`296347ae win32u!NtUserGetMessage+0x14
01 000000bd`2710fb70 00007ffd`f3277555 user32!GetMessageW+0x2e
02 000000bd`2710fbd0 00007ff6`3871f62c gameoverlayrenderer64!OverlayHookD3D3+0x229f5
03 (Inline Function) --------`-------- Dolphin!SDL_WaitForDeviceNotification+0x3c [d:\Externals\SDL\SDL\src\joystick\windows\SDL_windowsjoystick.c @ 333]
04 000000bd`2710fc00 00007ff6`386ab4bf Dolphin!SDL_JoystickThread+0x9c [d:\Externals\SDL\SDL\src\joystick\windows\SDL_windowsjoystick.c @ 368]
05 000000bd`2710fc90 00007ff6`386f3f2f Dolphin!SDL_RunThread+0x2f [d:\Externals\SDL\SDL\src\thread\SDL_thread.c @ 296]
06 (Inline Function) --------`-------- Dolphin!RunThread+0x9 [d:\Externals\SDL\SDL\src\thread\windows\SDL_systhread.c @ 80]
07 000000bd`2710fcc0 00007ffe`27fd55a0 Dolphin!RunThreadViaCreateThread+0xf [d:\Externals\SDL\SDL\src\thread\windows\SDL_systhread.c @ 94]
08 000000bd`2710fcf0 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
09 000000bd`2710fd20 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
7 Id: 49d0.1150 Suspend: 0 Teb: 000000bd`26394000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`2721fe28 00007ffe`2962d33e win32u!NtUserMsgWaitForMultipleObjectsEx+0x14
01 000000bd`2721fe30 00007ffe`02222bb5 user32!RealMsgWaitForMultipleObjectsEx+0x1e
02 000000bd`2721fe70 00007ffe`27fd55a0 dinput8!CEm_LL_ThreadProc+0x115
03 000000bd`2721fee0 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
04 000000bd`2721ff10 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
8 Id: 49d0.231c Suspend: 0 Teb: 000000bd`26396000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`2731f3a8 00007ffe`271ef310 ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`2731f3b0 00007ffe`271ef20e KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`2731f6a0 00007ffd`b37e0430 KERNELBASE!WaitForMultipleObjects+0xe
03 000000bd`2731f6e0 00007ffe`27fd55a0 Qt6Core!qt_adopted_thread_watcher_function+0xf0 [E:\qsc\qt-everywhere-src-6.3.0\qtbase\src\corelib\thread\qthread_win.cpp @ 204]
04 000000bd`2731f780 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
05 000000bd`2731f7b0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
9 Id: 49d0.5068 Suspend: 0 Teb: 000000bd`26398000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`2741faa8 00007ffe`271f0233 ntdll!NtRemoveIoCompletion+0x14
01 000000bd`2741fab0 00007ff6`3859bd55 KERNELBASE!GetQueuedCompletionStatus+0x53
02 000000bd`2741fb10 00007ffe`275e6c0c Dolphin!windows_iocp_thread+0x75 [d:\Externals\libusb\libusb\libusb\os\windows_common.c @ 443]
03 000000bd`2741fba0 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
04 000000bd`2741fbd0 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
05 000000bd`2741fc00 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
10 Id: 49d0.41d0 Suspend: 0 Teb: 000000bd`2639a000 Unfrozen "libusb thread"
# Child-SP RetAddr Call Site
00 000000bd`2751f788 00007ffe`271ef310 ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`2751f790 00007ffe`271ef20e KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`2751fa80 00007ff6`3859c422 KERNELBASE!WaitForMultipleObjects+0xe
03 000000bd`2751fac0 00007ff6`38598ee0 Dolphin!usbi_wait_for_events+0x62 [d:\Externals\libusb\libusb\libusb\os\events_windows.c @ 176]
04 000000bd`2751fb00 00007ff6`38599b2a Dolphin!handle_events+0x120 [d:\Externals\libusb\libusb\libusb\io.c @ 2244]
05 000000bd`2751fb60 00007ff6`380a3be3 Dolphin!libusb_handle_events_timeout_completed+0x51a [d:\Externals\libusb\libusb\libusb\io.c @ 2361]
06 000000bd`2751fbb0 00007ff6`37d3f22f Dolphin!LibusbUtils::Context::Impl::EventThread+0x63 [d:\Source\Core\Core\LibusbUtils.cpp @ 78]
07 (Inline Function) --------`-------- Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578]
08 000000bd`2751fc30 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56]
09 000000bd`2751fc60 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0a 000000bd`2751fc90 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
0b 000000bd`2751fcc0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
11 Id: 49d0.4404 Suspend: 0 Teb: 000000bd`2639c000 Unfrozen "Wiimote Scanning Thread"
# Child-SP RetAddr Call Site
00 000000bd`2761f698 00007ffe`29939a75 ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`2761f6a0 00007ffe`14273301 ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`2761f710 00007ff6`37f1a1ea msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106]
03 (Inline Function) --------`-------- Dolphin!std::_Mutex_base::lock+0x5 [v:\14.34.31933\include\mutex @ 50]
04 000000bd`2761f770 00007ff6`37f1afaa Dolphin!std::_Lock_attempt_small<std::recursive_mutex,std::recursive_mutex>+0x1a [v:\14.34.31933\include\mutex @ 394]
05 (Inline Function) --------`-------- Dolphin!std::_Lock_nonmember1+0x1a [v:\14.34.31933\include\mutex @ 412]
06 (Inline Function) --------`-------- Dolphin!std::lock+0x1a [v:\14.34.31933\include\mutex @ 418]
07 (Inline Function) --------`-------- Dolphin!std::scoped_lock<std::recursive_mutex,std::recursive_mutex>::{ctor}+0x30 [v:\14.34.31933\include\mutex @ 448]
08 000000bd`2761f7a0 00007ff6`37f0c24f Dolphin!ControllerEmu::EmulatedController::UpdateReferences+0x4a [d:\Source\Core\InputCommon\ControllerEmu\ControllerEmu.cpp @ 44]
09 (Inline Function) --------`-------- Dolphin!InputConfig::RegisterHotplugCallback::__l2::<lambda_1>::operator()+0x25 [d:\Source\Core\InputCommon\InputConfig.cpp @ 216]
0a (Inline Function) --------`-------- Dolphin!std::invoke+0x25 [v:\14.34.31933\include\type_traits @ 1562]
0b (Inline Function) --------`-------- Dolphin!std::_Invoker_ret<void>::_Call+0x25 [v:\14.34.31933\include\functional @ 670]
0c 000000bd`2761f800 00007ff6`37f1e064 Dolphin!std::_Func_impl_no_alloc<`InputConfig::RegisterHotplugCallback'::`2'::<lambda_1>,void>::_Do_call+0x2f [v:\14.34.31933\include\functional @ 833]
0d (Inline Function) --------`-------- Dolphin!std::_Func_class<void>::operator()+0xf [v:\14.34.31933\include\functional @ 874]
0e 000000bd`2761f830 00007ff6`37f1e119 Dolphin!ControllerInterface::InvokeDevicesChangedCallbacks+0x54 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 450]
0f 000000bd`2761f870 00007ff6`37f3f77b Dolphin!ControllerInterface::PlatformPopulateDevices+0x69 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 212]
10 000000bd`2761f8a0 00007ff6`37d3f22f Dolphin!WiimoteReal::WiimoteScanner::ThreadFunc+0x37b [d:\Source\Core\Core\HW\WiimoteReal\WiimoteReal.cpp @ 705]
11 (Inline Function) --------`-------- Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578]
12 000000bd`2761fb60 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56]
13 000000bd`2761fb90 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
14 000000bd`2761fbc0 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
15 000000bd`2761fbf0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
12 Id: 49d0.47b0 Suspend: 0 Teb: 000000bd`2639e000 Unfrozen "Wiimote Pool Thread"
# Child-SP RetAddr Call Site
00 000000bd`2771f6f8 00007ffe`2997b873 ntdll!NtDelayExecution+0x14
01 000000bd`2771f700 00007ffe`271eb031 ntdll!RtlDelayExecution+0x43
02 000000bd`2771f730 00007ffe`1427313c KERNELBASE!SleepEx+0x71
03 000000bd`2771f7b0 00007ff6`37f3e03e msvcp140!_Thrd_sleep+0x3c [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cthread.cpp @ 77]
04 (Inline Function) --------`-------- Dolphin!std::this_thread::sleep_until+0x9d [v:\14.34.31933\include\thread @ 200]
05 000000bd`2771f800 00007ff6`37d3f22f Dolphin!WiimoteReal::WiimoteScanner::PoolThreadFunc+0x14e [d:\Source\Core\Core\HW\WiimoteReal\WiimoteReal.cpp @ 632]
06 (Inline Function) --------`-------- Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578]
07 000000bd`2771f8f0 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56]
08 000000bd`2771f920 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
09 000000bd`2771f950 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
0a 000000bd`2771f980 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
13 Id: 49d0.a80 Suspend: 0 Teb: 000000bd`263a0000 Unfrozen "HotkeyScheduler"
# Child-SP RetAddr Call Site
00 000000bd`2781f0c8 00007ffe`29939a75 ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`2781f0d0 00007ffe`14273301 ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`2781f140 00007ff6`37f1e373 msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106]
03 (Inline Function) --------`-------- Dolphin!std::_Mutex_base::lock+0x8 [v:\14.34.31933\include\mutex @ 50]
04 (Inline Function) --------`-------- Dolphin!std::lock_guard<std::recursive_mutex>::{ctor}+0x8 [v:\14.34.31933\include\mutex @ 427]
05 000000bd`2781f1a0 00007ff6`38214d9d Dolphin!ControllerInterface::RemoveDevice+0x43 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 343]
06 (Inline Function) --------`-------- Dolphin!ciface::WGInput::RemoveDevice+0x34 [d:\Source\Core\InputCommon\ControllerInterface\WGInput\WGInput.cpp @ 654]
07 (Inline Function) --------`-------- Dolphin!ciface::WGInput::Init::__l6::<lambda_1>::operator()+0x34 [d:\Source\Core\InputCommon\ControllerInterface\WGInput\WGInput.cpp @ 683]
08 000000bd`2781f210 00007ffd`f3297917 Dolphin!winrt::impl::delegate<winrt::Windows::Foundation::EventHandler<winrt::Windows::Gaming::Input::RawGameController>,`ciface::WGInput::Init'::`6'::<lambda_1> >::Invoke+0x5d [w:\Include\10.0.22621.0\cppwinrt\winrt\Windows.Foundation.h @ 886]
09 000000bd`2781f280 00007ffd`f3276f52 gameoverlayrenderer64!VulkanSteamOverlayProcessCapturedFrame+0x4987
0a 000000bd`2781f2c0 00007ffd`f3276dfb gameoverlayrenderer64!OverlayHookD3D3+0x223f2
0b 000000bd`2781f310 00007ffd`f3267130 gameoverlayrenderer64!OverlayHookD3D3+0x2229b
0c 000000bd`2781f340 00007ff6`382760dc gameoverlayrenderer64!OverlayHookD3D3+0x125d0
0d 000000bd`2781f370 00007ff6`37f1e71f Dolphin!ciface::DInput::Joystick::UpdateInput+0x1c [d:\Source\Core\InputCommon\ControllerInterface\DInput\DInputJoystick.cpp @ 232]
0e 000000bd`2781f6b0 00007ff6`37d5a962 Dolphin!ControllerInterface::UpdateInput+0x13f [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 383]
0f 000000bd`2781f7a0 00007ff6`37d3f22f Dolphin!HotkeyScheduler::Run+0xc2 [d:\Source\Core\DolphinQt\HotkeyScheduler.cpp @ 154]
10 (Inline Function) --------`-------- Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578]
11 000000bd`2781fed0 00007ffe`275e6c0c Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56]
12 000000bd`2781ff00 00007ffe`27fd55a0 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
13 000000bd`2781ff30 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
14 000000bd`2781ff60 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
14 Id: 49d0.2018 Suspend: 0 Teb: 000000bd`263c0000 Unfrozen
# Child-SP RetAddr Call Site
00 000000bd`265ff828 00007ffe`29936cdf ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 000000bd`265ff830 00007ffe`27fd55a0 ntdll!TppWorkerThread+0x2df
02 000000bd`265ffb20 00007ffe`2992485b kernel32!BaseThreadInitThunk+0x10
03 000000bd`265ffb50 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
Updated by Anonymous almost 2 years ago
not sure if it's a deadlock or some infloop is entered where devices are added/removed forever.
Updated by Anonymous almost 2 years ago
btw does this repro with ps5 or xbox(series) controllers?
also, which settings within steam controller settings should be set in order to repro this?
Updated by funkypc almost 2 years ago
I don't have any PS5 or Xbox controllers, so I can't test that. However, my Googling in the past on this issue led me to believe that only Switch controllers are affected.
In Steam, I'm using the 'Gamepad' template created by Valve. I think it's the default template.
I've attached a screenshot of the controller settings I'm currently using. I've tried changing settings and it seems to crash regardless of which settings I use.
Dolphin will also crash in the following scenario, which may be related:
- Successfully start Dolphin from Steam with the Switch Pro controller connected. (As stated, this is erratic, but sometimes works.)
- Open Dolphin GameCube Controller settings.
- Disconnect/unplug the Switch Pro controller and click 'Refresh' under Device - This will cause Dolphin to crash.
Crashdump: https://westerngovernorsuniversity-my.sharepoint.com/:u:/g/personal/cplett_wgu_edu/Ea7xqV9ytipOuAGiBYQ2wNQBwB4Xzgjhqe-w19aOV-mRaA?e=sU5YP7
Updated by DolphinBrutus almost 2 years ago
Sorry for taking so long
The problem is still present in the version you told me to try and the current, latest development version (5.0-18505). I am also using the default "Gamepad" template with the "Nintendo Button Layout" option turned on, though turning it off does nothing. Here's the dump file I got if you want to look at it: https://www.dropbox.com/s/3g21p0w87fg3c0r/Dolphin.DMP?dl=0
Updated by funkypc almost 2 years ago
I think this may have been fixed in a recent commit in the SDL2 branch. Dolphin may just need to update from the SDL2 branch to fix this. https://github.com/libsdl-org/SDL/commit/d77eb8a8d5c201e53de7019d26d81500fa9897a0
Updated by Anonymous almost 2 years ago
this PR updates sdl https://github.com/dolphin-emu/dolphin/pull/11581
you can try build of it here https://dl.dolphin-emu.org/prs/ba/6a/pr-11581-dolphin-latest-x64.7z
Updated by funkypc almost 2 years ago
Thanks for the quick update.
Unfortunately, pr-11581 does not fix the problem for me.