零成本把 Switch 手柄变成电脑手柄:JoyCon-Driver 让 Joy-Con 连接 PC 一学就会
【免费下载链接】JoyCon-DriverA vJoy feeder for the Nintendo Switch JoyCons and Pro Controller项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver
Windows 并不认识 Switch 的 Joy-Con,蓝牙连上之后,它只是一个"没有灵魂"的蓝牙设备,游戏里怎么按都没有反应。开源项目 JoyCon-Driver 专门解决这个痛点:它负责读取手柄的按键、摇杆和陀螺仪数据,再通过 vJoy 虚拟手柄驱动把信号转交给系统,让 Joy-Con 连接 PC 免费变身标准游戏手柄,还额外支持体感控鼠、双人合并等加分玩法。
Joy-Con 连接 PC 缺的不是硬件,而是"翻译官"
理解这个项目,只需记住一个词:翻译。Switch 手柄说话用的是一套私有的蓝牙协议,Windows 听不懂,自然不搭理。JoyCon-Driver 在中间扮演翻译官:一边用 hidapi 和手柄"对话",读出按键、摇杆、六轴姿态数据;一边把翻译结果塞给 vJoy 虚拟手柄驱动——这是 Windows 认得的"标准手柄语言"。于是游戏看到的就是一只普普通通的手柄,Joy-Con 和 Pro Controller 就这样免费上岗了。
项目同时支持蓝牙与 USB 充电握把两种接入方式,带 wxWidgets 图形界面,还内置一个 3D 陀螺仪可视化窗口,可以实时观察手柄的旋转姿态。整个工程全部开源,自己编译不花一分钱。
开玩前备齐这四样,缺一件都不顺
| 需要准备的东西 | 作用 | 是否必需 |
|---|---|---|
| Joy-Con(左右各一或成对)或 Pro Controller | 手柄本体 | 必需 |
| Windows 电脑 + 蓝牙 4.0 及以上 | 无线连接通道 | 必需 |
| vJoy 虚拟手柄驱动 | 让 Windows 认出手柄信号 | 必需 |
| x360ce | 把 vJoy 映射成 Xbox 手柄,兼容老游戏 | 可选(推荐) |
提示:电脑没有蓝牙的话,一个几十块的 USB 蓝牙适配器就能救场;Joy-Con 电量低于 20% 时连接很不稳定,动手前先充满电。
一步步把 Joy-Con 蓝牙连接电脑并点亮虚拟手柄
从装驱动到看到光标跟着摇杆动,全程大约五分钟,照着下面五步走即可。
第一步:安装 vJoy,先给系统请一位"翻译官"
vJoy 是这套方案的地基。装好后在 Windows 搜索框输入"Configure vJoy",打开配置面板。
第二步:让 vJoy 设备数量与手柄数量一一对应
有几只手柄就开几个 vJoy 设备。例如一对 Joy-Con 加一个 Pro Controller,就建 3 个设备。每个设备建议把轴数设为 4(对应两个摇杆),按钮设为 16(覆盖全部按键),方向、滑动条保持默认。这一步就是常说的 vJoy 手柄驱动配置,出错率最高,务必耐心核对。
第三步:拉取源码并编译出可执行文件
打开命令行执行:
git clone https://gitcode.com/gh_mirrors/jo/JoyCon-Driver进入joycon-driver目录,用 Visual Studio 打开joycon.sln直接编译。仓库里已经打包好 vJoyInterface、hidapi、wxWidgets 等依赖,Windows 下开箱即建。
第四步:长按 SYNC 让手柄进入配对模式
按住 Joy-Con 侧面的 SYNC 小圆钮约 3 秒,LED 指示灯会呈扇形闪烁。然后到 系统设置 → 蓝牙和其他设备 → 添加设备 → 蓝牙,在列表里点选"Joy-Con (L)"或"Joy-Con (R)"完成配对。
第五步:打开 vJoy Monitor 验证成果
运行编译好的主程序,它会自动扫描并初始化所有已连接的手柄,控制台会打印每只手柄的初始化信息。再打开 vJoy 自带的 vJoy Monitor,按下按键、推动摇杆——虚拟手柄的灯和轴条跟着动,就说明这套 Joy-Con 连接 PC 的链路已经通了。
三种打开方式,让 Switch 手柄当 PC 手柄用出花样
单人模式:左右 Joy-Con 合并成一个完整手柄
勾选"Combine JoyCons",左右 Joy-Con 会被合并成一个vJoy 设备:左边摇杆管移动、右边摇杆管视角,合起来就是一只完整的 Pro 手柄,打《双人成行》《茶杯头》这种需要双摇杆的游戏非常顺手。如果用的是 Pro Controller,程序会完整读取它的双摇杆与全部按键,并针对 Pro 手柄做按键位修正,体验几乎和原生手柄没差别。
派对模式:一人一只,各玩各的
不勾选合并选项时,左右 Joy-Con 会各自映射到 vJoy 设备 1 和 2,成为两个独立手柄。朋友来家里打双人游戏,一人一只刚刚好,省下买第二只手柄的钱。
体感模式:把 Joy-Con 变成一支无线鼠标
这是最出彩的功能。在程序界面勾选"Gyro Controls",陀螺仪与加速度计数据就会被转换成鼠标移动指令——挥动右手柄,光标就在屏幕上走,延迟很低。源码里专门做了小数位移处理(MouseController模块的moveRel2),轨迹非常顺滑。
| 参数 | 作用 | 建议值 |
|---|---|---|
| Gyro Sensitivity X/Y | 体感灵敏度,数值越大越灵敏 | 150(默认) |
| Gyro Combo Code | 指定组合键切换体感开关 | 4(默认) |
| Quick Toggle Gyro | 按住才启用,松开即关 | 按习惯开关 |
想直观感受手柄姿态,勾选"Gyro Window"打开 3D 可视化窗口,晃动手柄,画面里的方块会实时跟随 pitch/yaw/roll 旋转。程序里还藏着两个彩蛋:Dolphin Pointer Mode专门优化在 Dolphin 模拟器里玩 Wii 游戏的指针控制;勾选"Mario Theme"后,启动时会通过 HD 震动在第一只手柄上"演奏"一段马里奥主题曲。
常见问题自查:搜不到、乱飘、掉线怎么办
问:程序检测不到手柄,控制台没有输出?先确认手柄是否真的配对成功(蓝牙列表里能看到"已连接"字样)。Joy-Con 一旦连回过 Switch,下次必须重新配对。也可以试试先启动程序再连接手柄,或在系统设置里删除旧配对记录后重新配对。
问:按键正常,但摇杆乱飘或方向不对?程序启动时会自动从手柄的 SPI 存储读取出厂校准数据(摇杆和六轴传感器都有),属正常现象。如果仍漂移,勾选"Reverse Stick X/Y"修正方向;体感不准就放平手柄静置几秒,让陀螺仪自动归零。
问:vJoy Monitor 里设备没反应?八成是 vJoy 设备数量和手柄数量对不上。记住规则:一个手柄对应一个 vJoy 设备,合并后的一对 Joy-Con 只算一个设备。改完配置重启程序。
问:游戏还是不认识这个手柄?很多老游戏只认 Xbox 手柄。用 x360ce 把 vJoy 设备映射成虚拟 Xbox 360 手柄,几乎所有 Steam 游戏都能识别了。
问:蓝牙频繁掉线?进入 设备管理器 → 蓝牙适配器 → 属性 → 电源管理,取消勾选"允许计算机关闭此设备以节约电源",能解决大部分断连问题。
注意:界面里的"Force Poll Update"和"Broadcast Mode"是给开发者测试用的,普通用户不要勾选,否则可能引发输入异常。
最后一步:现在就差你动手了
JoyCon-Driver 的价值一句话就能说清:让家里闲置的 Switch 手柄变成免费的 PC 手柄。你只需要做三件事——装 vJoy、把 Joy-Con 蓝牙连接电脑、编译运行程序。跑通后建议先体验"Combine JoyCons"和"Gyro Controls"两个开关,感受这对小手柄的全新玩法。想深入了解实现或自定义配置,可以翻一翻这些源码与配置文件:主程序逻辑在joycon-driver/src/main.cpp,无界面入口是joycon-driver/src/GUI-less.cpp,手柄协议封装在joycon-driver/include/Joycon.hpp,体感转鼠标的SendInput实现见joycon-driver/include/MouseController.hpp。程序启动时还会在当前目录加载config.txt(由tools.hpp中的LoadConfig解析),combineJoyCons、gyroSensitivityX、broadcastMode等进阶参数都能在那里调整。遇到问题就回到上面的自查清单,按图索骥,基本都能解决。
【免费下载链接】JoyCon-DriverA vJoy feeder for the Nintendo Switch JoyCons and Pro Controller项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考