MacOS – Anyone able to connect gioteck VX-1 (PS3 controller) via Bluetooth

bluetoothdrivermacos

I have a Sony DUALSHOCK 3 SIXAXIS controller, I can use it as a USB controller on my OS X Mountain Lion MacMini and it works perfectly. I have it set up in Bluetooth so that when it is not connected via USB, I just press the Playstation Logo and it connects instantly via Bluetooth. In my humble opinion, Sony DUALSHOCK 3 SIXAXIS controllers are overpriced, so I bought a gioteck PS3 VX-1 Wireless Controller for $29.99. It is identical in every way to the Sony controller except the shape and that it doesn't come with a lithium ion battery and instead takes two AA batteries or a battery pack like the ones you put in an XBox 360 controller. The "Cheap" controller works identical to the Sony controller when connected via USB.

My goal here is to play four player games with the whole family without spending nearly $200 on PS3 controllers.

The problem (I think): gioteck did not properly set the values transmitted via Bluetooth upon connection. The Bluetooth Type is "Unknown" instead of "Peripheral", the Name is "PLAYSTATION(R)3Conteroller-ghic" instead of "PLAYSTATION(R)3 Controller", the Services are not set instead of "PnP Information Wireless Controller", the Major Device Class is "0x1f" instead of "0x5", the Minor Device Class is "0x0" instead of "0x2", and as expected the Product ID and Vendor ID are different from the Sony.

My guess is that most of the details I listed above don't come from the Bluetooth device itself but are looked up based on Major Device Class and Minor Device Class (but I really don't know much about how Bluetooth devices work).

So my question: Anybody know if there are files on my OS X 10.8 that I can modify so that my "Cheap" PS3 controller that works via Bluetooth on the PS3 can also work via Bluetooth on OS X?

Here are all the details I have:

The one that works:

Working DUALSHOCK 3 SIXAXIS

The one that doesn't work:

gioteck VX-1 Wireless

Best Answer

Ok, I got it to work. I would not recommend using this technique, but it works, I hope someone posts a better solution.

