View Issue Details

IDProjectCategoryView StatusLast Update
0000568Gameplay + OpenGL[All Projects] Bugpublic2017-04-18 04:36
ReporterNeurochild 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformx64OSWindows 10 HomeOS Version1703
Summary0000568: [Bug] Xinput gamepads not detected when enabling joysticks (2.4.0 x64)
DescriptionThe current 64-bit build of GZDOOM (2.4.0) for windows doesn't recognize either my Xbox 360 or F710 wireless gamepads (on Xinput mode) as Xinput controllers, but they are recognized as DirectInput. This is the main reason the triggers appear as axis whenever I'm customizing the controls.

Besides, a gamepad is detected as Directinput when the controller name (i.e.: "Controller (Xbox 360 for Windows") is displayed instead of "Xinput Controller #1" on the "Configure Controllers" section.
Steps To ReproduceAs simple as follows:

- Go to Options > Joystick Options
- Set "Enable Controller Support" to Yes

To further prove my point, set all options except "Enable Xinput Controllers" to No.
Additional InformationThis bug is exclusive for the 64-bit build of 2.4.0. The 32-bit build works as intended and recognizes both of my gamepads correctly (as Xinput controllers). Funny thing is that it doesn't happen either on the previous versions (including 2.3.2) on both 32 and 64-bit builds.

Guess I'll have to go and use the 32-bit build for the time being.
TagsNo tags attached.

Relationships

Activities

Graf Zahl

Graf Zahl

2017-04-14 10:18

administrator   ~0001367

I do not have any controller to test this with, so unless someone comes forward to see what happens, there's nothing that can be done, so I am putting this on hold.
jpalomo

jpalomo

2017-04-16 02:23

reporter   ~0001404

Is this thread relevant at all? [Tutorial] Compiling the GZDoom source code with CMake
I have a controller (wii u pro controller with a Mayflash wireless adapter) and am willing to help test any changes you want to make.
_mental_

_mental_

2017-04-16 03:26

developer   ~0001406

This Wiki article contains up-to-date information.
You can ignore anything related to FMOD, OpenAL and DirectX SDK. To build GZDoom without sound/music support you need only Visual Studio 2015 (or 2017) and CMake.
Something like: install VS and CMake, download source code from GitHub and unpack it, run CMake and select source directory, press Generate, Finish, Open Project buttons in CMake, press Debug button in Visual Studio.

But first, one simple question: did you able to reproduce this issue using 2.4.0 x64?
It works for me using wired Xbox 360 controller using 32- and 64-bit version.
jpalomo

jpalomo

2017-04-16 04:07

reporter   ~0001407

I was referring specifically to DaMan's post in that thread:
DaMan wrote

You might want to get a Windows7 user to test a Xbox controller. The Windows SDK only links to the Win8/10 Xinput14 or gimped Xinput91 (unless Zdoom reports battery life for wireless controlers don't think it affects anything). IIRC Zdoom is defining WIN32_WINNT as XP before including Xinput.h so it should be linking against the latter.

I've got a 64-bit build setup and can confirm the issue in the original report. I tested it with 2.5pre G4f67DC4. Xinput controllers are being reported as DirectInput. Disabling DirectInput controllers will remove the controller from the list. I did download the 32-bit version of 2.4.0 and tested it there to find it worked perfectly.

I'm going to add this info just in case it is relevant. My controller adapter has a switch on it to change from Xinput (1 controller only) to DirectInput (up to 4 controllers), and has its own drivers which haven't been updated in a while.
_mental_

_mental_

2017-04-16 04:33

developer   ~0001408

Could you please check with 2.3.2 and maybe some earlier versions?
To do something meaningful with this we need to now when it was broken.
jpalomo

jpalomo

2017-04-16 05:19

reporter   ~0001409

I think I've narrowed it down to this commit, which coincides with the discussion on the earlier linked topic. I tested eff03d13 (the commit right before it) and the controller showed up as 'Xinput Controller #1' with Xinput controllers enabled. With DirectInput enabled and Xinput disabled, it showed up as 'Controller (xbox 360 for windows)'.
Graf Zahl

Graf Zahl

2017-04-16 06:55

administrator   ~0001410

The commit you linked to was later reverted, so it should no longer be an issue.
_mental_

_mental_

2017-04-16 07:20

developer   ~0001411

Can't say for sure but I think this issue is somehow related to toolkit being used.
Graf, did you use Windows XP compatibility toolkit for 2.4.0 release, 32- and 64-bit both?
Graf Zahl

Graf Zahl

2017-04-16 08:19

administrator   ~0001412

32 bit is built with XP toolset, 64 bit with modern toolset.
So, this sounds like something in the modern toolset is not working correctly.

Of course, just forcing the old toolset is not a solution, as sooner or later XP support will be removed, so whatever causes the problem needs to be found.
Neurochild

Neurochild

2017-04-16 08:26

reporter   ~0001413

Just to let you know. I've also tested in 2.3.2, both 32 and 64 bits builds. They detected Xinput controllers correctly.

So the issue is with the 64-bit build on the current version, as the 32-bit build has no issues when it comes to Xinput controllers.
_mental_

_mental_

2017-04-16 09:53

developer   ~0001414

The problem is with XINPUT_DLL preprocessor definition: its value is xinput1_3.dll for legacy toolkit (DirectX SDK to be precise) and xinput9_1_0.dll for modern one (Windows 7 SDK that came with Visual Studio).
Apparently there are some issues with the latter DLL.
Should we hardcode name of working one to fix this bug?
Graf Zahl

Graf Zahl

2017-04-16 12:24

administrator   ~0001416

If that works it's at least an option.
_mental_

_mental_

2017-04-18 02:43

developer   ~0001427

Fixed in b6774e7
jpalomo

jpalomo

2017-04-18 02:57

reporter   ~0001428

Just tested the new commit on a 64-bit build. It seems to work just fine now.

Issue History

Date Modified Username Field Change
2017-04-11 20:24 Neurochild New Issue
2017-04-12 02:03 _mental_ Priority high => normal
2017-04-12 02:03 _mental_ Severity crash => minor
2017-04-14 10:18 Graf Zahl Status new => on hold
2017-04-14 10:18 Graf Zahl Note Added: 0001367
2017-04-16 02:23 jpalomo Note Added: 0001404
2017-04-16 03:26 _mental_ Note Added: 0001406
2017-04-16 04:07 jpalomo Note Added: 0001407
2017-04-16 04:33 _mental_ Note Added: 0001408
2017-04-16 05:19 jpalomo Note Added: 0001409
2017-04-16 06:55 Graf Zahl Note Added: 0001410
2017-04-16 07:20 _mental_ Note Added: 0001411
2017-04-16 08:19 Graf Zahl Note Added: 0001412
2017-04-16 08:26 Neurochild Note Added: 0001413
2017-04-16 09:53 _mental_ Note Added: 0001414
2017-04-16 12:24 Graf Zahl Note Added: 0001416
2017-04-18 02:43 _mental_ Note Added: 0001427
2017-04-18 02:57 jpalomo Note Added: 0001428
2017-04-18 04:36 _mental_ Status on hold => resolved
2017-04-18 04:36 _mental_ Resolution open => fixed