Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux: Add an evdev based controller backend, to replace SDL. #2681

Merged
merged 5 commits into from Jul 3, 2015

Conversation

phire
Copy link
Member

@phire phire commented Jun 30, 2015

Same as #2675, but for stable.

We were just using a limited subset of SDL, which essentially amounted to a thin wrapper around the evdev interface (/dev/input/eventX) and was causing us some headaches, introducing extra bugs and adding limitations.

Rather than clean things up, it was much easier to just use the evdev backend directly, which is reasonably well documented and very sane.

All other major operating systems stopped using the SDL backend ages ago, choosing to implement their own plugins which directly accessed the interfaces which SDL was also wrapping on those operating systems. With linux being the last major OS of dolphin to use the sdl backend, all of it's cross-platform advantages were rendered pointless.

However, on some operating systems (like the various BSDs) SDL is about the only solution, so this PR doesn't go as far to completely remove SDL.

Fixes 7486, 8630 and potentially other bugs.

This PR has been tested with:

  • Dual Shock 3
  • Dual Shock 4
  • Older MayFlash Gamecube Adapter
  • Mayflash DolphinBar in mode 3. (There were some issues other issues which have been reported upstream to linux.)
  • ThrustMaster, Inc. Dual Trigger 3-in-1 (PC Mode)
  • Random XInput Logitech controller, via xboxdrv

phire added 5 commits July 1, 2015 10:13
Not deleted, because it's the only option for some other operating
systems such as FreeBSD or any other slightly exotic operating
system someone might try and run dolphin on.
Dolphin uses threads, but never actually pulled them it. Normally
some library we depend on would pull threads in, but there are
potential builds that forget to pull in threads.
@phire
Copy link
Member Author

phire commented Jul 3, 2015

Tested on two further controllers:

  • xbox 360 controller (wired)
  • xbox one controller (Rumble hasn't been implemented in the linux kernel)

skidau added a commit that referenced this pull request Jul 3, 2015
Linux: Add an evdev based controller backend, to replace SDL.
@skidau skidau merged commit 8a50dc8 into dolphin-emu:stable Jul 3, 2015
@phire phire deleted the evdev-stable branch July 4, 2015 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants