Changelog
Known bugs
- DualSense HD haptics are reported as working for macOS and Linux, but does not do anything.
Overview
Rewritten controller backend
Every feature of a controller has now been turned into a modular component, each being optional and provided by the underlying driver. For example, the SDL gamepad driver will add a rumble component, which contains all the logic for rumble, but GLFW won't.
As well as all that, the way inputs (buttons, axes, hats) are programmed has been completely rewritten to allow for
an extremely modular system, each input has its own identifier, like controlify:button/south
.
This means custom mappings are not restricted to using only the hardcoded gamepad inputs.
Generic joystick inputs slot into this system nicely using identifiers like controlify:axis/0/negative
.
Then, you can layer input mappings on top of the driver provided inputs like
controlify:axis/0/negative -> controlify:axis/left_stick_up
. Or, make your own inputs like
mypack:button/paddle_left
powered by only resource packs! This mapping process has been greatly simplified with an
in-game mapping wizard that can walk you through creating a mapping (currently only to map to gamepads).
Controller Mapping Wizard
If your controller is not detected as a gamepad, and instead a regular joystick (either by a driver issue, or you really are using something like a flight-stick), you will be given the opportunity to easily map your controller to a regular gamepad layout to allow for the default binds to work and to get button textures. In the future, I hope to create a platform to automatically share your controller mappings to be used by other people. You can even create your own resource pack that includes these mappings, and even custom button textures. If you'd like help on how to do this, join my discord server
SDL3
With 2.0, Controlify now utilises SDL3, the new in-development version of SDL that powers the advanced controller features. Hopefully, this should mean compatibility for more controllers. However, I regret to say that Steam Deck users will have to continue waiting for native support for back buttons and gyro. After heavy research and collaboration with the SDL team, we've concluded that due to the nature of Steam Input, it's impossible to bypass it unless on a driver level, which is happening. A kernel driver for Steam Deck is in the works.
DualSense HD Haptics
Controlify now has basic support for DualSense controller HD haptics. You will feel subtle vibrations when interacting with menus throughout the game. There is currently no support for adaptive triggers but this is trivial to add in the future. No haptic effects yet exist for gameplay, this involves sound design which I am not very good at. You can disable HD haptics in the vibration group in the settings menu.
Changelog
- Add checksums to controller natives to prevent crashing when the SDL download was aborted, then tried to load next launch
- Fix virtual mouse being jittery
- New rumble effect for landing in water
- Reduce the amount of rumble sources into simpler categories
- Reimplemented controller type default mapping with the new system
- Add a bluetooth warning screen that appears on first launch to suggest using USB for features such as HD haptics. This only appears on controllers where a feature is limited by bluetooth. For now, just DualSense.
- Add HD haptic support for navigating through gui elements
- Refactor of look input code
- Add deadzone visualizer into the deadzone settings
- Rewrite controller code completely
- Increase unknown controller submission name to 64 chars
- Adjust way controller UIDs are created to prevent same controllers being identified differently between launches
- Add an option to adjust the radial menu timeout (#254)
- Fix range of chat keyboard height being 800%
- More resilient bind rendering to prevent seeing missing textures
Files
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
BetaVersion number
2.0.0-beta.1+1.20.4Loaders
Game versions
1.20.4Downloads
4112Publication date
March 26, 2024 at 4:40 PMPublisher
isxander
Owner