Project

General

Profile

Actions

Emulator Issues #7723

closed

Changing controller settings and starting the emulation causes the program to crash

Added by jannepulk almost 10 years ago.

Status:
Fixed
Priority:
Urgent
Assignee:
-
Category:
Controls
% 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?
N/A

Game ID?
N/A

What's the problem? Describe what went wrong in few words.
Loading a controller profile in Wiimote settings and then starting any game causes the emulator to crash.

What did you expect to happen instead?
The game to launch as normal.

What steps will reproduce the problem?

  1. Open Wiimote settings, select Emulated Wiimote, change any of the controller keys
  2. Start a game
  3. Emulator crashes

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)
Linux Mint 17 64-bit

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)
Stack trace when the program crashes

#0  0x00007ffff339ed56 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff5202b1c in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#2  0x00007ffff518b207 in ?? () from /usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0
#3  0x0000000000899c6a in ciface::SDL::Joystick::Joystick (this=0x7fffd8adf720, joystick=0x7fffd8ad92e0, sdl_index=0, index=0)
    at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp:114
#4  0x0000000000899980 in ciface::SDL::Init (devices=...)
    at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp:44
#5  0x0000000000891240 in ControllerInterface::Initialize (this=0x18f80a0 <g_controller_interface>)
    at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp:65
#6  0x0000000000664b02 in Pad::Initialize (hwnd=0x4606660) at /home/matoking/Source/dolphin/Source/Core/Core/HW/GCPad.cpp:44
#7  0x000000000060824a in Core::EmuThread () at /home/matoking/Source/dolphin/Source/Core/Core/Core.cpp:359
#8  0x000000000060aeaf in std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (this=0x1ba1ab0)
    at /usr/include/c++/4.8/functional:1732
#9  0x000000000060ae09 in std::_Bind_simple<void (*())()>::operator()() (this=0x1ba1ab0) at /usr/include/c++/4.8/functional:1720
#10 0x000000000060ada2 in std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (this=0x1ba1a98) at /usr/include/c++/4.8/thread:115
#11 0x00007ffff401ebf0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff362c182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#13 0x00007ffff3358fbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
  • Wiping the .dolphin-emu directory doesn't help.
  • The emulator seems to crash when starting a game, stopping it and then trying to start a game again. No idea if it's related to this issue.
Actions #2

Updated by MayImilae almost 10 years ago

  • Category set to controls
  • Operating system N/A added
Actions #3

Updated by JMC4789 almost 10 years ago

Find the commit it started, and then we'll be talking. I'll raise the priority if we know it's a post 4.0 regression.

Actions #4

Updated by jannepulk almost 10 years ago

I've been going back to older and older builds and the issue still seems to persist. I'm starting to think it's a problem with one of the dependencies rather than the program itself, especially since I recently performed an upgrade from Linux Mint 16 to Linux Mint 17.

Anyway, here's a full stack trace with all symbols in place

#0 __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:209
#1 0x00007ffff64e9b1c in SDL_SYS_HapticOpenFromJoystick (haptic=haptic@entry=0x7fffd18ba650, joystick=joystick@entry=0x7fffd1af1fc0)
at /build/buildd/libsdl2-2.0.2+dfsg1/src/haptic/linux/SDL_syshaptic.c:553
#2 0x00007ffff6472207 in SDL_HapticOpenFromJoystick_REAL (joystick=0x7fffd1af1fc0)
at /build/buildd/libsdl2-2.0.2+dfsg1/src/haptic/SDL_haptic.c:315
#3 0x00000000007a089f in ciface::SDL::Joystick::Joystick (this=0x7fffd18e4a40, joystick=0x7fffd1af1fc0, sdl_index=0, index=0)
at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp:103
#4 0x00000000007a0616 in ciface::SDL::Init (devices=...)
at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp:44
#5 0x000000000079ab40 in ControllerInterface::Initialize (this=0x1272080 <g_controller_interface>)
at /home/matoking/Source/dolphin/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp:75
#6 0x000000000064e4a8 in Pad::Initialize (hwnd=0x4a00002 <efb+1805282>) at /home/matoking/Source/dolphin/Source/Core/Core/HW/GCPad.cpp:44
#7 0x00000000005f7cc9 in Core::EmuThread () at /home/matoking/Source/dolphin/Source/Core/Core/Core.cpp:403
#8 0x00000000005fa399 in std::_Bind_simple<void (())()>::_M_invoke<>(std::_Index_tuple<>) (this=0x550b7f0)
at /usr/include/c++/4.8/functional:1732
#9 0x00000000005fa2f3 in std::_Bind_simple<void (
())()>::operator()() (this=0x550b7f0) at /usr/include/c++/4.8/functional:1720
#10 0x00000000005fa28c in std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (this=0x550b7d8) at /usr/include/c++/4.8/thread:115
#11 0x00007ffff3e07bf0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff3415182 in start_thread (arg=0x7fffe5a91700) at pthread_create.c:312
#13 0x00007ffff3141fbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Actions #5

Updated by jannepulk almost 10 years ago

I checked the Dolphin wiki on Github and sure enough, there was a note on SDL which should be built and installed manually instead of being installed using a package manager. I also figured out unplugging the controller fixes the issue. :/
I built SDL 2.0.3 from source and installed it, and then rebuilt the emulator, but the emulator still crashes if I have a controller plugged in, so either cmake insists on using the wrong version or there is some other problem.

That said, I recall the emulator working just fine with the same controller before the distro upgrade without having to dabble with SDL.

Actions #6

Updated by jannepulk almost 10 years ago

FIXED.

The latest release version of SDL (2.0.3) had this issue, but downloading and building the latest version from their Mercurial repo fixes this issue.

The relevant bug report is here:
https://bugzilla.libsdl.org/show_bug.cgi?id=2648

Actions #7

Updated by jannepulk almost 10 years ago

Okay, I edited the wiki page ( https://github.com/dolphin-emu/dolphin/wiki/Building-for-Linux ) and added a note regarding the SDL bug. The "build from source" instruction wasn't really clear enough since the bug existed in the latest stable release.

Actions #8

Updated by JMC4789 over 9 years ago

How do we fix this automatically for people using Dolphin? Does our build instructions cover it?

Actions #9

Updated by JMC4789 over 9 years ago

  • Status changed from New to Accepted
  • Priority set to Urgent

Something needs to be changed so users don't run into this bug by default.

Actions #10

Updated by skidau over 9 years ago

jannepulk, is this issue still occurring in the latest development version? There were some sdl haptic changes made to dolphin recently.

Actions #11

Updated by skidau over 9 years ago

  • Status changed from Accepted to Fixed

Comment #6 says that this issue is fixed. Issue 7486 tracks the change of SDL 2.0.4.

Actions

Also available in: Atom PDF