KrossX / Durazno

XInput wrapper that allows controller customization
MIT License
199 stars 21 forks source link

Need for Speed: Most Wanted (2005) not working #10

Closed Red86 closed 8 years ago

Red86 commented 8 years ago

Hello, for the past two days I've been trying to get this program to work with said game. In their infinite wisdom EA decided that the pc version of the game didn't need a deadzone for controllers, so when you try to play it with a 360 controller (and I guess just about every other controller) the car is constantly steering from left to right. A program like this would be the ideal solution and, make the game finally playable with a controller.

Let's get out of the way computer related information first. I am running windows 10 pro 64 bit, the controller I am trying to use is a xbox 360 wired controller connected on Port#0001.Hub#0006 according to the device manager.

What I am doing is launching, the configurator tool and configure as I want, then, I take the ini file and .dll and drop them in the same folder where the .exe is located, I am using the 32 bit version of the .dll since the game .exe is 32bit as well. I've tried to use the 64bit version too but, it still didn't work. The game simply seems to ignore it.

I've tried to open the .ini and under [Controller0](which is where the program stores my edits), I've changed the port to 1, as that's where according to windows, my controller is connected to. I've also disabled the other controllers in there (not that I have any, but just in case), by changing the 0 after disable to 1. Still, that didn't work.

I've tried by downloading the "Dependency Walker" program as I saw it suggested in another thread on here and, it SEEMS that one of the .dll the game tries to load is DINPUT8.DLL, which I assume is what in 2005 handled inputs.

With this new bit of information, I've renamed the XINPUT1_3.dll to DINPUT8.DLL, confident that I had finally cracked the issue and was going to be enjoying the game shortly but alas, that wasn't the case. With the .dll renamed when I try to launch the game it complains about an "Entry Point Not Found". Specifically it says that the procedure entry point DirectInput8Create could not be located in the dynamic link library.

I am at my wits end now, is there something that I can do to get this to work or, I am just out of luck? I've uploaded the .exe of the game here: https://mega.nz/#!iQNjEDTT!FjalMnHF-mmPHE3Oiscier9Bo0qgLJy3Gyjq7nfd4fc in case someone with more knowledge on the matter would like to take a look.

Thanks, Mark

KrossX commented 8 years ago

You did all the right things, but Most Wanted only uses the DirectInput API. Durazno on the other hand, only works with the XInput API making them incompatible with each other.

There's a better wrapper/thing to try though: XInput Plus. This application does seem to have DirectInput support and customization. I have never tested it so I have no clue if it works well.

Red86 commented 8 years ago

Hello KrossX, thank you very much for your prompt reply, it has helped me greatly.

I did give XInput a shot and it's working wonderfully, minus the vibration support, which seems a bit iffy (though chances are I still didn't get around on how that works properly). It supports only deadzone increments in steps of 5% but it works great. It basically creates a dinput8.dll that it then uses to load the xinput1_3.dll and that does the trick just fine.

Perhaps something that could be considered for future versions. Thanks again for the help!

KrossX commented 8 years ago

You're welcome, nice that it works.

I thought about DirectInput support since the beginning but it was beyond my skills, and still is.