Kytech / xbox360wirelesschatpad

Xbox 360 Wireless Chatpad for Windows
Other
79 stars 9 forks source link
chatpad mouse-mode xbox-360 xbox-chatpad xbox-controller xbox360-chatpad xbox360-controller

xbox360wirelesschatpad

Project moved from code.google.com/p/xbox360wirelesschatpad

This application will allow you to use your Xbox 360 Wireless Controllers + Attached Chatpads on a Windows PC cordless through an Xbox 360 Wireless Receiver. Its been tested on Windows XP, Windows 7 64-Bit, and Windows 8 64-bit with decent success.

Special Thanks to Ryan and Brandon who's source code this project is based on. Additional thanks to SkyAG/ksbarnes, who first wrote and maintained this codebase prior to the Google Code shutdown.

Disclaimer: As this is free, open-source software I hold no liability for any damages it may cause to you or your equipment. There isn't too much being installed, and I believe everything can be un-done but, use at your own risk. See the Readme.txt inside the archive for more details.

Project Status Update

Oct 26 2021 - In a fortunate turn of events, I managed to reconnect with the original author of this project, SkyAG/ksbarnes when he reached out on this repository. He is now added as a collaborator to this repository and will be able to contribute with full access. Please feel free to tag him in any pull requests as well so that we can get to it sooner and/or so that we can benefit from his input as the original author. I have also been in recent contact with Ryan and Brandon, whose code/findings serve as the basis of this program. This has helped give some further information as to where some additional improvements can be made until I can find the time to write this as more of an actual driver component, compared to relying on intermediary libraries like libusb and vjoy. Additionally, this line of contact will likely be helpful when I can get around to this. Ryan was able to share with me some of his findings and code while Brandon may be able to help point me in the right direction when I encounter roadblocks. ksbarnes probably knows this application better than anyone else, so keep an eye out for his comments on issues/PRs. After touching base with ksbarnes/SkyAG, it sounds like I will continue to oversee maintenance of this repository going forward. - Kytech

Presently, there are many random bugs that are very hard to track down due to the current implementation of the app as of now. I am beginning a large rewrite of the application which will change its underlying architecture and simplify the number of pieces involved in making this thing work. This should eliminate many of the functional limitations as well as reduce the likelihood of difficult or obscure bugs. These rewrites are targeted for version 1.0 of the program. The version 1.0 roadmap can be viewed here

A few important points concerning my roadmap for this project once I can get to it:

Please note that this is a side project for me that I work on during my leisure, so development progress will likely be sporatic between my other demands. I am still happy to try and help troubleshoot issues with the current version, though please be aware that many issues which are reported are often very difficult for me to replicate, so the more detail in your issues, the better.

Recent Changes

Known Functional Limitations

-The native XInput driver is replaced with a non XInput driver. This may cause issues when using the controller in newer games that are expecting XInput functionality. It is planned to add a feature that allows for the switching between the chatpad driver and native XInput driver to work around this issue. Another workaround is to use the x360ce program which allows a non-XInput device to emulate an XInput device.

-Headset not supported. The scope of this application is not to create a driver but drive existing drivers (vJoy). To implement this I would need to find a virtual audio driver or create my own, and it may not work great due to latency issues anyway. Also, because this is windows, there are many ways to attach a headset/microphone other than through the Xbox 360 Controller. In short, I don't see a huge need for this functionality, but feel free to post an issue if you'd really like to see it added. With enough support, I may try to explore it.

-Force Feedback not supported. This can be done now since vJoy supports force feedback using the latest version, but I don't know how to send the commands to the controller since the developer who knew how to send these signals has not had any activity on this project since the Google Code Shutdown.

-Not all 3rd party receivers work very well with this project. Microsoft receivers are recommended to be used with this project. Some 3rd party receivers work fine and some don't work at all. Most connection issues are due to the use of a 3rd party receiver or an installation error. If you are using a 3rd party receiver and cannot get the chatpad or controller to connect and you are sure everything is installed correctly, unfortunately there is nothing I can do to fix this. If you are having issues with a 3rd party receiver that is not connection-based, or a connection issue with a Microsoft-branded receiver, post an issue and please specify if you are using a 3rd party receiver.

Installation Directions

There's a unique method of getting this driver to work which requires two other applications to be installed. Follow these installation instructions exactly before submitting any issues.

Installing the LibUSB Driver

  1. Plug-In and Install the Native Drivers for your XBOX 360 Wireless Receiver.
  2. Download LibUSB here. (v1.2.6)
  3. Extract the Archive to a Directory.
  4. Execute the following as an Admin: Directory/bin/Architecture/install-filter-win.exe
  5. Select "Install a Device Filter".
  6. Select the item with Description "Xbox 360 Wireless Receiver for Windows".
  7. Select "Install" then after the confirmation box select Cancel.
  8. Execute the following path: Directory/bin/inf-wizard.exe
  9. Select "Next".
  10. Select the item with Description "Xbox 360 Wireless Receiver for Windows".
  11. Select "Next" then save the new .inf somewhere.
  12. Select "Install Now" to install the driver.
  13. Select OK at the confirmation, the LibUSB driver should now be installed.

Installing the vJoy Driver

  1. Download vJoy here. (v2.0.2)
  2. Install as an Admin with at least the vJoy Configuration Application.
  3. Run "Configure vJoy" from the newly created Start Menu folder.
  4. Match the following selection then hit OK:
    • Basic Axes Selected: X, Y, Z, R/Rz/Rudder
    • Additional Axes Selected: Rx, Ry
    • POV Hat Switch: Continuous
    • POVs: 1
    • Number of Buttons: 11
  5. The Configuration utility will disappear, the vJoy Driver should now be installed.
  6. Note: For multiple controller support you can specify additional configurations with this utility. Use the counter in the bottom right of the program to change between 1, 2, 3, and 4 controllers.

Running the Xbox 360 Wireless Chatpad Application

  1. Download the latest version of the application here.
  2. Extract all of the files in the archive to a single directory.
  3. Execute "Xbox 360 Wireless Chatpad.exe"
  4. Follow in instruction in the application to connect your controller.

Note: The first time you connect a controller, you should Calibrate it using the Windows Game Controllers utility in the Control Panel (Windows XP). The following describes different Axes during calibration (Xbox Stick: Windows Name)

Final Fantasy XIV Users

In order to use the Final Fantasy XIV compatibility mode, the vJoystick should be configured with the following settings instead of above:

Special Commands

Mouse Mode will allow you to move the mouse cursor, perform both left and right clicks, and scroll a window vertically. To enable Mouse Mode simply hold down the following button combination for 3 seconds:

To shut down a controller while leaving the application running hold down the following button combination for 5 seconds: