What's new

Xbox 360 controller, Xinput, with Project 64

ward12e

New member
Just wondered if anybody was planning to implement the features of the Xbox 360 controller through Xinput for use with the project 64 emulator? The controll pad has limited support at the moment through direct input if you download the drivers from www.windowsgaming.com but this doesn't really allow you to use it to its full potential as the 'throttle' buttons can't be used for anything as they aren't recognized when attempting to define them as regular N64 joypad buttons in any of the current plugins.

Also if Xinput was implemented with Xbox 360 pad it would allow use of the N64s rumble feature that was built into many games through the built in support in the joypad and the Xinput SDK.
 

Luc

New member
ward12e said:
Just wondered if anybody was planning to implement the features of the Xbox 360 controller through Xinput for use with the project 64 emulator? The controll pad has limited support at the moment through direct input if you download the drivers from www.windowsgaming.com but this doesn't really allow you to use it to its full potential as the 'throttle' buttons can't be used for anything as they aren't recognized when attempting to define them as regular N64 joypad buttons in any of the current plugins.

Also if Xinput was implemented with Xbox 360 pad it would allow use of the N64s rumble feature that was built into many games through the built in support in the joypad and the Xinput SDK.

Have you tried the N-gage input? That should allow you to use rumble support and all other controls (except the Xbox guide button).

The old Xbox controls work fine with the n-gage incl. rumble, it would surprise me if the Xbox 360 wouldn't work the same way.
 
OP
W

ward12e

New member
Yea I have tried the N-rage plugin and it does support most of the joypad however there are some glitches due to the way that it uses direct input and the new Xbox 360 pad needs support through Xinput.

The rumble feature on the Xbox 360 pad cannot be used through direct input the Xinput SDK must be used instead. Also for some reason which could again be due to the limitations of direct input it doesn't recognise when you press down both 'throttle' buttons on the Xbox 360 pad together.

It may be possible to implement Xinput support relatively easily by modifiying the N-rage source code. I will try and take a look at it when I get the chance.
 

Luc

New member
ward12e said:
Yea I have tried the N-rage plugin and it does support most of the joypad however there are some glitches due to the way that it uses direct input and the new Xbox 360 pad needs support through Xinput.

The rumble feature on the Xbox 360 pad cannot be used through direct input the Xinput SDK must be used instead. Also for some reason which could again be due to the limitations of direct input it doesn't recognise when you press down both 'throttle' buttons on the Xbox 360 pad together.

It may be possible to implement Xinput support relatively easily by modifiying the N-rage source code. I will try and take a look at it when I get the chance.

That's good to know since I was about to buy one to use with pj64. I'll probably hold off now until someone comes up with a driver.

Searching on the internet I see both issues reported. Let me know if you're able to modify the driver:). I'd definitely be most interested:bouncy:
 
OP
W

ward12e

