Skip to content

Massive SCP DLL rewrite#361

Merged
nefarius merged 125 commits intomasterfrom
nefarius/feature/scp-dll-passthru
May 16, 2024
Merged

Massive SCP DLL rewrite#361
nefarius merged 125 commits intomasterfrom
nefarius/feature/scp-dll-passthru

Conversation

@nefarius
Copy link
Copy Markdown
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