PS3手柄连接电脑 蓝牙+六轴+振动+ L2、R2模拟轴 完美实现

PS3手柄连接电脑 蓝牙+六轴+振动+ L2、R2模拟轴 完美实现

┏━━━━┓
┃版权说明┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┗━━━━┛

※本文原载于那点事儿 由Besson原创
※本文版权归那点事儿 及原作者Besson所有
※未经许可,禁止任何形式的转载,鄙视盗文行为,违者必究
※若有转载需要,应先向相关版权拥有者提出申请,请尊重版权
┏━━━━┓
┃文章正文┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┗━━━━┛

PS3手柄连接电脑 蓝牙+六轴+振动+ L2、R2模拟轴 完美实现

本文只对应32位系统,64位系统的请自行参照研究。
蓝牙适配器装了FreeBT驱动后只能连接手柄。
vista系统的请仔细阅读“安装libusb-win”,有可能会有严重后果。
振动只支持Xinput的游戏,具体列表请参阅
http://en.wikipedia.org/wiki/List_of_XInput_games

要求:

硬件部分
SIXAXIS 或 Dualshock 3手柄
蓝牙适配器v2.0 (HCI和LMP必须3.0以上)
USB连接线(用来把手柄和蓝牙适配器配对)

软件部分
libusb-win
FreeBT驱动
Visual C++ 库的运行时组件:Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
PPJoy 0.83
BtSix 1.5c

最后需要的文件会打包给大家

安装步骤:
1.安装libusb-win
(1)下载地址
libusb-win32-filter-bin-0.1.12.1.exe
libusb-win32-filter-bin-0.1.10.1.exe
(2)xp用户请安装libusb-win32-filter-bin-0.1.12.1.exe,一路“下一步”就行了
(3)vista用户请特别注意,一定要安装libusb-win32-filter-bin-0.1.10.1.exe,并且要点右键,在兼容性里选择xp,然后再安装,否则会蓝屏死机、usb设备全都不起作用了,非常恐怖。请一定要注意啊。

2.给蓝牙适配器安装FreeBT驱动
(1)打开设备管理器,右键点击蓝牙适配器,选择更新驱动程序
(2)选择“从列表或从指定位置安装(高级)”,选择“不要搜索。我要自己选择要安装的程序”
(3)选择“从磁盘安装”,这时就选择FreeBT所在文件夹的fbtusb.inf
(4)安装好了会显示FreeBT USB Driver

3.安装Visual C++ 库的运行时组件
因为BtSix 1.4a以后版本的程序必须,否则BtSix无法运行
(1)先到微软官方下载 点我
(2)通不过微软正版验证的请下载文末的打包
(3)文件名是vcredist_x86.exe,直接安装就可以了

4.安装调试PPJoy 0.83
本工具是个虚拟手柄,BtSix接受手柄的信号并且传输到PPJoy
(1)先下载PPJoy 0.83
(2)安装就一路“下一步”就行,完了以后请添加添加一个虚拟手柄
(3)调试手柄按键,为了完美对应Xbox360手柄的按键请按照下图调试
下图的设置经过我的精心测试,完美对应Xbox360手柄的按键,并且对应L2、R2键的轴的功能




5.运行BtSix 1.5c
(1)请把蓝牙适配器、PS3手柄插在电脑上
(2)解压BtSix 1.5c,运行BtSix.exe
(3)点击“Address”按钮,点击两下弹出的确定框,进行手柄配对。
(4)拔下PS3手柄,按下手柄上的PS键,进行配对。
(5)如果成功配对,BtSix将会显示接收到的数据
(6)请将enable anlog勾上以打开L2、R2键的轴的功能
(6)请将enable rumble/Vibration mode勾上以打开振动,请在正确配对以后再打开,否则将会导致BtSix崩溃
如图:

6.校准控制器
(1)你可以在控制面板里的游戏控制器里进行校准
(2)我校准以后效果

7.文件打包下载
(1)http://www.rayfile.com/files/969d34ae-a3f7-11dd-9a99-0014221b798a/

最后的话:
我测试了鬼泣4和Race Driver: GRID
振动非常完美,感觉异常真实
实况2009也是XInput的游戏,但是不知道怎么振动,看看大家有什么办法?

感谢
这些帖子给了我很多启发
http://forums.ps2dev.org/viewtopic.php?t=7099
http://www.mobile01.com/topicdetail.php?f=283&t=576401
http://club.tgfc.com/thread-5967458-1-1.html

pageTracker._initData(); pageTracker._trackPageview(); } catch(err) {}