news 2026/8/19 10:15:50

Switch手柄PC适配完整指南:BetterJoy让Pro手柄与Joy-Con在Windows上无缝工作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Switch手柄PC适配完整指南:BetterJoy让Pro手柄与Joy-Con在Windows上无缝工作

Switch手柄PC适配完整指南:BetterJoy让Pro手柄与Joy-Con在Windows上无缝工作

【免费下载链接】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手柄,插上电脑却发现Steam完全不认账,打开模拟器也只显示"未检测到控制器"——这不是手柄坏了,而是它天生只懂任天堂的"方言"。BetterJoy就是那个帮你把手柄"翻译"成Windows通用语言的免费工具:它能让Switch Pro手柄、Joy-Con与SNES控制器被Cemu、Citra、Dolphin、Yuzu等模拟器以及任何支持XInput的PC游戏正常识别,甚至能把陀螺仪变成鼠标、把SL/SR/截图键改写成你想要的任意按键。下面这份Switch手柄PC适配完整指南,从装驱动到进阶调优,一步步带你走通全流程。

BetterJoy到底是什么,适合什么样的人

一句话:它是运行在Windows上的手柄协议翻译器。手柄物理上通过蓝牙或USB连到电脑后,BetterJoy在后台把任天堂的HID数据流实时转译成PC游戏最熟悉的Xbox 360手柄信号(XInput),游戏以为你在用Xbox手柄,实际上握着的是Pro手柄。

它适合三类人:

  • 模拟器玩家:玩Cemu、Citra、Dolphin、Yuzu,想要原生体感瞄准和HD震动。
  • Steam玩家:想在PC上用手柄玩大型3A,又不想再花一份钱买Xbox手柄。
  • 双人党:把两只Joy-Con分别模拟成两个独立Xbox手柄,本地联机直接开整。

项目本身是开源免费软件,主界面最多同时挂载4个手柄,Pro手柄、Joy-Con(左右单独或组合)、SNES控制器都能混插混用。

装驱动再连手柄,十分钟跑通最小流程

别急着开软件,顺序错了会白忙一场。核心流程就四步:

  1. 安装ViGEmBus虚拟总线驱动:它负责在系统里"伪造"出虚拟的Xbox 360手柄,是整个翻译机制的地基。驱动安装包放在项目目录的Drivers/文件夹里,64位系统用ViGEmBusSetup_x64.msi,32位系统用ViGEmBusSetup_x86.msi
  2. 重启电脑:这一步很容易被跳过,但驱动层不刷新,后面一切白搭。强烈建议装完立刻重启。
  3. 连接手柄
    • 蓝牙方式:按住手柄顶部的Sync同步键约5秒,指示灯开始快速闪烁即进入广播模式,再到Windows蓝牙设置里正常配对。断开连接时长按Home键(或截图键)2秒,想重连时随便按手柄任意键即可。
    • USB方式:用数据线直接插电脑,即插即用,延迟也更低,适合竞技场景。
  4. 运行程序并验证:启动BetterJoyForCemu.exe,主界面会显示4个手柄槽位。连接成功后对应槽位会亮起手柄图标,按下按键时界面有对应反馈就说明链路已通。如果键盘/鼠标映射不生效,记得以管理员身份运行

重要提示:连接Joy-Con时,CemuHook会检测到两个控制器,每个都能给出全部按键;选择哪一个只是决定陀螺仪优先用哪只手的数据。所以左右两只Joy-Con默认会自动"配对"成一个手柄,无需手动设置。

核心能力逐个上手:四个最值钱的功能

陀螺仪当鼠标用

适合谁:玩射击游戏或需要精细视角控制的玩家。怎么用:在App.config里把GyroToJoyOrMouse改为mouse,保存后重启程序,手柄倾斜就会驱动鼠标指针移动,按下摇杆键(默认STICK)可把指针拉回屏幕中央。

配置示例BetterJoyForCemu/App.config):

<add key="GyroToJoyOrMouse" value="mouse"/> <add key="GyroMouseSensitivityX" value="1200"/> <add key="GyroMouseSensitivityY" value="800"/>

