diff --git a/README.md b/README.md index 6136a18..9c6495c 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,10 @@ -# Razer Atrox WinUSB VigEm Feeder -This tool is a simple console application which processes WinUSB input from the **Razer Atrox XBO** controller through -to a VigEm Virtual XB360 gamepad. This allows you to use your **Razer Atrox XBO** in any game that supports a XB360 -controller. All 8 face buttons work without any need to install ancient, beta drivers and rewire buttons. +# XBOFS.win +**XBOFS.win** allows you to use your **XBO Fight Stick** controller on Windows without having to install ancient, beta drivers +and rewire buttons +In order to compile this project you will need at least [Microsoft Visual Studio Community 2017](https://visualstudio.microsoft.com) -## Requirements +Compilation is quite simple: -1. Windows 7 or newer -2. **Razer Atrox XBO** - - -## Installation - -1. Head over to https://github.com/ViGEm/ViGEmBus/releases/ and download the latest VigEmBus installer -2. Install **VigEmBus** and reboot -3. Head over to https://zadig.akeo.ie and download **Zadig 2.4** -4. Head over to https://github.com/OOPMan/RazorAtroxWinUSBVigEmFeeder/releases and download the latest versions of - - 1. ``RazorAtroxWinUSBVigEmFeeder_x64.exe`` - 2. ``razer_atrox_zadig_preset.cfg`` - -5. Plug in your **Razer Atrox XBO** -6. Head over to the *RazerAtroxWinUSBVigEmFeeder ZaDig guide* at https://imgur.com/a/F8XqFXx and follow the instructions - there to install a WinUSB driver for your **Razer Atrox XBO** -7. If, for some reason, the ZaDig guide does not work for you, then you will need to do the following: - - 1. Head over to https://github.com/OOPMan/RazorAtroxWinUSBVigEmFeeder/releases and download - the latest ``Razer.Atrox.WinUSB.Driver.zip`` - 2. Follow the instructions at http://jbcomp.com/disable-device-driver-signing-in-windows-10/ to disable the - requirement for signed device drivers - 3. Extract the contents of the ``Razer.Atrox.WinUSB.Driver.zip`` file somewhere and then open the - ``Razer Atrox WinUSB Drivers`` folder that was extracted - 4. Right-click on the file ``Razer\_Atrox\_Arcade\_Stick.inf`` and select *Install* from the menu - 5. You should get a message stating the driver was installed correctly -8. Run ``RazorAtroxWinUSBVigEmFeeder_x64.exe`` and wait for both status lines to state ``CONNECTED``. You may - see a pop-up notification about a new XB360 controller being detected. This is created by the tool using VigEmBus - and is a virtual controller that all input from the Atrox will be directed to -9. You should now be able to play any of your fighting games in Steam. They will detect the Atrox as a standard XB360 - controller. Note that the input from the stick is mapped to the D-Pad on the virtual XB360 controller not the analog - stick. Additionally, Windows Store games like Killer Instinct will work fine too. -10. When you are done playing, activate the *RazorAtroxWinUSBVigEmFeeder_x64.exe* window, hit *Q* and press a button on the Atrox. The application will exit and the virtual XB360 controller will disappear - - -## Uninstallation - -If you want to revert to either of the MS XBO controller drivers for this device it's quite simple to do so: - -1. Hit *Win* \+ *R* -2. Enter *devmgmt.msc* in the Run box and press enter -3. Click *View* and then click *Show hidden devices* -4. Locate the item in the tree labelled *Universal Serial Bus devices* -5. Right-click the *Razer Atrox Arcade Stick* item and click *Uninstall device* -6. In the dialog box, mark the checkbox labelled *Delete the driver software for this device* -7. Click *Uninstall* -8. Replug your Razer Atrox. It will now use whichever MS driver you previously configured for it - - -## Interface -The application provides a simple text-mode UI. When running the UI appears as follows: - -``` -WinUSB Status: CONNECTED -VigEm Status: CONNECTED - -Press: -* Q and then a button on the controller to exit -``` - -### WinUSB Status -* **DISCONNECTED**: The Razer Atrox is not connected or has disconnected -* **INIT**: The Razer Atrox is connected and the INIT packet has been sent -* **CONNECTED**: The Razer Atrox is connected and data from it has been received - -### VigEm Status: -* **DISCONNECTED**: VigEm Virtual XB360 controller is disconnected -* **CONNECTED**: VigEm Virtual XB360 controller is connected - - -## Operation -Upon starting the application will attempt to establish a connection with the Razer Atrox via WinUSB. Once a connection -has been established it will create a VigEm XB360 controller and begin processing input through. - - -## Roadmap - -1. Improved GUI (Text-mode first, later a proper Win32 GUI) -2. Advanced Input rebinding and presets system -3. Input modifier system to allow a button on the controller to be used to trigger alternate input mode. - Similar to the *Shift* key on a keyboard -4. Support up to 8 controllers -5. Integrate ``libwdi`` to integrate WinUSB driver generation and installation into the application -6. Support other XBO Arcade Stick controllers that do not work correctly on Windows - - -## Credits - -I'd like to thank the following people for their assistance on this project: - -* *Nefarius*, *!ϻega*, *evilC*, *Snoothy* and *Sylveon* of the [Nefarius Software Solutions](https://discord.vigem.org/) Discord server for their assistance with with VigEm, WinUSB and C++ -* [ZaDig](https://zadig.akeo.ie) for the tool used to generate the WinUSB driver for the Razer Atrox -* The developers of the *xpad* driver for Linux which provided some useful information on interacting with XBO controllers -* The developers of *Device Monitoring Studio*, which I used to capture the USB packet data sent and received by the Razer Atrox - - -## Contact Details - -I would love for anyone testing this tool to provide feedback on the following: - -* Did you notice any input lag or similar issues? -* Did the tool fail to work in any games you tried? -* Do you have any ideas or suggestion to improve the tool? - -You can contact me via the following avenues: - -* The [Nefarius Software Solutions](https://discord.vigem.org/) Discord server -* The GitHub issue tracker for the tool is here: https://github.com/OOPMan/RazorAtroxWinUSBVigEmFeeder/issues -* You can also leave a message on the forum thread https://forums.vigem.org/topic/282/xbo-arcade-sticks-vigem-and-a-whole-ton-of-fun/ -* The Reddit post for this software is here: https://www.reddit.com/r/Fighters/comments/bjmca9/attention_razer_atrox_xbo_owners_other_xbo_arcade/ +1. Open the **XBOXFS.win.sln** file using Visual Studio +2. In *Solution Explorer*, right-click on the **XBOFS.win** project and click *Build* \ No newline at end of file diff --git a/RazorAtroxWinUSBVigEmFeeder.sln b/XBOFS.win.sln similarity index 84% rename from RazorAtroxWinUSBVigEmFeeder.sln rename to XBOFS.win.sln index 9f78cd1..d72109d 100644 --- a/RazorAtroxWinUSBVigEmFeeder.sln +++ b/XBOFS.win.sln @@ -3,19 +3,33 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.572 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RazorAtroxWinUSBVigEmFeeder", "RazorAtroxWinUSBVigEmFeeder\RazorAtroxWinUSBVigEmFeeder.vcxproj", "{F6104731-5815-4BBA-A558-E859DD039413}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XBOFS.win", "XBOFS.win\XBOFS.win.vcxproj", "{F6104731-5815-4BBA-A558-E859DD039413}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ViGEmClient", "ViGEmClient\src\ViGEmClient.vcxproj", "{7DB06674-1F4F-464B-8E1C-172E9587F9DC}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1E0515A5-B0AA-4821-90DE-C764A2C35AF2}" ProjectSection(SolutionItems) = preProject .gitignore = .gitignore + _config.yml = _config.yml + CNAME = CNAME LICENSE.txt = LICENSE.txt pre-build.cmd = pre-build.cmd README.md = README.md VigEmClient.patch = VigEmClient.patch EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{B758C57A-D285-4991-96CF-8B166A4FE290}" + ProjectSection(SolutionItems) = preProject + docs\device_contributor_guide.md = docs\device_contributor_guide.md + docs\index.md = docs\index.md + docs\zadig.md = docs\zadig.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "presets", "presets", "{98CB9F55-4522-4F47-8C9F-79070A0C1464}" + ProjectSection(SolutionItems) = preProject + presets\razer_atrox_zadig_preset.cfg = presets\razer_atrox_zadig_preset.cfg + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_DLL|x64 = Debug_DLL|x64 @@ -84,6 +98,10 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {B758C57A-D285-4991-96CF-8B166A4FE290} = {1E0515A5-B0AA-4821-90DE-C764A2C35AF2} + {98CB9F55-4522-4F47-8C9F-79070A0C1464} = {1E0515A5-B0AA-4821-90DE-C764A2C35AF2} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B5964061-63A6-4D2B-9142-462BCF9B6748} EndGlobalSection diff --git a/RazorAtroxWinUSBVigEmFeeder/PDCursesUIManager.cpp b/XBOFS.win/PDCursesUIManager.cpp similarity index 97% rename from RazorAtroxWinUSBVigEmFeeder/PDCursesUIManager.cpp rename to XBOFS.win/PDCursesUIManager.cpp index 8113635..ebae3a6 100644 --- a/RazorAtroxWinUSBVigEmFeeder/PDCursesUIManager.cpp +++ b/XBOFS.win/PDCursesUIManager.cpp @@ -60,7 +60,7 @@ int PDCursesUIManager::checkMailbox() void PDCursesUIManager::render(bool exiting) { erase(); - mvwprintw(this->window, 0, 0, "Razer Atrox WinUSB VigEm Feeder %s", exiting ? "" : "(Press Q to exit)"); + mvwprintw(this->window, 0, 0, "XBOFS.win v0.3 %s", exiting ? "" : "(Press Q to exit)"); mvwprintw(this->window, 2, 0, "WinUSB Device Manager (Thread ID %d) status: %s", this->winUsbDeviceManager->getThreadId(), threadMessageToString(this->winUsbDeviceManagerStatus).c_str()); auto counter = 0; for (auto threadId : this->winUsbDeviceThreadIdList) { diff --git a/RazorAtroxWinUSBVigEmFeeder/PDCursesUIManager.h b/XBOFS.win/PDCursesUIManager.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/PDCursesUIManager.h rename to XBOFS.win/PDCursesUIManager.h diff --git a/RazorAtroxWinUSBVigEmFeeder/Thread.cpp b/XBOFS.win/Thread.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/Thread.cpp rename to XBOFS.win/Thread.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/Thread.h b/XBOFS.win/Thread.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/Thread.h rename to XBOFS.win/Thread.h diff --git a/RazorAtroxWinUSBVigEmFeeder/WinUsbDevice.cpp b/XBOFS.win/WinUsbDevice.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/WinUsbDevice.cpp rename to XBOFS.win/WinUsbDevice.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/WinUsbDevice.h b/XBOFS.win/WinUsbDevice.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/WinUsbDevice.h rename to XBOFS.win/WinUsbDevice.h diff --git a/RazorAtroxWinUSBVigEmFeeder/WinUsbDeviceManager.cpp b/XBOFS.win/WinUsbDeviceManager.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/WinUsbDeviceManager.cpp rename to XBOFS.win/WinUsbDeviceManager.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/WinUsbDeviceManager.h b/XBOFS.win/WinUsbDeviceManager.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/WinUsbDeviceManager.h rename to XBOFS.win/WinUsbDeviceManager.h diff --git a/RazorAtroxWinUSBVigEmFeeder/RazorAtroxWinUSBVigEmFeeder.vcxproj b/XBOFS.win/XBOFS.win.vcxproj similarity index 99% rename from RazorAtroxWinUSBVigEmFeeder/RazorAtroxWinUSBVigEmFeeder.vcxproj rename to XBOFS.win/XBOFS.win.vcxproj index def5ff8..538c019 100644 --- a/RazorAtroxWinUSBVigEmFeeder/RazorAtroxWinUSBVigEmFeeder.vcxproj +++ b/XBOFS.win/XBOFS.win.vcxproj @@ -70,7 +70,7 @@ 12.0 Debug Win32 - RazorAtroxWinUSBVigEmFeeder + XBOFS.win diff --git a/RazorAtroxWinUSBVigEmFeeder/RazorAtroxWinUSBVigEmFeeder.vcxproj.filters b/XBOFS.win/XBOFS.win.vcxproj.filters similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/RazorAtroxWinUSBVigEmFeeder.vcxproj.filters rename to XBOFS.win/XBOFS.win.vcxproj.filters diff --git a/RazorAtroxWinUSBVigEmFeeder/device.cpp b/XBOFS.win/device.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/device.cpp rename to XBOFS.win/device.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/device.h b/XBOFS.win/device.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/device.h rename to XBOFS.win/device.h diff --git a/RazorAtroxWinUSBVigEmFeeder/easylogging++.cc b/XBOFS.win/easylogging++.cc similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/easylogging++.cc rename to XBOFS.win/easylogging++.cc diff --git a/RazorAtroxWinUSBVigEmFeeder/easylogging++.h b/XBOFS.win/easylogging++.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/easylogging++.h rename to XBOFS.win/easylogging++.h diff --git a/RazorAtroxWinUSBVigEmFeeder/easyloggingpp.conf b/XBOFS.win/easyloggingpp.conf similarity index 71% rename from RazorAtroxWinUSBVigEmFeeder/easyloggingpp.conf rename to XBOFS.win/easyloggingpp.conf index 6f9ac97..b2d01cb 100644 --- a/RazorAtroxWinUSBVigEmFeeder/easyloggingpp.conf +++ b/XBOFS.win/easyloggingpp.conf @@ -1,5 +1,5 @@ * GLOBAL: - FILENAME = "razeratroxwinusbvigemfeeder.log" + FILENAME = "xbofs.win.log" ENABLED = true TO_FILE = true TO_STANDARD_OUTPUT = false @@ -8,4 +8,4 @@ MAX_LOG_FILE_SIZE = 5242880 ## 5MB - Comment starts with two hashes (##) LOG_FLUSH_THRESHOLD = 100 ## Flush after every 100 logs * DEBUG: - FILENAME = "razeratroxwinusbvigemfeeder.debug.log" \ No newline at end of file + FILENAME = "xbofs.win.debug.log" \ No newline at end of file diff --git a/RazorAtroxWinUSBVigEmFeeder/main.cpp b/XBOFS.win/main.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/main.cpp rename to XBOFS.win/main.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/pch.h b/XBOFS.win/pch.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/pch.h rename to XBOFS.win/pch.h diff --git a/RazorAtroxWinUSBVigEmFeeder/utils.cpp b/XBOFS.win/utils.cpp similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/utils.cpp rename to XBOFS.win/utils.cpp diff --git a/RazorAtroxWinUSBVigEmFeeder/utils.h b/XBOFS.win/utils.h similarity index 100% rename from RazorAtroxWinUSBVigEmFeeder/utils.h rename to XBOFS.win/utils.h diff --git a/docs/device_contributor_guide.md b/docs/device_contributor_guide.md new file mode 100644 index 0000000..9c5de56 --- /dev/null +++ b/docs/device_contributor_guide.md @@ -0,0 +1,202 @@ +# Device Contributor Guide + +This document aims to provide users of unsuppored XBO fight stick controllers with the tools and knowledge they need to assist in the +process of adding support for new devices + + +## Contents +1. [Requirements](#requirements) +2. [Tools](#tools) +3. [Preparation](#preparation) +4. [Data Capture](#data-capture) +5. [Delivery](#delivery) + + +## Requirements +* Access to a XBO fight stick controller that is not supported by the **XBOFS.win** +* Some patience + + +## Tools +* A text editor (I recommend [Notepad++](https://notepad-plus-plus.org)) +* [Device Monitoring Studio](https://www.hhdsoftware.com/device-monitoring-studio). Don't worry about the crazy prices, the shareware + version of this application works fine for our needs. Just download the installer and run it. To complete the installation you will need + to reboot. + + +## Preparation +Before you can start capturing data for your device it is necessary to ensure it is not configured to use the XBO Controller beta drivers +from 2014. If these drivers are active for your device then Device Montioring Studio will be unable to see the controller. + +##### In order to determine whether you are using the beta drivers +01. Press *Win* + *R* to open the *Run* dialog + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/01.jpg) +02. Enter *devmgmt.msc* and press *Enter* + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/02.jpg) +03. In the *Device Manager* window, locate the *Xbox Peripherals* item and expand it + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/03.jpg) +04. Locate the *Xbox Gaming Device* item + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/04.jpg) +05. Right-click on the item and click *Properties* + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/05.jpg) +06. Click on the *Driver* tab + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/06.jpg) +07. Check the *Driver Date* and *Driver version* items. If the driver date is **5/26/2014** and the driver version is **6.2.11059.0** + then you are using the beta drivers and will need to temporarily switch to a newer version while you collect the data + + ![](images/device_contributor_guide/check_xbo_controller_driver_version/07.jpg) + +##### In order to update to the latest drivers +01. Navigate to the *Driver* tab as described above + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/01.jpg) +02. Click the *Update* button + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/02.jpg) +03. Click the *Search automatically for updated driver software* option + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/03.jpg) +04. Wait for the driver to be updated + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/04.jpg) +05. Check the *Driver Date* and *Driver version* items. They should reflect a newer version of the driver that the one described above. + You may be instructed to reboot. If so, reboot as instructed before proceeding to capture data. If for some reason the driver is not + updated to a newer version using this process then it is recommended to run *Windows Update* and retry this process from step 1 + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/05.jpg) + +##### To rollback to the beta drivers +01. Navigate to the *Driver* tab as described above + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/01.jpg) + +02. Click the *Update* button + + ![](images/device_contributor_guide/update_xbo_controller_driver_version/02.jpg) +03. Click the *Browse my computer for driver software* option + + ![](images/device_contributor_guide/rollback_xbo_controller_driver_version/01.jpg) +04. Click the *Let me pick from a list of available drivers on this computer* option + + ![](images/device_contributor_guide/rollback_xbo_controller_driver_version/02.jpg) +05. Select the *Xbox Gaming Device Version 6.2.11059.0 [5/26/2014]* item and click *Next* + + ![](images/device_contributor_guide/rollback_xbo_controller_driver_version/03.jpg) +06. Wait for the driver to be rolled back + + ![](images/device_contributor_guide/rollback_xbo_controller_driver_version/04.jpg) +07. You should get a success message. You may also see a *Microsoft Visual C++ Runtime Library* error dialog. This can be ignored, it's a + side-effect of using ancient, beta drivers. You may be instructed to reboot. If instructed, do so + + ![](images/device_contributor_guide/rollback_xbo_controller_driver_version/05.jpg) + +## Data Capture + +01. Plug in your controller. It is also recommended to unplug any other controllers +02. Confirm the controller is detected correctly using *Device Manager* + + ![](images/device_contributor_guide/data_capture/01.jpg) +03. Use the *Start Menu* to locate and run your text editor + + ![](images/device_contributor_guide/data_capture/02.jpg) +04. Use the *Start Menu* to locate and run *Device Monitoring Studio* + + ![](images/device_contributor_guide/data_capture/03.jpg) +05. Locate your controller in the *Devices* pane and select it + + ![](images/device_contributor_guide/data_capture/04.jpg) +06. Click the *Device Descriptor* tab in the bottom pane + + ![](images/device_contributor_guide/data_capture/05.jpg) +07. Drag-select all of the text, right-click and click *Copy* + + ![](images/device_contributor_guide/data_capture/06.jpg) +08. Switch to your text editor and paste the copied text + + ![](images/device_contributor_guide/data_capture/07.jpg) +09. Switch back to *Device Monitoring Studio* and click the *Configuration Descriptor* tab in the bottom pane + + ![](images/device_contributor_guide/data_capture/08.jpg) +10. Drag-select all of the text, right-click and clik *Copy* + + ![](images/device_contributor_guide/data_capture/09.jpg) +11. Switch to your text editor and paste the copied text + + ![](images/device_contributor_guide/data_capture/10.jpg) +12. Save the text file + + ![](images/device_contributor_guide/data_capture/11.jpg) + + ![](images/device_contributor_guide/data_capture/12.jpg) +13. Switch back to *Device Monitoring Studio*, locate your controlled in the *Devices* pane, right-click on it and click *Start Monitoring* + + ![](images/device_contributor_guide/data_capture/13.jpg) +14. Double-click the *Packet View* item in the left-hand pane + + ![](images/device_contributor_guide/data_capture/14.jpg) +15. Confirm the *Packet View* item appears in the right-hand pane + + ![](images/device_contributor_guide/data_capture/15.jpg) +16. Click the *Start* button + + ![](images/device_contributor_guide/data_capture/16.jpg) +17. Click in the *Packet View* tab to focus the window and press a button on your controller until you start to see items appear in the list view. Items + labelled *DOWN* are sent by the PC to the controller while items labelled *UP* represent data sent from the controller + + ![](images/device_contributor_guide/data_capture/17.jpg) +18. Select the first *DOWN* item in the list view + + ![](images/device_contributor_guide/data_capture/18.jpg) +19. This data represents the INIT packet sent by the PC to the controller + + ![](images/device_contributor_guide/data_capture/19.jpg) +20. Right-click in the *Complete* tab and click *Copy* + + ![](images/device_contributor_guide/data_capture/20.jpg) +21. Switch to your text editor and paste the copied text and save + + ![](images/device_contributor_guide/data_capture/21.jpg) +22. Switch back to *Device Monitoring Studio*, click in the *Packet View* tab and press and release the *X* button on your controller. Two new *UP* items should + appear the list view. The first item represents the button press, the second the release. Select the first item + + ![](images/device_contributor_guide/data_capture/22.jpg) +23. This data represents the button/stick action sent by the controller to the PC + + ![](images/device_contributor_guide/data_capture/23.jpg) +24. Right-click in the *Complete* tab and click *Copy* + + ![](images/device_contributor_guide/data_capture/24.jpg) +25. Switch to your text editor and line a noting the button/stick direction that was pressed (E.g. *Button X*) + + ![](images/device_contributor_guide/data_capture/25.jpg) +26. Paste the copied text and save + + ![](images/device_contributor_guide/data_capture/26.jpg) +27. Repeat steps 22 through 26 for each button, including the *Start*, *View* and *XBox Guide* buttons + +28. Repeat steps 22 through 26 for each single stick direction (I.e. *Up*, *Left*, *Down*, *Right*). Be careful not to press the stick diagonally. If you + are not sure whether you pressed diagonally, try again and check the data in the *Complete* tab + +29. Once you have collected data on all the buttons and stick directions you can close *Device Monitoring Studio* and make sure your data capture text file is + saved. Not that you **DO NOT** need to capture diagonal directions on the stick or any buttom press combinations (E.g. *X* and *Y* together). All that is + required are the single button/direction values + + +## Delivery + +The data capture text file needs to be submitted so that support can be implemented. The recommended means of doing this is to +[create a new issue on GitHub](https://github.com/OOPMan/XBOFS.win/issues/new). You will need to sign-up for a GitHub account (Don't worry, it's free) before +you can submit an issue. + +For the *Title* field, fill in a value adjusted for your controller like so: *Device support request: Razer Atrox XBO*. + +Drag-and-drop your data capture text file into the *Write* text area and then click the *Submit new issue* button. + +If you have any questions, check the [index](index.md) document for support details + diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/01.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/01.jpg new file mode 100644 index 0000000..088fde4 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/01.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/02.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/02.jpg new file mode 100644 index 0000000..21d981f Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/02.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/03.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/03.jpg new file mode 100644 index 0000000..00980b2 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/03.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/04.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/04.jpg new file mode 100644 index 0000000..1367922 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/04.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/05.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/05.jpg new file mode 100644 index 0000000..7542312 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/05.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/06.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/06.jpg new file mode 100644 index 0000000..fe20960 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/06.jpg differ diff --git a/docs/images/device_contributor_guide/check_xbo_controller_driver_version/07.jpg b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/07.jpg new file mode 100644 index 0000000..9f195a4 Binary files /dev/null and b/docs/images/device_contributor_guide/check_xbo_controller_driver_version/07.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/01.jpg b/docs/images/device_contributor_guide/data_capture/01.jpg new file mode 100644 index 0000000..2bb3df4 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/01.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/02.jpg b/docs/images/device_contributor_guide/data_capture/02.jpg new file mode 100644 index 0000000..6baf06b Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/02.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/03.jpg b/docs/images/device_contributor_guide/data_capture/03.jpg new file mode 100644 index 0000000..21ae1a6 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/03.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/04.jpg b/docs/images/device_contributor_guide/data_capture/04.jpg new file mode 100644 index 0000000..e6406fa Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/04.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/05.jpg b/docs/images/device_contributor_guide/data_capture/05.jpg new file mode 100644 index 0000000..947dcaa Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/05.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/06.jpg b/docs/images/device_contributor_guide/data_capture/06.jpg new file mode 100644 index 0000000..0d7de59 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/06.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/07.jpg b/docs/images/device_contributor_guide/data_capture/07.jpg new file mode 100644 index 0000000..0e14177 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/07.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/08.jpg b/docs/images/device_contributor_guide/data_capture/08.jpg new file mode 100644 index 0000000..42aad5a Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/08.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/09.jpg b/docs/images/device_contributor_guide/data_capture/09.jpg new file mode 100644 index 0000000..f2219d2 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/09.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/10.jpg b/docs/images/device_contributor_guide/data_capture/10.jpg new file mode 100644 index 0000000..200bc75 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/10.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/11.jpg b/docs/images/device_contributor_guide/data_capture/11.jpg new file mode 100644 index 0000000..34f3094 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/11.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/12.jpg b/docs/images/device_contributor_guide/data_capture/12.jpg new file mode 100644 index 0000000..c5d910f Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/12.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/13.jpg b/docs/images/device_contributor_guide/data_capture/13.jpg new file mode 100644 index 0000000..e585ff0 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/13.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/14.jpg b/docs/images/device_contributor_guide/data_capture/14.jpg new file mode 100644 index 0000000..7a5bfe5 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/14.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/15.jpg b/docs/images/device_contributor_guide/data_capture/15.jpg new file mode 100644 index 0000000..21da9ea Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/15.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/16.jpg b/docs/images/device_contributor_guide/data_capture/16.jpg new file mode 100644 index 0000000..fffb3aa Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/16.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/17.jpg b/docs/images/device_contributor_guide/data_capture/17.jpg new file mode 100644 index 0000000..3f91392 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/17.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/18.jpg b/docs/images/device_contributor_guide/data_capture/18.jpg new file mode 100644 index 0000000..09a425a Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/18.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/19.jpg b/docs/images/device_contributor_guide/data_capture/19.jpg new file mode 100644 index 0000000..5bae492 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/19.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/20.jpg b/docs/images/device_contributor_guide/data_capture/20.jpg new file mode 100644 index 0000000..209bcb8 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/20.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/21.jpg b/docs/images/device_contributor_guide/data_capture/21.jpg new file mode 100644 index 0000000..42cb64c Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/21.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/22.jpg b/docs/images/device_contributor_guide/data_capture/22.jpg new file mode 100644 index 0000000..a6f5b62 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/22.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/23.jpg b/docs/images/device_contributor_guide/data_capture/23.jpg new file mode 100644 index 0000000..174e463 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/23.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/24.jpg b/docs/images/device_contributor_guide/data_capture/24.jpg new file mode 100644 index 0000000..4e8a88e Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/24.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/25.jpg b/docs/images/device_contributor_guide/data_capture/25.jpg new file mode 100644 index 0000000..16ec8c9 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/25.jpg differ diff --git a/docs/images/device_contributor_guide/data_capture/26.jpg b/docs/images/device_contributor_guide/data_capture/26.jpg new file mode 100644 index 0000000..9d30752 Binary files /dev/null and b/docs/images/device_contributor_guide/data_capture/26.jpg differ diff --git a/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/01.jpg b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/01.jpg new file mode 100644 index 0000000..87cebf4 Binary files /dev/null and b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/01.jpg differ diff --git a/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/02.jpg b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/02.jpg new file mode 100644 index 0000000..fb136ae Binary files /dev/null and b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/02.jpg differ diff --git a/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/03.jpg b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/03.jpg new file mode 100644 index 0000000..681bf85 Binary files /dev/null and b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/03.jpg differ diff --git a/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/04.jpg b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/04.jpg new file mode 100644 index 0000000..d384d4b Binary files /dev/null and b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/04.jpg differ diff --git a/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/05.jpg b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/05.jpg new file mode 100644 index 0000000..e9adb42 Binary files /dev/null and b/docs/images/device_contributor_guide/rollback_xbo_controller_driver_version/05.jpg differ diff --git a/docs/images/device_contributor_guide/update_xbo_controller_driver_version/01.jpg b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/01.jpg new file mode 100644 index 0000000..94e09c2 Binary files /dev/null and b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/01.jpg differ diff --git a/docs/images/device_contributor_guide/update_xbo_controller_driver_version/02.jpg b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/02.jpg new file mode 100644 index 0000000..98f45ec Binary files /dev/null and b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/02.jpg differ diff --git a/docs/images/device_contributor_guide/update_xbo_controller_driver_version/03.jpg b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/03.jpg new file mode 100644 index 0000000..d78ef8d Binary files /dev/null and b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/03.jpg differ diff --git a/docs/images/device_contributor_guide/update_xbo_controller_driver_version/04.jpg b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/04.jpg new file mode 100644 index 0000000..917cbef Binary files /dev/null and b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/04.jpg differ diff --git a/docs/images/device_contributor_guide/update_xbo_controller_driver_version/05.jpg b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/05.jpg new file mode 100644 index 0000000..26d593d Binary files /dev/null and b/docs/images/device_contributor_guide/update_xbo_controller_driver_version/05.jpg differ diff --git a/docs/images/vigembus_device_manager.jpg b/docs/images/vigembus_device_manager.jpg new file mode 100644 index 0000000..b1abdf6 Binary files /dev/null and b/docs/images/vigembus_device_manager.jpg differ diff --git a/docs/images/winusb_device_manager.jpg b/docs/images/winusb_device_manager.jpg new file mode 100644 index 0000000..9cf2879 Binary files /dev/null and b/docs/images/winusb_device_manager.jpg differ diff --git a/docs/images/zadig/01.jpg b/docs/images/zadig/01.jpg new file mode 100644 index 0000000..42c9232 Binary files /dev/null and b/docs/images/zadig/01.jpg differ diff --git a/docs/images/zadig/02.jpg b/docs/images/zadig/02.jpg new file mode 100644 index 0000000..9f00d37 Binary files /dev/null and b/docs/images/zadig/02.jpg differ diff --git a/docs/images/zadig/03.jpg b/docs/images/zadig/03.jpg new file mode 100644 index 0000000..ea3fbe0 Binary files /dev/null and b/docs/images/zadig/03.jpg differ diff --git a/docs/images/zadig/04.jpg b/docs/images/zadig/04.jpg new file mode 100644 index 0000000..2def285 Binary files /dev/null and b/docs/images/zadig/04.jpg differ diff --git a/docs/images/zadig/05.jpg b/docs/images/zadig/05.jpg new file mode 100644 index 0000000..9bb4ec8 Binary files /dev/null and b/docs/images/zadig/05.jpg differ diff --git a/docs/images/zadig/06.jpg b/docs/images/zadig/06.jpg new file mode 100644 index 0000000..8335944 Binary files /dev/null and b/docs/images/zadig/06.jpg differ diff --git a/docs/images/zadig/07.jpg b/docs/images/zadig/07.jpg new file mode 100644 index 0000000..47e8100 Binary files /dev/null and b/docs/images/zadig/07.jpg differ diff --git a/docs/images/zadig/08.jpg b/docs/images/zadig/08.jpg new file mode 100644 index 0000000..8a9b95f Binary files /dev/null and b/docs/images/zadig/08.jpg differ diff --git a/docs/images/zadig/09.jpg b/docs/images/zadig/09.jpg new file mode 100644 index 0000000..87b36ca Binary files /dev/null and b/docs/images/zadig/09.jpg differ diff --git a/docs/images/zadig/10.jpg b/docs/images/zadig/10.jpg new file mode 100644 index 0000000..0106a69 Binary files /dev/null and b/docs/images/zadig/10.jpg differ diff --git a/docs/images/zadig/11.jpg b/docs/images/zadig/11.jpg new file mode 100644 index 0000000..f6fbd60 Binary files /dev/null and b/docs/images/zadig/11.jpg differ diff --git a/docs/images/zadig/12.jpg b/docs/images/zadig/12.jpg new file mode 100644 index 0000000..0e06985 Binary files /dev/null and b/docs/images/zadig/12.jpg differ diff --git a/docs/images/zadig/13.jpg b/docs/images/zadig/13.jpg new file mode 100644 index 0000000..93d4140 Binary files /dev/null and b/docs/images/zadig/13.jpg differ diff --git a/docs/images/zadig/14.jpg b/docs/images/zadig/14.jpg new file mode 100644 index 0000000..a706218 Binary files /dev/null and b/docs/images/zadig/14.jpg differ diff --git a/docs/images/zadig/15.jpg b/docs/images/zadig/15.jpg new file mode 100644 index 0000000..081fc25 Binary files /dev/null and b/docs/images/zadig/15.jpg differ diff --git a/docs/images/zadig/16.jpg b/docs/images/zadig/16.jpg new file mode 100644 index 0000000..a3cfb85 Binary files /dev/null and b/docs/images/zadig/16.jpg differ diff --git a/docs/images/zadig/17.jpg b/docs/images/zadig/17.jpg new file mode 100644 index 0000000..05fcea5 Binary files /dev/null and b/docs/images/zadig/17.jpg differ diff --git a/docs/images/zadig/18.jpg b/docs/images/zadig/18.jpg new file mode 100644 index 0000000..6c5d4e7 Binary files /dev/null and b/docs/images/zadig/18.jpg differ diff --git a/docs/images/zadig/19.jpg b/docs/images/zadig/19.jpg new file mode 100644 index 0000000..2e3fb90 Binary files /dev/null and b/docs/images/zadig/19.jpg differ diff --git a/docs/images/zadig/20.jpg b/docs/images/zadig/20.jpg new file mode 100644 index 0000000..7a87563 Binary files /dev/null and b/docs/images/zadig/20.jpg differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..bc6a4c8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,145 @@ +# XBOFS.win +**XBOFS.win** allows you to use your **XBO Fight Stick** controller on Windows without having to install ancient, beta +drivers and rewire buttons + +## Contents +1. [Requirements](#requirements) + 1. [Supported controllers](#supported-controllers) +2. [Screenshots and Videos](#screenshots-and-videos) +3. [Installation](#installation) +4. [Updating](#updating) +5. [Usage](#usage) +6. [Uninstallation](#uninstallation) +7. [Support](#support) +8. [FAQ](#faq) +9. [Credits](#credits) + + +## Requirements + +1. Windows 7 or newer +2. 1 or more supported controllers + +##### Supported controllers +1. Razer Atrox XBO + + +## Screenshots and Videos + +Coming Soon + +## Installation + +1. Browse to https://github.com/ViGEm/ViGEmBus/releases/ and download the latest **VigEmBus** installer. If you are + on Windows 7 you also need to download the files in the Windows 7 Prerequisites section +2. Install **VigEmBus** and reboot +3. Browse to https://github.com/OOPMan/XBOFS.win/releases and download the latest version **XBOFS.win.zip** + bundle. Extract this bundle somewhere. I recommend the root of your C: drive +4. Browse to https://zadig.akeo.ie and download **Zadig 2.4** +5. Open the [ZaDig WinUSB driver installation guide](zadig.md) and follow the instructions there to install + a **WinUSB** driver for your supported controller + + +## Updating + +1. Head over to https://github.com/OOPMan/XBOFS.win/releases and download the latest version **XBOFS.win.zip** + bundle. Extract this bundle over your existing folder containg **XBOFS.win**, overwriting any files if asked +2. Restart your computer + + +## Usage + +1. Open the folder that you extracted the **XBOFS.win.zip** bundle into +2. Run **XBOFS.win.exe** +3. Connect your supported controller(s) +4. Wait for the interface to indicate your device(s) is **Reading input...**. You may + see a pop-up notification about a new XB360 controller(s) being detected, this is normal +5. You can now minimize the **XBOFS.win.exe** window if you so choose +6. You should now be able to play games using your supported controller(s). Any game that supports a standard XB360 + controller should work, regardless of whether it is a Steam game, Windows store game or any other platform that + supports the XB360 controller. Note that the input from the stick is mapped to the D-Pad on the virtual XB360 + controller not the analog stick +7. When you are done playing, activate the **XBOXFS.win.exe** window and hit *Q*. The application will exit (it can + take up to 20 seconds to do so) and the virtual XB360 controller(s) will disappear + + +## Uninstallation + +1. Hit *Win* \+ *R* +2. Enter *devmgmt.msc* in the Run box and press enter +3. Click *View* and then click *Show hidden devices* +4. Locate the item in the tree labelled *Universal Serial Bus devices* +5. Right-click the item associated with your supported controller and click *Uninstall device* +6. In the dialog box, mark the checkbox labelled *Delete the driver software for this device* +7. Click *Uninstall* +8. Replug your supported controller. It will now use whichever driver was previously configured for it + + +## Support + +##### XBOFS.win doesn't seem to be able to detect my controller +This usually indicates an issue with the **WinUSB** driver installation. Please check the [ZaDig WinUSB driver installation guide](zadig.md) and confirm +that when you plug in your controller, **Device Manager** updates to a state as displayed (controller name may differ): + +![Device Manager](images/winusb_device_manager.jpg) +If this does not happen then you should follow the guide from step 1 to see if it fixes the problem. If your problem is still not fixed then please [submit an issue](https://github.com/OOPMan/XBOFS.win/issues) + +##### XBOFS.win doesn't seem to be able to create a virtual XB360 Controller +This usually indicates an issue with the **VigEmBus** driver installation. Please confirm that the **Virtual Gamepad Emulation Bus** item appears in **Device Manager** +under the **System Devices** node: + +![Device Manager](images/vigembus_device_manager.jpg) +If this item is missing you have not installed **VigEmBus**. Check the [installation guide](#installation) for details on how to do so. If your problem is still not fixed then please [submit an issue](https://github.com/OOPMan/XBOFS.win/issues) + +##### When I press buttons on my controller Windows acts like I am hitting keyboard keys or clicking the mouses +This problem occurs when **XBox Configuration Support** is enabled in **Steam**: +1. Open **Steam** +2. Click *Steam* -> *Settings* +3. Click *Controller* -> *General Controller Settings* +4. Uncheck *Xbox Configuration Support* +5. Click *Back* +The controller should now work as expected. If not, please [submit an issue](https://github.com/OOPMan/XBOFS.win/issues) + +##### I upgraded to a new version of XBOFS.win and now RetroArch isn't recognising my controllers +This issue occurs if you were running the previous version, exited, upgraded to a new version, started the new version and then started **RetroArch**. +In order to solve this issue you should reboot after upgrading **XBOFS.win**. If this does not fix the issue, please [submit an issue](https://github.com/OOPMan/XBOFS.win/issues) + +##### My problem isn't listed here +Please do one of the following: +1. [Submit an issue](https://github.com/OOPMan/XBOFS.win/issues) on GitHub +2. [Message](https://www.reddit.com/message/compose/?to=OOPManZA) me on Reddit +3. Join the [Nefarius Software Solutions](https://discord.vigem.org/) Discord server and ping **@OOPMan** + + +## FAQ + +##### Why did you develop this piece of software? +Long story short, I bought a Razer Atrox on special and rather than return it I decided to see if I could work out why it didn't work without jumping +through a lot of hoops. The problemn ended up being solvable and here we are. More details can be found [here](https://forums.vigem.org/topic/282/xbo-arcade-sticks-vigem-and-a-whole-ton-of-fun/) + +##### Can you support my device? +It's might be possible. Take a look at the [device contributor guide](device_contributor_guide.md) to see how you can collect the data I need to do so... + +## Credits + +* **Coding** + * [OOPMan](https://github.com/OOPMan) +* **VigEmBus** and **VigEmClient** + * [Nefarius](https://github.com/nefarius) (If you have some cash to spare [go give this man some support](https://forums.vigem.org/topic/291/shameless-beggar-post). Without his work on [VigEmBus](https://github.com/ViGEm) **XBOFS.win** would not exist) + * [!ϻega](https://github.com/megadrago88) +* **Advice** + * [Nefarius](https://github.com/nefarius) + * [!ϻega](https://github.com/megadrago88) + * [evilC](https://github.com/evilC) + * [Snoothy](https://github.com/Snoothy) + * [Sylveon](https://github.com/sylveon) +* **XBO Controller Information** + * [xpad.c](https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c) +* **Tools** + * [Device Monitoring Studio](https://www.hhdsoftware.com/device-monitoring-studio) + * [Microsoft Visual Studio Community 2017](https://visualstudio.microsoft.com) + * [ZaDig](https://zadig.akeo.ie) +* **Testing** + * Multiple Atrox support + * [Manick74](https://www.reddit.com/user/Manick74) + * [TheDecn](https://www.reddit.com/user/TheDecn) \ No newline at end of file diff --git a/docs/zadig.md b/docs/zadig.md new file mode 100644 index 0000000..4f303e5 --- /dev/null +++ b/docs/zadig.md @@ -0,0 +1,67 @@ +# ZaDig WinUSB Driver Installation Guide + +01. Check Device Manager and confirm your supported controller is being detected by Windows. It should appear as a + *Xbox Gaming Device* under the *Xbox Peripherals* node. If it does not appear here you may still continue with + the process but there is a chance it may not work... + + ![Device Manager](images/zadig/01.jpg) +02. The latest version of **ZaDig** should be downloaded to your system and placed in the location you extracted the **XBOFS.win.zip** bundle to + + ![Device Manager](images/zadig/02.jpg) +03. Run **ZaDig**. You will probably get a pop-up as it wants to run as **Administrator**. Allow it. Once start it should look like this + + ![Device Manager](images/zadig/03.jpg) +04. Click *Device*. Click *Load Preset Device* + + ![Device Manager](images/zadig/04.jpg) +05. Navigate to the *zadig_presets* folder and select the appropriate preset for your device + + ![Device Manager](images/zadig/05.jpg) +06. **ZaDig** should now appear as follows (Device name should match that of your controller) + + ![Device Manager](images/zadig/06.jpg) +07. Ensure the highlighted box is showing **WinUSB**. If it shows something else then click on the little arrows next to it until it displays WinUSB + + ![Device Manager](images/zadig/07.jpg) +08. Click the small arrow next to the *Install Driver* button. **DO NOT** click the *Install Driver* button! + + ![Device Manager](images/zadig/08.jpg) +09. Click the *Extract Files (Don't Install)* option + + ![Device Manager](images/zadig/09.jpg) +10. ZaDig should now appear as follows. DO NOT click the *Extract Files* button yet! + + ![Device Manager](images/zadig/10.jpg) +11. Click *Options*. Click *Advanced Mode* + + ![Device Manager](images/zadig/11.jpg) +12. Click the highlighted icon next to the *Extract Files* button + + ![Device Manager](images/zadig/12.jpg) +13. Navigate to the *zadig_driver* folder and click *Select Folder* + + ![Device Manager](images/zadig/13.jpg) +14. Confirm in the log area that **ZaDig** is going to use the *zadig_driver* folder as the extraction directory + + ![Device Manager](images/zadig/14.jpg) +15. Now, finally, click the *Extract Files* button + + ![Device Manager](images/zadig/15.jpg) +16. Wait and when it's done the log output should appear as follows along with a message at the bottom of the window stating that the files + were successfully extracted. You can now close **ZaDig** + + ![Device Manager](images/zadig/16.jpg) +17. Open the *zadig_driver* folder + + ![Device Manager](images/zadig/17.jpg) +18. Right-click on the *Setup information* file (The icon is a white page with a grey gear) + + ![Device Manager](images/zadig/18.jpg) +19. Click *Install* + + ![Device Manager](images/zadig/19.jpg) +20. The driver should install correctly + + ![Device Manager](images/zadig/20.jpg) +21. If it does not, you will need to follow the instructions at + http://jbcomp.com/disable-device-driver-signing-in-windows-10/ to disable the requirement for signed device drivers and retry this from step 18 diff --git a/razer_atrox_zadig_preset.cfg b/presets/razer_atrox_zadig_preset.cfg similarity index 74% rename from razer_atrox_zadig_preset.cfg rename to presets/razer_atrox_zadig_preset.cfg index d26daa0..593fb04 100644 --- a/razer_atrox_zadig_preset.cfg +++ b/presets/razer_atrox_zadig_preset.cfg @@ -1,7 +1,6 @@ # This is a preset device configuration for Zadig for the Razer Atrox XBO Arcade Stick [device] - Description = "Razer Atrox XBO Arcade Stick" + Description = "XBOFS.win Controller (Razer Atrox XBO)" VID = 0x1532 PID = 0x0A00 -# MI = 0x01 GUID = "{5ACF052A-3BE5-46AE-905E-356BA17671BD}" \ No newline at end of file