I want to buy a Xbox controller with PC receiver.
I know it uses Xinput.
Will it work with old games that use DirectInput?
I like your question - It's straightforward.
Yes, MSDN provides confirmation that this will work and of the limitations imposed on the Xbox 360 controller when using DirectIput:
The Xbox 360 Controller is properly enumerated on DirectInput, and can be used with the DirectInputAPIs. However, some functionality provided by XInput will be missing from the DirectInput implementation:
- The left and right trigger buttons will act as a single button, not independently
- The vibration effects will not be available
- Querying for headset devices will not be available
I'm not sure if it's clear from their infomation as it is generally targetting software developpers rather than users, but with a default PnP driver for Windows Vista or Windows 7, the controller should use a common driver that will work with XInput when applicable while also pulling up under DirectInput when not - but of course the above limitations will apply under DirectInput. For older versions of windows, the default is usually a DirectInput driver and you would have to seek out the XInput driver.
Using a wired XBox 360 controller, you can use a custom driver such as the dated XBCD to overcome many of these limitations and provide for further customization for the XBox 360 controller under DirectInput. Note that this setup would require that you add a wrapper library to the game directory of games for which you want to use XInput. Commentary on this driver has been almost always favourable from what I've read and it was still being kept up in 2011.
There is a fairly dated (2008, I think) alternate driver for the wireless controller called X360WC, but I have found few clear details as to what functionality it provides with respect to DirectInput - here is the only guide I've pulled thus far. From what I've read, it works well. As this driver comes from a Japanese point of origin, support is a bit sparse.