New member
I have managed to add a quick hack to get the rumble feature working with a single pad. However with a bit more work it should be possible to get 4 pads working (but I can't test that) and to enable both throttle controls to be used together. At the moment I'm very limited for time mainly because of my medicine degree so I'm not sure how soon I can improve it further.

For anybody who is intrested I was suprised how simple and concise the XInput SDK is to used compared to DirectInput. It is a pleasure to work with the main thing that is holding me back from implementing it fully is that it will take me a fair bit of time to fully understand the structure of N-rage plugin code.

I can email people what I have done so far if anybody is intrested let me know.
 
OP
W

ward12e

New member
Ok I've hosted the source code and the dll plugin on rapidshare.de

Link for the Plugin:
http://rapidshare.de/files/8835841/NRage_DInput8_V2.dll.html

Link for the source:
http://rapidshare.de/files/8835724/nrplugin183source.rar.html

This is a quick hack so it only supports one xbox pad at the moment and I haven't had time to add a changelog or to modify any of the readme files. I would appreciate any feedback on whether or not it works with all games because i haven't had chance to test it with many yet. So far it definitely works with goldeneye.

To enable rumble support with the joypad open up the N-Rage Input Plugin and on controller 1 go to the controller pak tab, check RawData and select Rumble Pak from the combo menu. Then go to devices and check Xbox 360 Rumble.

If you want to configure the controls of the Xbox 360 pad you must go to the devices tab and select the device XBOX 360 For Windows (Controller) and configure the buttons manually in the Control Tab.
 
OP
W

ward12e

New member

Luc

New member
ward12e said:
I have corrected a bug in the interface, and added support of a slider which controls the rumble intensity. In theory I have also added support for up to 4 Xbox 360 pads at once with rumble for each player but I have no way of testing whether this works as I only have one pad. If anybody can test this feedback would be appreciated.

Plugin:
http://rapidshare.de/files/9031706/NRage_DInput8_V2.dll.html

Source:
http://rapidshare.de/files/9031763/nrplugin183source.rar.html

I'm planning to buy one today and will test it. Do the shoulder buttons work correctly or are they cancelling each other out?
 

Gim

Meber with
That is a good question!!
Next time I will have a closer look at it but I think no you could use them both together. I think it depens on the dirver + Software.
I have heared MS will bring a new driver next year.
I think it is a good pad an the price is O.K. too an if you plan to by a box 360 then by one of the cable controller and you have than 2 one for your friend or for PC and good is.

In some old games you have a little problem to get it to work but the most games work and the most emus to for eg Mame/32 and zsnesw.

If you plan to work with this pad under Linux than you have a problem because at the moment it wont work.
 
Last edited:

Luc

New member
Luc said:
I'm planning to buy one today and will test it. Do the shoulder buttons work correctly or are they cancelling each other out?

I just bought one. I tried to download the drivers and source but it said I downloaded 50MB (which I didn't) and have to wait 20min. I'll try again later.
I'll also look if I can look into the source.
 

Luc

New member
I did not have success with the plugin. I do see 'Xbox 360 rumble' but when I click on it I see 2 overlapped radio buttons. Then when I save it doesn't keep that setting. Maybe I should delete the old n-rage plugin?
I also copied xinput9_1_0.dll manually in the pj64 folder. Hope that's correct.

Also I noticed one other problem with this controller. I notice that if you don't move the analog stick, in PJ64 I still see slight movement. This is especially noticable going right or left. Tap right and then do nothing, you'll notice that there's still movement. Increasing deadzone helped a little.
 

Luc

New member
Update #2: I got it working. The XBOX 360 rumble checkbox is still not checked although it works (plugin GUI is kind of screwed up). When I move over the checkbox I see it suddenly checked (I have XP SP2 and the original plugin doesn't have this issue).

I'm not able to adjust the rumble strength. It's all grayed out.

Otherwise I like the XBOX360 controller. I certainly wish I could use the right trigger for the N64 right shoulder button but the Xbox 360 right should button works fine as well.
It seems the analog pad is really sensitive (and accurate). Just tiny bit will show movement. For N64 it seems little bit much so I increased the deadzone little bit.
 
OP
W

ward12e

New member
Hi Luc are you sure that you have downloaded the latest version of the plugin from this form? I'm I have fixed the bug you mention in the interface with the latest version. If you are certain you are using the latest version I will look into it further for you.

You are right about there still being an issue using both trigger buttons together it is something that i have looked into a little and eventually I will solve if I manage to modify the plugin to have a pure XInput mode. Currently it is just using XInput for the rumble feature with direct input for the buttons and thumb sticks etc.

There might even be a solution by modding the direct input code but i haven't looked into it yet due to lack of time.

You are right about needing to include the Xinput.dll file in the folder with the plugin as the latest redistributable version of directX doesn't include it only the developer SDK. It's something that I should probably include with the mod in the future.

Thanks for the feedback.
 

Luc

New member
ward12e said:
Hi Luc are you sure that you have downloaded the latest version of the plugin from this form? I'm I have fixed the bug you mention in the interface with the latest version. If you are certain you are using the latest version I will look into it further for you.

You are right about there still being an issue using both trigger buttons together it is something that i have looked into a little and eventually I will solve if I manage to modify the plugin to have a pure XInput mode. Currently it is just using XInput for the rumble feature with direct input for the buttons and thumb sticks etc.

There might even be a solution by modding the direct input code but i haven't looked into it yet due to lack of time.

You are right about needing to include the Xinput.dll file in the folder with the plugin as the latest redistributable version of directX doesn't include it only the developer SDK. It's something that I should probably include with the mod in the future.

Thanks for the feedback.

I downloaded it yesterday evening (pacific time). The size is 172,032, version 1.83.1.0. I'd appreciate it very much if you could check if the latest is on the site.

Not sure if the trigger buttons are tied together by the hardware or if the xbox driver does it. I'm quite happy though already with the driver you modified!

How did you compile the project? I downloaded n-rage v1.82 source and tried to compile but it complained about missing afx.h file. I can try your source code. I also assume I need to install the DirectX 9.0c SDK.

Luc
 

Luc

New member
I just downloaded it again just for fun and it worked now! Many thanks.
I'll still try to figure out how the triggers are designed on the controller (might take a while as I'm unfortunately also quite busy at the moment).
 

Top