小技巧:如果觉得飘,把UseFilteredIMU保持为true用滤波数据;想要更跟手,改成false用原始数据,灵敏度要按注释提示约缩小15倍。

按键重映射

适合谁:想把截图键当F12、把SL/SR当技能快捷键的玩家。怎么用:主界面点开"Reassign"映射窗口,点选Capture、Home、SL_L、SL_R、SR_L、SR_R等按钮,再按下你要绑定的键盘键或鼠标键即可完成捕获;中键单击恢复默认,右键可呼出更多选项。映射结果保存在程序目录下的settings文件中,按"Apply"生效。

小技巧:Pro手柄的Home键默认映射为Xbox的Guide键,改回joy_前缀的按钮即可还原为手柄按键行为。

HD震动调音

适合谁:对打击感有要求的玩家。怎么用:直接改App.config里的两个频率值,低频负责"闷",高频负责"脆"。

<add key="LowFreqRumble" value="40"/> <add key="HighFreqRumble" value="120"/>

小技巧:默认的40/120已经够用;想要"更猛"的反馈,官方建议试160/320。数值别超过1200,否则会破音。

单只Joy-Con拆开玩

适合谁:只想用一只Joy-Con玩复古游戏的双人党。怎么用:点击主界面已配对的手柄图标即可"拆开"组合,两只手柄各自独立成XInput设备。小技巧:在settings里把DoNotRejoinJoycons设为1,可以让Joy-Con保持在分离模式并切换竖握方向,适合竖屏射击玩法。

两个最能体现价值的实战场景

场景一:Cemu模拟器开玩塞尔达

  1. 确保BetterJoy已运行且手柄图标亮起。
  2. 启动Cemu,进入Input Settings,输入源选择XInput
  3. 按提示逐项绑定按键;若要体感,勾选GamePad motion source下的"Also use for buttons/axes",此时Cemuhook会自动从BetterJoy内置的UDP体感服务器(默认监听127.0.0.1:26760)读取陀螺仪数据。
  4. 想要震动就把游戏内Rumble调到70%~80%。

场景二:Steam大屏模式直接识别

BetterJoy从3.0版本起就把Pro手柄和Joy-Con暴露为标准Xbox手柄,所以Steam无需任何额外配置即可识别。打开Steam大屏模式 → 控制器设置 → 勾选Xbox控制器支持,手柄立刻可用;配合Steam每个游戏的按键自定义,等于给Switch手柄配了一套全局方案。

高频踩坑区:症状、原因、解法

症状1:手柄图标一直是灰色,按啥都没反应原因多半是ViGEmBus没装上或装完没重启。解法:重装Drivers/里的对应MSI,重启后重新插拔USB或重新配对蓝牙;仍不行就在Windows设备管理器里卸载HID设备再重插。

症状2:键盘/鼠标映射不生效原因:程序没有管理员权限,无法全局捕获键鼠事件。解法:右键BetterJoyForCemu.exe选择"以管理员身份运行"。

症状3:手柄连上了但游戏里没反应原因:游戏走的不是XInput协议,或驱动没加载。解法:确认ShowAsXInputtrue;老游戏只认DirectInput时,可用BetterJoy把按键映射到键盘来"曲线救国"。

症状4:蓝牙反复断连原因:干扰或供电不足。解法:把蓝牙接收器挪到无遮挡位置,关闭周围不用的蓝牙设备;优先插主板原生USB口而非前置扩展坞。

症状5:陀螺仪漂移明显原因:手柄内部校准基准漂了。解法:把AllowCalibration设为true,连接单个Pro手柄后点击主界面的"Calibrate"按钮,按提示把手柄平放等待倒计时,程序会自动把校准数据写回settings文件并永久保存。

进阶玩家才懂的三个隐藏玩法

1. 第三方手柄也能"伪装"成Pro手柄:打开主界面的"3rd Party Controllers"面板,它会枚举当前所有HID设备,把识别到的第三方手柄加入列表并指定类型(Pro/左Joy-Con/右Joy-Con)后保存到3rdPartyControllers文件,从此该设备也能获得Pro手柄的待遇。

