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

Fixing issue #5 and #8 #9

Merged
merged 9 commits into from Aug 10, 2016
Merged

Fixing issue #5 and #8 #9

merged 9 commits into from Aug 10, 2016

Conversation

WydD
Copy link
Contributor

@WydD WydD commented Jul 24, 2016

This PR fixes #5 which was the most dreadful. See related comments (basically /MT linking is done).

But it also cleans a lot of stuff, that has been tried for fixing #5

  • No need for ori_xinput1_3.dll anymore, I load the systempath to do this
  • Original xinput is lazy loaded to avoid loading deadlocks (a mutex is used to avoid parallel init)
  • If any startup error (like xinput or directinput loading fails) a MessageBox is thrown with the error message and the process is exited
  • XInput detection has been cleaned to 1) support known devices 2) use the guid&path instead of the dirty device loop provided by MS
  • Headers are assembled in a unique place to defined properly the targeted version (could not make precompiled header work though)
  • In case of state reading failure, 30 frames are given to the controller before a new device listing is done.

This should fix #8. Controller switching must now be held for 2 seconds to avoid spaming of start/select/home/left/right. Also, I created a new build layout (Release - Tournament Mode) to completely disable controller switching, which should be mandatory for tournament. Please provide both dll in the upcoming release :)

Sorry it's heavy :)

@dantarion dantarion merged commit a791e0f into dantarion:master Aug 10, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make controller switching more explicit Startup crash - dereferencing a -1 valued pointer
2 participants