You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.
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
👍 Axis #3 + and Axis #6 +
Workarounds
Related Issues
HaloSPV3/HCE#118
HaloSPV3/HXE#336
HaloSPV3/Gemini#161
The text was updated successfully, but these errors were encountered: