After trying to create a Windows application that would work with both XInput and DInput controllers I found out that all gamepad/joystick extensions currently available for Fusion (except the HTML5 one maybe, but I needed a Windows EXE version) have major limitations or serious flaws, some of which are documented here: https://community.clickteam.com/threads/44713-Joystick-2-object?p=735684&viewfull=1#post735684. I also found it ridiculous that people have tried to profit from the situation by selling toolkits that simply work around bugs and attempt to make sense of what these extensions offer to the end user. So I made my own extension that uses the SDL2 library to poll input, and I'm also releasing an open-source version of it for anyone who might want to add new features to it.
https://github.com/PiKeyAr/SDLJoystick - click on the Releases tab to download the compiled version
A few notes:
1) This extension requires SDL2.DLL to be placed into the folder where your EXE or MFA file is - this is by design because I want it to be like that in my projects. It might also require Visual C++ runtimes to be installed, but you can recompile the extension with different code generation settings ("Multi-threaded" instead of "Multi-threaded DLL") to avoid this at the cost of a larger MFX file.
2) The extension was made for personal use, and new features will be added only if I need them in my own projects. You are welcome to make a fork of it, though. Pull requests are also welcome.
3) SDL Joystick is based on an object template from an old SDK, and it should be compatible with MMF2 as well. The example file is not compatible, however.
4) The extension only uses the Joystick API. The GameController abstraction and its mapping system are not available at the moment.
5) Before making this extension I also updated z33z's Joypad object with performance improvements and support for up to 16 joysticks instead of just two. It may become available through Extension Manager sometime soon. However, I'd still recommend using SDL Joystick instead because it uses SDL2 instead of the ancient WinMM Joystick API from the Windows 9x era.
Hope you like it!