Ryochan7 / DS4Windows

Like those other ds4tools, but sexier
https://ryochan7.github.io/ds4windows-site/
GNU General Public License v3.0
6.97k stars 808 forks source link

Controller not Recognized in Halo Reach on Gamepass #919

Closed mosherc closed 4 years ago

mosherc commented 4 years ago

I tried updating to 1.7.23 and it does not recognize the controller. I tried the controller with Forza Horizon 4 on Gamepass just to make sure that it was connected correctly, and that worked. I then tried Halo Reach with the original DS4Windows and it worked perfectly. Obviously this might be hard to trace, but something in your new codebase is not making it work for Reach from Gamepass.

Ryochan7 commented 4 years ago

I wonder if anyone has had a problem when launching Halo: Reach from Steam. The old Jays2Kings build has been confirmed to work beforehand so there should be no reason that this build would not work in Halo: Reach. I don't have it in my library so I cannot test it out.

If anything is wrong on the DS4Windows side then I would hope some of the most recent changes would fix the problem. I have not gotten any feedback so it probably has not been tested by anyone else. The new output device and delay changes work great on my rig. A new release of DS4Windows needs to come out soon with the recent changes.

mosherc commented 4 years ago

I read elsewhere that most people are using Steam's built in controller emulation for big picture mode and that works. Someone else submitted a similar issue here so it seems like for some games it's happening. Strange that he can't get it to work at all, it's just Reach that doesn't work for me. Is there anything I can do to help since you don't have the game?

Are you saying you have an upcoming release that might fix this?

Ryochan7 commented 4 years ago

More of an optimistic hope than anything else. If you want to test it now, you can check out the most recent WPF beta build (dubbed DS4Windows 1.9) and see if it works there. Make sure to place that version of the program in a different directory than your current DS4Windows installation. Please do not overwrite your current DS4Windows installation. Also, I guess I would recommend that you first reboot your PC to make sure ViGEmBus is in a clean state.

https://drive.google.com/file/d/128XDikjRcYEFbwgfqzqKBJfS0m9Q92Zl/view?usp=sharing

mosherc commented 4 years ago

Tried that in a new directory after restarting and it didn't work :(

mika-n commented 4 years ago

Do you mean that DS4Windows doesn't detect the gamepad or that DS4Win app does detect it but Halo game doesn't see the virtual output controller? If the latest V1.7.23 DS4Windows app doesn't detect the gamepad then try running the debug version to diagnose connection issues. Download the DeviceDetect debug version, extract it to a new folder and launch it instead of the "normal" version of DS4Windows and connect the gamepad. What do you see in Logs tabpage in the DS4Windows debug app? The same result while BT and USB connected (close and re-launch the debug app before changing a connection type)? Please provide the content of that Logs page here for further analysing. https://github.com/Ryochan7/DS4Windows/wiki/Troubleshooting#detailed-debug-log-file-from-gamepad-connection-problems

If the issue is that DS4Windows does detect the gamepad, but Halo game doesn't then are you using DS4Windows profile in xbox360 or dualshock4 Controller output mode? If you use ds4 virtual controller output mode in a profile then check the following troubleshooting tip for Steam client. https://github.com/Ryochan7/DS4Windows/wiki/Troubleshooting#steam-doesnt-see-the-virtual-output-controller-if-a-profile-uses-the-dualshock4-output-type-steam-sees-the-ds4-controller-only-if-ds4windows-uses-xbox360-output-controller-type

Ryusennin commented 4 years ago

I played Reach for one hour on Steam (all Steam Controller settings disabled, only DS4Windows + HidGuardian) and it works perfectly with a DS4. For info, I'm on Win7.

Ryochan7 commented 4 years ago

That's a bummer. Is this just an exclusive mode problem regarding the Xbox Gamepass app then? I would bet this would probably work if Halo: Reach were purchased and launched through Steam. I wouldn't normally do it but I guess I will sign up for the Xbox Gamepass PC Beta. Luckily it is fairly cheap right now.

mosherc commented 4 years ago

@mika-n this is a Gamepass only issue, so I'm not sure how that second paragraph is relevant. Several people here and on Reddit have said it works fine with Steam.

mosherc commented 4 years ago

FWIW, Reach doesn't work wired either, but here are the logs for BT then USB.

debug.txt debugusb.txt

Ryochan7 commented 4 years ago

I got Halo Reach installed from XGP and played for about 30 minutes. It worked perfectly fine for me. I see that you are using the standard Shared Mode in DS4Windows. I will give Shared Mode a try and see how the game behaves then. My playthrough was when using Exclusive Mode via the Hide DS4 Controller setting.

One bummer that I already heard about from the Steam Controller community is that the game does not support mixed input. You have to either use full gamepad controls or full KB+M controls. Most people would probably use full gamepad support for the DS4 anyway but I usually like mapping RS to the mouse for FPS games.

Ryochan7 commented 4 years ago

Shared Mode works okay but it does feel like that having the physical DS4 controller exposed to the game adds some extra input lag for some reason. While using DS4Windows, the only way to have the game stop responding to the controller is to use any keyboard key or use the mouse.

mosherc commented 4 years ago

I tried checking that setting on and it still doesn't work. That's so weird that it works for you and not me. Regarding your comment about mixed input, would unplugging my mouse and keyboard help?

Ryochan7 commented 4 years ago

I would hope that would not be necessary. I noticed that menus still work when using the mouse and controller at the same time. In-game there is a short pause after using the mouse before gamepad controls register again. I doubt it would make a difference but you might want to check if the DS4 touchpad is active at the time. Maybe either disable Trackball mode or set the touchpad to Use as Controls (Swipe).

mika-n commented 4 years ago

The "debug.txt" and "debugusb.txt" shows that the profile you are using has "Controller=dualshock4" option. Have you tried to use a profile with xbox360 output mode? Any better luck?

Also, you seem to have revision1 DS4 gamepad plus three unknown HID gamepad devices (unknown for DS4Windows app). Well, this is not a problem (DS4Win won't use those unknown devices for anything) but how about the Halo Reach game? Does it see those gamepads and somehow is confused?

12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#8 Path=\\?\hid#vid_2833&pid_0051&mi_06#9&376d0814&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}  Description=HID-compliant device  VID=0x2833  PID=0x0051  Usage=0x5  Version=0x108
12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#8 unknown gamepad device. It may not be DS4 compatible, but trying to use it as potentially DS4 compatible gamepad device

12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#10 Path=\\?\hid#vid_2833&pid_0051&mi_07#9&2927d99&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}  Description=HID-compliant device  VID=0x2833  PID=0x0051  Usage=0x5  Version=0x108
12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#10 unknown gamepad device. It may not be DS4 compatible, but trying to use it as potentially DS4 compatible gamepad device

12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#13 Path=\\?\hid#vid_2833&pid_0051&mi_08#9&2afd2b62&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}  Description=HID-compliant device  VID=0x2833  PID=0x0051  Usage=0x5  Version=0x108
12/10/2019 7:25:26 PM: DEBUG: EnumerateDS4. HID#13 unknown gamepad device. It may not be DS4 compatible, but trying to use it as potentially DS4 compatible gamepad device
Ryochan7 commented 4 years ago

Missed that in the log. I just saw the Default profile being used and assumed that Xbox 360 controller emulation was being used. I noticed that BT was still being used in debugusb.txt

I tested it out before and the game has no type of support the DS4 itself. The game will not register an

Ryochan7 commented 4 years ago

Phone decided to press a button. My finger was not even close. Anyway 360 controller emulation has to be used in order to play Halo Reach.

mosherc commented 4 years ago

@mika-n that worked! Didn't realize that's a setting. Makes sense that a first party MS game would require Xbox controller input. Thanks guys!

Ryochan7 commented 4 years ago

DS4 controller output mode has come in handy several times since it was introduced in DS4Windows version 1.7. Xbox 360 controller emulation will still be the output controller type that would be used most of the time and that is the default mode for new profiles. Some older DirectInput games seem to benefit from emulating a DirectInput DS4 controller rather than emulating an Xbox 360 controller.

Ryochan7 commented 4 years ago

Just finished Halo: Reach. I wish release dates were published for the other games in the collection. Never played through Halo: Combat Evolved nor Halo 2. Ended up having some crashes pop up while playing Reach and major sound cracking issues ruined some cutscenes; the dialogue could not be heard in several cutscenes especially towards the end of the campaign. I am not sure the Halo Master Chief Collection is really worth a purchase until some issues get fixed.

This issue can now be closed.