Set up gioteck VX-1:

  1. Get a Sony controller and set it up (See Next Section, if you don't have a Sony controller, you can copy my values, which may work, just remember that the steps below will be slightly different since you will be copying details from this thread instead of from your Sony controller)
  2. Follow same instructions as in Step 1, but using your gioteck VX-1 instead of your Sony controller, write down the gioteck's address as soon as it is displayed.
  3. Bring up terminal and type:

    cp /Library/Preferences/com.apple.Bluetooth.plist ~/com.apple.Bluetooth.plist
    cp /Library/Preferences/com.apple.Bluetooth.plist ~/com.apple.Bluetooth.plist.backup
    
  4. Open your ~/com.apple.Bluetooth.plist in Xcode
  5. Expand HIDDevices
  6. Click on HIDDevices
  7. Click on the (+) to the right of HIDDevices
  8. In Item 0's Value column type the Address you wrote down in step 2
  9. Save and close the file
  10. Turn Bluetooth off
  11. Type the following in Terminal:

    sudo cp ~/com.apple.Bluetooth.plist /Library/Preferences/com.apple.Bluetooth.plist
    cd /Library/Preferences
    sudo chown root:wheel com.apple.Bluetooth.plist
    
  12. Turn Bluetooth back on.
  13. Press the big round middle button on the VX-1 (where the Playstation logo would be on a Sony control)
  14. Your controller should connect now automatically without asking you to enter a passcode to pair, but it won't work as a game controller at this point and after less than a minute, it will disconnect, but at least you know that you have done all the steps correctly so far if it doesn't prompt you for a passcode and it is listed even when the status is "Not Connected".
  15. Bring up System Preferences->Bluetooth. You should now have PLAYSTATION(R)3 Controller listed (the Sony controller), and PLAYSTATION(R)3Conteroller-ghic list (the VX-1)
  16. Click on the Sony controller in the list (if you don't have a Sony controller, as stated in step 1, just know you will use details from this thread instead of from your Sony controller)
  17. Write down your Sony's Address
  18. Open ~/com.apple.Bluetooth.plist in Xcode again
  19. Expand DeviceCache
  20. Now, expand your VX-1's address (mine was 00-0e-3d-de-c9-19)
  21. Expand your Sony's address (mine was 34-c7-31-1b-2b-e7)
  22. Now drag the nodes of you VX-1 one by one to match the order of your Sony nodes (just to make them easier to compare) as you compare their values, when you encounter that your VX-1 is missing a node, right click the node within Sony, click copy, then right click your VX-1 and click paste. Then drag your newly pasted node within your VX-1 so that the order of your VX-1 nodes match the order of your Sony nodes (again, this is just to help you not miss anything). While you compare and note the differences mentally, don't change any VX-1 values yet, your just copying missing nodes from Sony at this point.
  23. Now that the address nodes for your Sony and VX-1 contain the same number of nodes in the same order as each other, note that the following in your VX-1 should match your Sony exactly:

    PageScanMode           Number  0
    InquiryRSSI            Number  0
    PageScanPeriod         Number  0
    SupportedFeatures      Data    <80001808 7a8207fc>
    ProductID              Number  616
    PageScanRepetitionMode Number  1
    Services               Data    <040b7374 7265616d 74797065 6481e803 84014084 8484074e 53417272 61790084 84084e53 4f626a65 63740085 84016902 92848484 1b494f42 6c756574 6f6f7468 53445053 65727669 63655265 636f7264 00949284 84841149 4f426c75 65746f6f 74684465 76696365 00848411 494f426c 7565746f 6f74684f 626a6563 74009492 84848406 4e534461 74610094 95068404 5b36635d 34c7311b 2be78686 92848484 0c4e5344 69637469 6f6e6172 79009495 18928484 84084e53 4e756d62 65720084 84074e53 56616c75 65009484 012a8495 95008692 84848419 494f426c 7565746f 6f746853 44504461 7461456c 656d656e 74009484 014301a0 0284014c 0492849f 9e848401 71a28200 00010086 8692849f 9ea19581 0a028692 84a3a005 a000a101 92849f9e 84840173 a3018686 92849f9e a1958107 02869284 a3a006a0 05a10892 8484840e 4e534d75 7461626c 65417272 61790093 95019284 a3a006a0 05a10692 84ad9502 9284a3a0 01a001a1 0292849f 9ea19581 09048686 9284a3a0 01a001a1 0292849f 9ea19581 00018686 86868686 92849f9e a1958104 02869284 a3a005a0 00a10192 a8869284 9f9ea195 0d869284 a3a006a0 05a10f92 84ad9501 9284a3a0 06a005a1 0d9284ad 95029284 a3a006a0 05a10692 84ad9502 9284a3a0 03a001a1 02928484 8412494f 426c7565 746f6f74 68534450 55554944 009b9284 9b950284 045b3263 5d010086 86869284 a3a001a0 01a10292 849f9ea1 95138686 86869284 a3a006a0 05a10392 84ad9501 9284a3a0 03a001a1 029284bf 92849b95 02a60011 86868686 86868686 8692849f 9ea19581 0c028692 84a3a001 a001a102 92849f9e a1958180 3e868692 849f9ea1 95810102 869284a3 a001a001 a10292b3 8692b392 84a3a004 a005a113 92849b95 1384055b 3139635d 57697265 6c657373 20436f6e 74726f6c 6c657286 8692849f 9ea19581 09028692 84a3a005 a000a101 92a88692 849f9ea1 95810602 869284a3 a006a005 a1819a00 9284ad95 019284a3 a006a005 a1819800 9284ad95 029284a3 a001a000 a1019284 9f9ea9a3 22868692 84a3a004 a005a181 94009284 9b958194 0084065b 31343863 5d050109 04a101a1 02850175 08950115 0026ff00 81037501 95131500 25013500 45010509 19012913 81027501 950d0600 ff810315 0026ff00 05010901 a1007508 95043500 46ff0009 30093109 32093581 02c00501 75089527 09018102 75089530 09019102 75089530 0901b102 c0a10285 02750895 300901b1 02c0a102 85ee7508 95300901 b102c0a1 0285ef75 08953009 01b102c0 c0868686 86868692 849f9ea1 95048692 84a3a006 a005a10d 9284ad95 029284a3 a006a005 a1069284 ad950292 84a3a003 a001a102 9284bf92 849b9502 a6010086 86869284 a3a001a0 01a10292 849f9ea1 95118686 86869284 a3a006a0 05a10392 84ad9501 9284a3a0 03a001a1 029284bf 92849b95 02a60011 86868686 86868692 849f9ea1 95810e02 869284a3 a005a000 a1019284 9f9ea9a3 00868692 849f9ea1 95810302 869284a3 a001a000 a1019284 9f9ea9a3 21868692 849f9ea1 95810201 869284a3 a004a005 a11b9284 9b951b84 055b3237 635d536f 6e792043 6f6d7075 74657220 456e7465 72746169 6e6d656e 74868692 849f9ea1 95018692 84a3a006 a005a103 9284ad95 019284a3 a003a001 a1029284 bf92849b 9502a611 24868686 86869284 9f9ea195 810b0286 9284a3a0 01a001a1 0292b386 92849f9e a1958100 02869284 a3a001a0 01a10292 b3869284 9f9ea195 09869284 a3a006a0 05a10892 84ad9501 9284a3a0 06a005a1 069284ad 95029284 a3a003a0 01a10292 84bf9284 9b9502a6 11248686 869284a3 a001a001 a10292b3 86868686 8692849f 9ea19581 08028692 84a3a005 a000a101 92eb8692 849f9ea1 95068692 84a3a006 a005a109 9284ad95 039284a3 a001a001 a1029284 9f9ea195 816e6586 869284a3 a001a001 a1029284 9f9ea195 6a868692 84a3a001 a001a102 92b38686 8692849f 9ea19581 05028692 84a3a005 a000a101 92a88692 849f9ea1 95810d02 869284a3 a005a000 a10192eb 8692849f 9ea19581 02028692 84a3a001 a000a101 92eb8692 849f9ea1 95810101 869284a3 a004a005 a1139284 9b9513a7 57697265 6c657373 20436f6e 74726f6c 6c657286 86868692 84969297 92849d95 0c929e92 84a3a001 a002a104 92849f9e a5a28201 00010086 86921592 84a3a004 a005a11a 92849b95 1a84055b 3236635d 504c4159 53544154 494f4e28 52293320 436f6e74 726f6c6c 65728686 920f9284 a3a001a0 01a10292 849f9ea1 95028686 92fc9284 a3a006a0 05a10892 84ad9501 9284a3a0 06a005a1 069284ad 95029284 a3a003a0 01a10292 84bf9284 9b9502a6 12008686 869284a3 a001a001 a10292b3 86868686 8692cb92 84a3a001 a001a102 92849f9e a195814c 05868692 ec9284a3 a001a001 a10292b3 8692f292 84a3a006 a005a103 9284ad95 019284a3 a003a001 a1029284 bf92849b 9502a612 00868686 868692b4 9284a3a0 05a000a1 0192a886 92139284 a3a001a0 01a10292 849f9ea1 95816802 868692fa 9284a3a0 01a001a1 0292b386 92079284 a3a006a0 05a10992 84ad9503 9284a3a0 01a001a1 02920b86 9284a3a0 01a001a1 02920d86 9284a3a0 01a001a1 0292b386 868692da 9284a3a0 06a005a1 0d9284ad 95029284 a3a006a0 05a10692 84ad9502 9284a3a0 03a001a1 029284bf 92849b95 02a60100 86868692 84a3a001 a001a102 92f28686 869284a3 a006a005 a1039284 ad950192 84a3a003 a001a102 9284bf92 849b9502 a6000186 86868686 86868686 86>
    ClassOfDevice          Number  1,288
    ClockOffset            Number  0
    LastServiceUpdate      Date    Dec 24, 2012 11:00:29 PM
    
  24. Verify that you changed ClassOfDevice's VX-1 value to the value that the Sony had: 1288, I can't remember but I think VX-1 had 7997. I think that the most important things are the ClassOfDevice, LastServiceUpdate, and Services (but not in that order). Any node that I did not list in Step 23 should be present in VX-1, but have values that do not match the Sony. If you ever go to System Preferences->Bluetooth, click on PLAYSTATION(R)3Conteroller-ghic, then click on the little gear icon/down triangle, and click Update Services, it will probably wipe out all these changes, so don't do that.

  25. Save and close ~/com.apple.Bluetooth.plist
  26. Repeat Steps 10-13
  27. Now when you click the big round circle button in the middle of your VX-1, it should connect instantly via Bluetooth and work in all your Sony SIXAXIS compatible OS X games.

THE SECTION REFERENCED IN STEP 1 ABOVE:

  1. Plug in controller using USB cable
  2. Unplug controller (You have 15 seconds to complete the next steps through 6)
  3. Ignore pairing request
  4. Open System Preferences->Bluetooth
  5. Click on the PLAYSTATION(R)3 with status of Connected (there will be more to the name after the (R)3)
  6. Click on the gear down triangle icon at bottom of list and then click Add to Favorites
  7. Go back to the same menu from Step 6 and pick Update Services
  8. Some people say that at this point you need to turn off Bluetooth (uncheck On) and wait for the lights on the controller to stop flashing) and then turn Bluetooth back on, then connect the controller via USB.
  9. Click on the gear menu and pick Disconnect.
  10. Now, with your controller listed in the Bluetooth list with a status of Not Connected and with your USB cable disconnected, press the Playstation logo button. Your controller's status should change to Connected, stay connected for more than a minute (for as long as you are still using it) and work in the games and apps that support the PS3 controller. If not, I don't know WTF, and no, I do not know how to make the lights stop flashing.

Any time you stop using the controller, disconnect it via System Preferences->Bluetooth or hold the Playstation logo button for 10 seconds to power it off.

Related Question