BetterJoy上手完全指南:让Switch手柄通吃PC游戏与模拟器的XInput映射方案
【免费下载链接】BetterJoyAllows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput项目地址: https://gitcode.com/gh_mirrors/be/BetterJoy
如果你家里有一台吃灰的Switch,大概率手边还躺着Pro手柄或Joy-Con。可当你想在电脑上跑CEMU、Citra、Dolphin这类模拟器,或者直接在Steam里开一局大作时,却发现这些手柄要么不被识别,要么摇杆、陀螺仪完全派不上用场——好好的手柄只能在Switch上服役,多少有点可惜。BetterJoy正是为这个痛点而生的开源工具:它能把Switch Pro手柄、左右Joy-Con以及复古的SNES手柄,统统"翻译"成Windows最通用的XInput设备,让它们在CEMU、Citra、Dolphin、Yuzu等模拟器以及普通PC游戏中即插即用。这款工具在GitHub上已累计了近60万次下载,是Switch手柄连PC绕不开的老牌方案。
它到底解决了什么麻烦
先解释一个背景概念:XInput是微软制定的手柄通信协议,Windows游戏和模拟器对它支持最广,Xbox手柄之所以"插上就能玩"靠的就是它。Switch手柄走的是另一套协议,所以默认情况下PC游戏根本不认。BetterJoy的思路很直接——在后台把Switch手柄伪装成标准XInput手柄,让所有"只认Xbox手柄"的软件照常工作。
它覆盖的设备与连接方式如下:
| 手柄类型 | 连接方式 | 亮点 |
|---|---|---|
| Switch Pro手柄 | 蓝牙 / USB | 手感专业,支持陀螺仪与HD震动 |
| Joy-Con左手柄 | 蓝牙 | 可单独用,也可配对组合 |
| Joy-Con右手柄 | 蓝牙 | 带NFC,可读Amiibo |
| SNES复古手柄 | USB | 经典外形,怀旧游戏绝配 |
除了最基础的按键输入,它还有两个很值钱的附加能力:一是把陀螺仪数据映射成鼠标移动,让Joy-Con化身"空中鼠标";二是允许把SL、SR、Capture这些特殊按键重绑定到你想要的任意键位。这意味着不只是打游戏,连直播快捷键、创意软件的控制方案都能用它搭出来。
三块技术拼图撑起整个工具
BetterJoy能同时适配蓝牙/USB两种连接、算得准体感、又兼容海量游戏,靠的是清晰的三层设计:
- 设备通信层:通过HIDapi库与手柄底层通信,负责蓝牙和USB两条链路的原始数据采集与协议解析,保证连接稳定。
- 数据处理层:内置MadgwickAHRS姿态解算算法,专门处理陀螺仪与加速度计数据,能把手柄的实时姿态角度算准到误差0.5度以内,这是体感控制手感好的关键。
- 输出模拟层:借助ViGEmBus驱动把处理后的数据转成标准XInput信号,相当于给每个游戏配了一位"同声传译",这也是兼容所有XInput软件的根本原因。
在连接稳定性上,它也下了不少功夫:蓝牙意外断开会自动尝试重连;输入数据走环形缓冲,避免高负载时丢包;检测到低电量时会动态降低采样率来省电;多手柄同时连接时每个设备独立管理、互不干扰。
从安装到上手,四步走完
整套流程并不复杂,跟着做基本不会踩坑:
- 装驱动:进入BetterJoyForCemu/Drivers目录,64位系统运行ViGEmBusSetup_x64.msi,32位系统运行ViGEmBusSetup_x86.msi,装完务必重启电脑让驱动生效。可在设备管理器里确认"ViGEm Bus Driver"已正常运行。
- 启动程序:运行BetterJoyForCemu.exe。如果之后按键映射不生效,试试以管理员身份运行。
- 连接手柄:蓝牙模式下,长按手柄顶部的Sync键5秒进入广播状态,再到Windows蓝牙设置里正常配对;USB模式下直接插线即可,即插即用。
- 验证识别:程序会自动扫描并列出已连接的手柄,看到设备列表就说明一切就绪。
CEMU模拟器实战配置
对模拟器玩家来说,CEMU是最典型的应用场景,配置分几步:
- 确认ViGEmBus驱动已安装且已重启。
- 运行BetterJoyForCemu.exe并连上手柄。
- 启动CEMU,确保Cemuhook插件已启用并选中控制器。
- 进入Input Settings,把输入源选为XInput,再按常规方式分配按键。
几个小细节值得留意:使用Joy-Con时,Cemuhook会识别出两个独立控制器,每个都包含全部按键,选哪个只代表你更习惯用哪只手做体感;想体验震动,把强度调到70%~80%效果最佳。此外,CEMU 3.0版本之后不再强制要求额外配置GamePad运动源,直接按上述流程操作即可。
在Steam和其他PC游戏里同样好用
得益于系统级的XInput输出,Pro手柄和Joy-Con在PC上可以直接当Xbox手柄用,Steam也不例外。流程是:先启动BetterJoy连上手柄,再打开Steam大屏幕模式,进入控制器设置开启Switch Pro支持,最后在游戏属性里按喜好配置布局即可。整个过程不需要游戏原生支持Switch手柄,震动反馈也能保留,还能与其他XInput设备共存。
进阶玩法:把体感用到极致
熟悉基础操作后,下面这些玩法值得一试:
- 陀螺仪当鼠标:把Joy-Con的体感数据映射为鼠标移动,实现"空中鼠标"效果,适合演示、直播场景。
- 按键重映射:把SL、SR、Capture绑定成宏或复杂操作序列,简化重复操作。
- 多手柄协同:左右Joy-Con组合成完整手柄,也可以Pro手柄和Joy-Con混用;多人游戏时还能为每个手柄分配独立玩家ID。
- 配置文件管理:针对不同游戏保存独立配置,随时一键切换;定期备份settings文件防止配置丢失。
出问题了?先查这张自查表
| 现象 | 排查方向 |
|---|---|
| 手柄连不上 | 检查蓝牙适配器是否正常、电量是否充足,或改用USB测试 |
| 连接时断时续 | 缩短手柄与电脑的距离(5米内),减少障碍物与其他蓝牙设备干扰,更新蓝牙驱动 |
| 陀螺仪没反应 | 确认手柄已校准(放在水平面上约10秒自动完成),重启BetterJoy,并确认游戏支持体感 |
| 按键映射失效 | 检查配置文件是否损坏,重新设置映射,必要时以管理员身份运行程序 |
| 延迟偏高 | 关闭多余后台程序,或适当降低陀螺仪采样率 |
| 耗电过快 | 调低震动强度、关闭不必要的指示灯,不用体感时关掉陀螺仪 |
日常使用中,BetterJoy的资源占用也很克制:内存约50~100MB,CPU占用通常低于5%,平时可最小化到系统托盘运行。
想自己编译或参与开发?
BetterJoy是开源项目,源码可直接获取构建。仓库地址:https://gitcode.com/gh_mirrors/be/BetterJoy。
用Visual Studio构建:安装Visual Studio 2019或更高版本,勾选".NET桌面开发"工作负载;打开BetterJoy.sln解决方案;通过NuGet包管理器恢复依赖;选择x64或x86平台后即可编译运行。
用命令行构建:先安装NuGet工具,克隆代码后在源码目录执行nuget restore恢复依赖,再用MSBuild编译:
msbuild .\BetterJoy.sln -p:Configuration=CONFIGURATION -p:Platform=PLATFORM -t:RebuildCONFIGURATION可选Release或Debug,PLATFORM可选x86或x64(绝大多数场景选x64)。编译产物位于BetterJoyForCemu\bin\PLATFORM\CONFIGURATION目录下。
贡献方向:目前项目仅支持Windows,macOS适配是社区最期待的方向;也欢迎扩展新控制器支持、增加更多自定义功能、完善文档或修复现有bug。参与前注意遵循C#编码规范、为新功能补充测试,并在提交前确保代码可正常编译。
从"手柄只能留在Switch上"到"一柄通吃所有平台",BetterJoy用一套简洁的架构把跨平台手柄映射这件事做到了极致。如果你正被手柄兼容性问题困扰,不妨装上驱动、连上手柄,五分钟内就能感受到它带来的改变。
【免费下载链接】BetterJoyAllows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput项目地址: https://gitcode.com/gh_mirrors/be/BetterJoy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考