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

Massive SCP DLL rewrite #361

Merged
merged 125 commits into from
May 16, 2024
Merged

Massive SCP DLL rewrite #361

merged 125 commits into from
May 16, 2024

Conversation

nefarius
Copy link
Owner

@nefarius nefarius commented May 14, 2024

Resolves #213

Changes

  • Device state is now only modified once on library load, afterwards event based instead of being tied to any XI proxy calls.
  • Basically rewrote everything.
  • Proxying "real" XInput devices is now supported, so the DLL doesn't need to be swapped/deleted if the user simply wants to use Xbox devices with the affected game or emulator.
  • Used C++ (sparingly) for better abstraction and maintenance.

Open TODOs

  • OTEL doesn't build yet
  • Massive amount of testing
  • Address some inconsistencies
    • Currently only the XInputGetExtended API is doing jitter compensation on the axis values, should XInputGetState and XInputGetStateEx do the same? Or should it be removed entirely since v3 supports deadzone configuration? However the SCP lib uses the SXS feature report which always comes back unaltered so maybe option one makes more sense. The packet counter helper function is affected by this too, it is way too sensitive in incrementing the value while the controller is idle.

@nefarius nefarius merged commit b8e15d0 into master May 16, 2024
@nefarius nefarius deleted the nefarius/feature/scp-dll-passthru branch May 16, 2024 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core Core/Common Driver Topic enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

XInput Bridge Improvements
1 participant