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

Controller triggers don't work properly #24

Open
BinToss opened this issue Aug 27, 2022 · 0 comments
Open

Controller triggers don't work properly #24

BinToss opened this issue Aug 27, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@BinToss
Copy link
Member

BinToss commented Aug 27, 2022

or "Can't fire Grizzly's Main cannon and auto-cannons at the same time"

This issue is caused by one of Microsoft’s bizarre decisions.
https://docs.microsoft.com/en-us/windows/win32/xinput/xinput-and-directinput#using-the-xbox-controller-with-directinput

The classic Halo:CE ports use Microsoft’s ancient DirectInput API for keyboard, mouse, and gamepad/joystick support. DirectInput was later succeeded by XInput.
On Windows, all devices designed for XInput are loaded by a backwards-compatibility layer for DirectInput interaction. When designing this compatibility layer, Microsoft decided gamepad triggers should share the same variable i.e. fully pressed LT produces -127/127 and RT produces 127/127. Holding both produces 0/127.

This differs from both normal XInput behavior and normal DirectInput behavior in which the triggers have separate variables.

Images

👎 Axis #5 + and Axis #5 - w/ Xbox One for Windows

2021-03-06 21-57-06

👍 Axis #3 + and Axis #6 +

2021-03-11 19-30-37

Workarounds

  • Use an old, DirectInput gamepad e.g. an OG Xbox controller via USB adapter and old, insecure driver “XBCD”.
  • Override gamepad inputs via Steam’s controller settings.
  • Override gamepad inputs via Xidi module. Conflicts with OpenSauce’s dinput8.dll in current SPV3 file layout. Wait for official support from us or test it out yourself with Monolith Mod Loader. This solution will be the default for SPV3 if all goes well during its compatibility testing phase.
  • Override gamepad inputs via X2DCLI
  • If using a PlayStation DualShock controller, DS4Windows allows remapping the triggers to LMB and RMB. You can also set the Start button to Escape. Halo PC’s default bindings do not utilize trigger’ analog inputs, so a “binary” mapping such a mouse click makes little difference. This solution does not override Windows’ XInput to DirectInput layer.

Related Issues

HaloSPV3/HCE#118
HaloSPV3/HXE#336
HaloSPV3/Gemini#161

@BinToss BinToss changed the title Can't fire Grizzly' Can't fire Grizzly's Main cannon and auto-cannons at the same time Aug 27, 2022
@BinToss BinToss added the bug Something isn't working label Aug 27, 2022
@BinToss BinToss changed the title Can't fire Grizzly's Main cannon and auto-cannons at the same time Controller triggers don't work properly Aug 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant