briankendall / devreorder

A utility for reordering and hiding DirectInput controllers
331 stars 32 forks source link

NFS: Porsche Unleashed crashes on race load #35

Closed sdether closed 3 years ago

sdether commented 3 years ago

Following instructions from https://www.pcgamingwiki.com/wiki/Need_for_Speed:_Porsche_Unleashed#Menu_lag_when_using_a_controller.2FAxes_do_not_function_correctly_.28Win8.2B.29 I installed your program and hid/reordered my controllers based on GUID. Loading the game menu it did properly only show the listed controllers and I was able to configure the controller as well. However, once starting a race, it loads the track and right before switching over to the render of the race it closes without any message.

If there is anything I can do on my end to provide a more useful bug report or diagnostic data, please let me know.

sdether commented 3 years ago

Additional information: The crash seems to be specific to the controller. When I just list my Xbox controller, everything works fine. It's when I try to use the "FANATEC CSL Elite Wheel Base PlayStation 4" controller is when it crashes.

briankendall commented 3 years ago

Are you able to check whether the game can receive any input from your Fanatec wheel before starting a race? For example using an input test mode, or sending input in the game's settings to bind a button or axis to one of the game's controls. I'm not sure if this game has either of those modes since I haven't played it, but I'm wondering if the game trying to read input from your wheel is what causes the crash (and it doesn't matter when it tries), or if it's something that only occurs when the game is in a race.

sdether commented 3 years ago

I did some more experiments and it looks like the crash is happening in dinputto8 not devreorder.

So my guess is that there's something in the way the Fanatec uses Direct Input that is not compatible with the API mapping that dinputto8 does.

briankendall commented 3 years ago

That's some good debugging you did there! I hope you can find a solution with the authors of dinputto8.

Also, thanks for letting me know about the existence of dinputto8, since it apparently works in conjunction with devreorder. I'll make a little note in my read me about it.