2. 体感数据跨设备共享:把App.config里的IP127.0.0.1改成0.0.0.0,BetterJoy的UDP体感服务器就会监听所有网卡,局域网内其他电脑上的模拟器也能读取这台机器的陀螺仪数据,实现"一台电脑带体感,多台电脑共用"。

3. 从源码重新编译:如果你有Visual Studio 2019(需勾选.NET桌面开发工作负载),克隆源码后用nuget restore还原依赖,再执行msbuild BetterJoy.sln -p:Configuration=Release -p:Platform=x64即可构建出最新版,适合想自己加功能或修bug的开发者。

写在最后

从最开始"手柄插上电脑毫无反应"的沮丧,到如今Steam、Cemu、Citra、Dolphin、Yuzu全线通吃,BetterJoy只靠装一次驱动就帮你省下了一整块Xbox手柄的钱。它不是那种需要反复折腾的玩具,而是一劳永逸的底层翻译层——装好、连上、开玩,剩下的交给它。

如果你在配置过程中遇到本文没覆盖到的情况,建议先回看项目仓库的README.mdDrivers/目录下的说明文件,官方Wiki里有完整的设置项解释与FAQ。也别忘了给作者一个Star,让这个免费工具走得更远。祝你手柄玩得开心,键位永不冲突!

温馨提示:驱动装完一定记得重启;双人联机时优先用USB方式连接第二只手柄,能省去不少蓝牙配对的烦恼。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 10:15:43

把电脑游戏串流到手机和电视,凭什么一分钱不用花

把电脑游戏串流到手机和电视&#xff0c;凭什么一分钱不用花 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你有没有算过&#xff0c;花大几千配的游戏电脑&#xff0c;一天真正坐…

作者头像 李华
网站建设 2026/8/19 10:15:33

2026-08-18:得到目标点的最少代数。用go语言,你有若干个三维空间中的整数点,每个点由三个坐标 (x, y, z) 表示。初始时这些点构成第 0 代。 之后每一代,你从所有已经存在的点中,选择

2026-08-18&#xff1a;得到目标点的最少代数。用go语言&#xff0c;你有若干个三维空间中的整数点&#xff0c;每个点由三个坐标 (x, y, z) 表示。初始时这些点构成第 0 代。 之后每一代&#xff0c;你从所有已经存在的点中&#xff0c;选择两个不同的点&#xff08;坐标不能完…

作者头像 李华
网站建设 2026/8/19 10:14:51

OS-Aware Debugging:从系统调用到内核交互的深度调试指南

1. 项目概述&#xff1a;什么是“OS-Aware Debugging”&#xff1f;如果你在调试一个复杂的应用程序时&#xff0c;发现断点打下去&#xff0c;程序行为变得诡异&#xff0c;或者明明单步执行到某行代码&#xff0c;整个系统的响应却卡住了&#xff0c;那你很可能已经触及了“操…

作者头像 李华
网站建设 2026/8/19 10:09:54

从分立元件到音频功放:手把手搭建晶体管放大器全解析

1. 从“为什么不用IC”说起&#xff1a;分立元件放大器的独特魅力 最近在电子爱好者圈子里&#xff0c;一个话题又热了起来&#xff1a;不用任何集成电路&#xff08;IC&#xff09;&#xff0c;只用最基础的分立元件——晶体管、电阻、电容&#xff0c;能不能搭出一个能用的音…

作者头像 李华
网站建设 2026/8/19 10:09:06

Sunshine游戏串流终极指南:三步搭建低延迟跨设备游戏服务器

Sunshine游戏串流终极指南&#xff1a;三步搭建低延迟跨设备游戏服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 有没有过这样的时刻&#xff1a;游戏正打到关键Boss战&…

作者头像 李华
网站建设 2026/8/19 10:08:50

C#委托:从函数指针到类型安全的回调机制详解

1. 从C/C的“地址”到C#的“类型安全”&#xff1a;为什么我们需要委托&#xff1f; 如果你是从C或C转战C#的开发者&#xff0c;第一次看到“委托”这个概念&#xff0c;可能会觉得有点故弄玄虚。这不就是函数指针吗&#xff1f;在C语言里&#xff0c;一个 int (*funcPtr)(int…

作者头像 李华