[Bug] [V2.2.0/V2.2.1] Controller in DInput Mode no longer recognized
Current Behaviour
Since Version 2.2.0 my Controller (see below) is no longer recognized in DInput Mode. XInput and Switch Mode continue to work.
In XInput, everything (Vibration, default XBox buttons) works as expected. In Switch Mode the default Switch Buttons, Vibration and Gyro work as expected.
Expected Behaviour
In Version 2.1.2 the Controller is recognized and can be selected in game.
Vibration, Gyro and L4/R4/PL/PR dont work though. (The data stream should be available as Steam supports all of these features.)
Screenshots
No response
Reproduction Steps
Boot by pressing Home + X (XInput Mode): Detected as "XInput Controller". Boot by pressing Home + Y (Switch Mode): Detected as "Switch Controller". Boot by pressing Home + B (DInput Mode): Not detected by Controlify. Bluetooth (DInput): Not detected by Controlify. Wired (XInput): Detected as "XInput Controller".
Logs
Mod Version
2.2.0+
Controller
8BitDo Ultimate 2 Wireless Controller
Bluetooth
- [ ] Yes
Operating System
Windows
ARM
- [ ] Yes
Additional Information
XInput/DInput Vendor ID: VID_2DC8 XInput Product ID: PID_310B DInput Product ID: PID_6012
Switch Vendor ID: VID_057E Switch Product ID: PID_2009
Just to make sure...
- [x] I have made sure I am using the latest version of Controlify for the latest version of Minecraft.
- [x] I have made sure there are no other issues describing the same problem on the issue tracker.
Oh right, i forgot to include my log:
[01:13:13] [Render thread/INFO]: Loading Controlify config...
[01:13:13] [Render thread/INFO]: [SDLNativesLoader] Attempting to load SDL3 from SDL3
[01:13:13] [Render thread/INFO]: [LoadedSDLNatives] Loading SDL3 version: 3.2.16. Java bindings targeting: 3.2.16
[01:13:13] [Render thread/INFO]: [LoadedSDLNatives] Successfully initialised SDL subsystems
[01:13:13] [Render thread/INFO]: [SDLNativesLoader] Successfully loaded SDL3 natives
[01:13:13] [Render thread/INFO]: Successfully loaded 530 gamepad mapping entries!
[01:13:13] [Render thread/INFO]: Using SDL to identify controller type.
...
[01:15:03] [Render thread/ERROR]: [ControllerManager] [Controller #SDL-3] Failed to create controller #SDL-3!
dev.isxander.controlify.driver.sdl.SDLException: Failed to open joystick: IDirectInputDevice8::SetCooperativeLevel() DirectX error 0x80070006
at knot/dev.isxander.controlify.driver.sdl.SDLException.useSDLError(SDLException.java:11) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/dev.isxander.controlify.driver.sdl.SDLUtil.openJoystick(SDLUtil.java:22) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/dev.isxander.controlify.controllermanager.SDLControllerManager.createController(SDLControllerManager.java:159) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/dev.isxander.controlify.controllermanager.AbstractControllerManager.tryCreate(AbstractControllerManager.java:63) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/dev.isxander.controlify.controllermanager.SDLControllerManager.tick(SDLControllerManager.java:88) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/dev.isxander.controlify.Controlify.tick(Controlify.java:412) ~[controlify-2.2.1+1.21.5-fabric.jar:?]
at knot/net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.lambda$static$0(ClientTickEvents.java:34) ~[fabric-lifecycle-events-v1-2.6.0+230071a049-af563e72dcfff332.jar:?]
at knot/net.minecraft.class_310.handler$bbd000$fabric-lifecycle-events-v1$onStartTick(class_310.java:11053) [client-intermediary.jar:?]
at knot/net.minecraft.class_310.method_1574(class_310.java) [client-intermediary.jar:?]
at knot/net.minecraft.class_310.method_1523(class_310.java:1314) [client-intermediary.jar:?]
at knot/net.minecraft.class_310.method_1514(class_310.java:936) [client-intermediary.jar:?]
at knot/net.minecraft.client.main.Main.main(Main.java:265) [client-intermediary.jar:?]
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480) [fabric-loader-0.16.14.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.16.14.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.16.14.jar:?]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at com.modrinth.theseus.MinecraftLaunch.relaunch(MinecraftLaunch.java:87) [theseus.jar:?]
at com.modrinth.theseus.MinecraftLaunch.main(MinecraftLaunch.java:18) [theseus.jar:?]
And you have confirmed that downgrading Controlify fixes this?
And you have confirmed that downgrading Controlify fixes this?
Yes I have tested V2.1.2, V2.2.0 and V2.2.1. If you need any additional details, lmk.
This will be fixed soon!