BetterJoy:基于 XInput 的任天堂 Switch 控制器适配工具项目

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput

分支3Tags14
当前项目代码仓暂无内容

BetterJoy v7.0

本软件让任天堂Switch Pro手柄、Joy-cons以及Switch的SNES控制器能通过Cemu搭配CemuhookCitraDolphinYuzu和系统范围内支持的通用XInput设备使用。

它还允许您利用陀螺仪控制鼠标,并将特殊按钮(SL、SR、Capture)重新映射为您选择的键绑定。

如有人愿意捐赠(无论出于何种原因),可在此处捐赠

个人感言

感谢使用我的软件并给予的所有建设性反馈。我早些时候开始这个项目,从那时起学到了更多编程和软件开发的知识。我投入到这个项目的时间有限,但我会尽力在出现时修复漏洞。对于这方面的耐心,也一并致谢!

这是一段奇妙的旅程,GitHub上已有近59万次官方下载,夜间版本可能还有更多。我认为这个项目是我迄今为止获得的两个软件工作机会的背后推手,因此我对此感到非常自豪。

截图

示例

下载

访问发布页面

使用方法

  1. 安装驱动程序
    1. 阅读README文件(它们有存在的理由!)
    2. 运行Drivers/ViGEmBus_Setup_1.16.116.exe
    3. 重启计算机
  2. 运行BetterJoyForCemu.exe
    1. 如果键盘/鼠标按键映射不起作用,请以管理员身份运行
  3. 连接您的控制器。
  4. 启动Cemu并确认CemuHook已选中控制器。
    1. 若使用Joy-cons,CemuHook会检测到两个控制器—每个都能提供所有按钮,但选择一个只是偏好于哪只手用于陀螺仪控制。
  5. 进入输入设置,选择XInput作为源,并正常分配按钮。
    1. 如果因某种原因不想这样做,只需设置一个输入配置文件,控制器选择“Wii U Gamepad”,并在GamePad运动源下启用“也用于按钮/轴”。自版本3起,这一点不再需要
    2. 如需振动,将振动调至70-80%。
  • 自从版本3开始,您可以像正常使用Xbox控制器一样在PC上使用Pro控制器和Joy-cons—试试与Steam配合使用吧!

更多信息

查看维基! 在那里,您能找到变更日志、应用程序设置描述、常见问题解答和问题页面,以及如何使BetterJoy更好地与Steam兼容的信息。

控制器的连接与断开

蓝牙模式

  • 按住顶部的小按钮(同步)5秒钟,这会使控制器进入广播模式。
  • 在蓝牙设置中查找并正常配对。
  • 断开控制器,请按住主页按钮(或捕捉按钮)2秒(或按下同步按钮)。要重新连接,只需在控制器上按任意按钮。

USB模式

  • 将控制器插入电脑。

断开连接[Windows 10]

  1. 进入“蓝牙和其他设备设置”
  2. 在第一个类别“鼠标、键盘和笔”下,应找到Pro控制器。
  3. 点击它,会出现一个“移除”按钮。
  4. 点击“移除”按钮

构建

Visual Studio(集成开发环境IDE)

  1. 如果尚未安装,请通过官方指南安装Visual Studio Community 2019。选择**.NET桌面开发**工作负载。
  2. 通过Git获取代码项目或使用“下载ZIP”按钮。
  3. 打开Visual Studio Community并打开解决方案文件(BetterJoy.sln)。
  4. 通过工具> NuGet包管理器>包管理器设置打开NuGet管理器。
  5. 应有一个关于“恢复你的包”的警告,点击恢复按钮。
  6. 现在可以运行和构建BetterJoy了。

Visual Studio Build Tools(命令行界面CLI)

  1. 通过官方网站链接下载Visual Studio Build Tools
  2. 按照官方指南安装NuGet,遵循nuget.exe部分。确保能在你喜欢的终端运行nuget命令。
  3. 通过Git或使用“下载ZIP”按钮获取代码项目。
  4. 打开一个终端(CMD、PowerShell等),进入源代码目录。
  5. 运行nuget restore来还原NuGet依赖项。
  6. 现在使用MSBuild构建应用:
    msbuild .\BetterJoy.sln -p:Configuration=CONFIGURATION -p:Platform=PLATFORM -t:Rebuild
    
    CONFIGURATION可用值为ReleaseDebugPLATFORM可用值为x86x64(绝大多数情况下选择后者)。
  7. 您已完成构建。请参阅下一节了解二进制文件位置。

二进制文件位置

构建后的二进制文件位于

BetterJoyForCemu\bin\PLATFORM\CONFIGURATION

其中PLATFORMCONFIGURATION是构建时提供的参数。

致谢

特别感谢rajkosto不厌其烦地回复我17封邮件,快速回答我的问题。UDP服务器大部分借鉴了他的ScpToolkit仓库。

还要感谢mfosse给我指明方向,以及Looking-Glass,没有他们我不可能理解这一切。(坦白说,Joycon代码是他编写的)

非常感谢viigem的ViGEm项目!向epigramx,即WiimoteHook的创作者,表示歉意和感激,他给了我驱动器的想法,并允许我继续使用他的安装批处理脚本,尽管我是未经许可就使用的。感谢MTCKC提供灵感和批处理文件。

最后,感谢dekuNukem分享的文档,特别是SPI校准数据和IMU传感器笔记!

所有的代码贡献者表达巨大的感谢!

图标(修改版):“Switch Pro Controller”,“Switch Detachable Controller Left”,“Switch Detachable Controller Right”图标由Chad Remsing从Noun Project创作。Super Nintendo Controller图标由Mark Davis从Noun Project创作;图标由Amy Alexander修改。

项目介绍

允许Nintendo Switch Pro控制器、Joycons以及SNES控制器与CEMU、Citra、Dolphin、Yuzu兼容,并可作为通用XInput设备使用。【此简介由AI生成】

定制我的领域
574.76 K391访问 GitHub