BetterJoy 完整上手攻略把 Switch Pro 手柄和 Joy-Con 变成 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 手柄接到电脑上想用 Cemu 重温《塞尔达传说旷野之息》Windows 却弹出USB 设备无法识别手柄指示灯闪了两下就沉默了——这大概是很多 PC 玩家第一次接触 BetterJoy 时的真实经历。BetterJoy 是一款开源免费的 C# 程序核心价值只有一句话让任天堂 Switch 家族的 Pro 手柄、Joy-Con 和 SNES 手柄能被 PC 当成标准 Xbox 360 手柄来用并兼容 CEMU、Citra、Dolphin、Yuzu 等主流模拟器。它相当于一位翻译官把 Switch 手柄的任天堂语翻译成 PC 游戏听得懂的XInput 语顺带还能用陀螺仪控制鼠标、把 SL/SR/Capture 等特殊按键重映射成你想要的快捷键。读完全文你会弄明白五件事需要装哪些驱动、为什么非装不可怎么用蓝牙或 USB 把手柄连上电脑如何在 Cemu 与 Steam 里真正把手柄用起来陀螺仪鼠标、按键重映射等进阶玩法怎么调以及出问题时如何排查、想参与开发该从哪下手。本文基于 BetterJoy v7.0 源码与项目文档撰写所有功能、配置项均可在仓库源码中核实。开工之前先给系统装上翻译官的通道ViGEmBus先说一个底层概念XInput 是微软为 Xbox 手柄定义的标准输入协议绝大多数 PC 游戏只认这一种语言。Switch 手柄显然不说这种语言BetterJoy 负责翻译但它需要 ViGEmBus 这个虚拟手柄总线驱动作为载体——你可以把它理解成一条高速公路让 BetterJoy 能在系统里凭空造出一个虚拟 Xbox 手柄游戏看到的就是一个再普通不过的手柄。驱动安装只需四步进入项目目录下的BetterJoyForCemu/Drivers/64 位系统运行ViGEmBusSetup_x64.msi32 位系统运行ViGEmBusSetup_x86.msi重启电脑让驱动加载生效打开设备管理器看到 ViGEm Bus Driver 即代表安装成功。这里有三点补充建议系统要求Windows 7/8/10/11 均可需要 .NET Framework 4.6.1 及以上程序的App.config中已明确标注运行时版本Windows 7 用户请先阅读驱动目录内README.txt的特别说明。HIDGuardian 默认不装它只在你需要同时连接 Pro 手柄加两只 Joy-Con、且要在 Steam 大屏幕模式下使用并出现手柄被 BetterJoy 与 Steam抢认时才用得上。它位于Drivers/HIDGuardian/目录里面有现成的安装与卸载批处理脚本按需以管理员身份执行即可。配置可全局可局部程序级参数写在App.config用户级动态设置如按键映射、校准数据写入 exe 同目录的settings文件想迁移配置时把settings拷走即可。让手柄和 BetterJoy对上话连接与首次启动装好驱动并重启后就到了把手柄接上线的环节蓝牙和 USB 两条路任选。蓝牙连接推荐无线使用长按手柄顶部的小圆钮Sync 键约 5 秒指示灯开始快速闪烁手柄进入广播模式打开 Windows 蓝牙设置搜索并正常配对配对成功后指示灯常亮连接完成。断开连接只需按住 Home 键或 Capture 键约 2 秒想重新连接时按手柄上任意按键即可。USB 连接则更省事插上数据线即插即用无需任何配对操作。随后双击运行BetterJoyForCemu.exe。这里有一条非常实用的提示如果之后发现按键映射、鼠标模拟没有生效请右键程序选择以管理员身份运行这是新手最常踩的坑之一。程序主界面会实时显示当前连接的手柄Pro 手柄和左右 Joy-Con 都会以独立图标呈现双击 Joy-Con 图标还能把合并状态拆开或重新合体。在模拟器和 Steam 里收货把按键与体感真正用起来连接只是第一步让游戏认识手柄才是关键。以 Cemu 为例完整配置流程如下安装 Cemuhook 插件并确保其处于开启状态运行 BetterJoy保持手柄连接进入 Cemu 的 Input Settings把输入源选为XInput然后像普通 Xbox 手柄一样绑定按键若使用两只 Joy-ConCemuhook 会识别出两个控制器——任选其一作为体感主力手即可另一个作为补充想要震动反馈时把震动强度调到70%-80%手感最接近 Switch 原机。BetterJoy 支持的控制器可按下面这张表快速对号入座控制器连接方式上手要点Switch Pro 手柄蓝牙 / USB功能最全陀螺仪 HD 震动齐备Joy-Con 左 / 右蓝牙可单独使用也可两只配对成完整手柄SNES 复古手柄USB即插即用适合怀旧游戏Citra、Dolphin、Yuzu 等模拟器与普通 PC 游戏的处理方式完全一致BetterJoy 默认把手柄模拟成 Xbox 360 控制器对应App.config中的ShowAsXInputtrue所以凡是支持 XInput 的游戏都能直接识别无需游戏原生支持 Switch 手柄。Steam 用户建议这样用先启动 BetterJoy 并连上手柄再打开 Steam 大屏幕模式在控制器设置中把它当作通用手柄配置即可如果你同时开了 Steam 自带的 Switch 支持导致冲突可以参考下一节的 HIDGuardian 方案。进阶玩法陀螺仪、特殊按键与多手柄组合配置跑通之后BetterJoy 的真正乐趣才刚开始。以下玩法多数只需改App.config或settings文件改完重启程序即生效。陀螺仪当鼠标空中鼠标。把GyroToJoyOrMouse设为mouse体感移动就会转成鼠标指针移动GyroMouseSensitivityX/Y控制速度游戏中按下左或右摇杆键STICK可让鼠标瞬间回到屏幕中央。默认关闭需手动开启。陀螺仪当摇杆。设为joy_left或joy_right体感倾斜会转成对应摇杆的微调输入配合GyroStickSensitivity与GyroStickReduction摇杆行程缩放可以调出细腻的瞄准手感适合射击类游戏。按住与切换两种触发方式。GyroHoldToggletrue时你需要一直按住映射键体感才激活按下即抬枪设为false则按一次开启、再按一次关闭点按切换两种习惯都能满足。特殊按键重映射。SL、SR、Capture 这些 Switch 专属键在 PC 上默认没有对应物BetterJoy 允许你把它们绑到任意键盘键。在settings文件中capture、home、sl_l、sl_r、sr_l、sr_r分别对应各键的映射目标默认capture绑定到 PrintScreen截图键reset_mouse默认映射到 STICK。改完后保存并重启程序即可。双 Joy-Con 合体与握持方向。两只 Joy-Con 会被合并识别为一个完整手柄双击任意一只的摇杆键STICK可切换横握 / 竖握方向ChangeOrientationDoubleClick控制竖屏射击或特定体感游戏会用到这个功能。手感与震动微调。SwapAB/SwapXY可以交换按键让布局更贴近 Xbox 习惯LowFreqRumble/HighFreqRumble调节 HD 震动低高频的音调StickScalingFactor用于修正摇杆推不到底的问题。陀螺仪校准。将AllowCalibrationtrue后主界面会出现 Calibrate 按钮逐只手柄点击即可写入校准数据存储在settings中可备份迁移想对第三方手柄做默认校准则修改acc_sensiti、gyr_sensiti等内置参数。省电与常驻。AutoPowerOff与PowerOffInactivity可设置退出程序或空闲一段时间后自动关闭手柄电源StartInTray开启后程序启动即驻留系统托盘不占任务栏。疑难杂症高频问题与排查思路再顺手的工具也会遇到意外这里把社区里出现频率最高的问题整理成一张速查表现象排查思路手柄连不上检查蓝牙适配器与手柄电量改用 USB 直连排除硬件问题连接频繁断开缩短手柄与电脑距离5 米内关闭其他蓝牙设备更新蓝牙驱动按键 / 鼠标映射无效以管理员身份运行 BetterJoy体感完全无反应重新校准陀螺仪确认游戏确实支持体感试试切换UseFilteredIMUSteam 大屏幕下手柄冲突按需安装 HIDGuardian或将UseHIDG设为true程序退出后手柄失灵检查PurgeAffectedDevices设置必要时重新插拔手柄想定位深层次问题调高App.config中DebugType的日志等级如设为 1 输出全部如果以上都没能解决还有一个通用的万能重启思路重启 BetterJoy → 重新配对 → 重启电脑按这个顺序逐级尝试绝大多数临时性故障都会消失。打开引擎盖BetterJoy 内部是怎么工作的对开发者或好奇型用户来说BetterJoy 的源码结构相当清晰按数据流可以拆成三层来看通信层HIDapi.cs通过 HID 协议与手柄建立底层通信负责原始数据的读写蓝牙与 USB 都走这条路解析与融合层Joycon.csMadgwickAHRS.csJoycon.cs解析按键、摇杆、IMU 数据并管理手柄状态其中的Button枚举覆盖了 SL、SR、HOME、CAPTURE、STICK 等全部按键MadgwickAHRS.cs则是姿态解算算法把加速度计与陀螺仪数据融合成稳定的姿态角体感不漂移靠的就是它输出层OutputControllerXbox360.cs/OutputControllerDualShock4.cs把处理好的数据交给 ViGEmBus生成 XInputXbox 360或 DS4 虚拟手柄。体感数据通往模拟器还有一条专门通道UpdServer.cs实现了一个 UDP Motion Server默认监听127.0.0.1:26760把姿态数据持续推送给 Cemuhook——这就是模拟器里体感控制的来源。界面与配置则由MainForm.cs、Reassign.cs按键重设界面和Config.cssettings动态读写负责。从源码构建并参与共建想自己动手编译一份或给项目添砖加瓦流程如下安装 Visual Studio 2019 及以上版本勾选.NET 桌面开发工作负载克隆仓库git clone https://gitcode.com/gh_mirrors/be/BetterJoy打开解决方案文件BetterJoy.sln通过 NuGet 包管理器还原依赖选择x64 Release配置构建Windows 10/11 用户极少需要 x86构建产物位于BetterJoyForCemu\bin\PLATFORM\CONFIGURATION\目录。目前项目仅有 Windows 支持社区呼声最高的方向是macOS 兼容此外扩展更多第三方手柄支持、补充文档、修复既有 bug 都是很实在的贡献入口。如果你打算提交代码建议遵循项目既有的 C# 编码风格保证改动可编译并同步更新相关文档。结语从连不上到玩出花只差一次配置回到开头的场景那位对着USB 设备无法识别发愣的玩家现在应该已经明白——问题不在于手柄而在于缺少一位翻译官。BetterJoy 用一套清晰的三层架构把设备通信、姿态解算、XInput 输出完整串了起来让 Switch 家族手柄在 PC 上不再水土不服。下一步的行动清单很简单从 Releases 下载最新版本 → 按本文顺序装驱动、连手柄、配模拟器 → 在进阶玩法里找到适合你的那几项调优。遇到问题就翻一翻上面的排查表想贡献代码就 clone 下来从Joycon.cs读起。手柄已经在手边了动手试试吧。【免费下载链接】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),仅供参考