控制器与键盘
DualSense、DualSense Edge 和 DualShock 4 经 HID 读取,USB 和 Bluetooth 都可以。兼容 Xbox 的手柄使用 XInput。键盘通过启动器配置映射到摇杆。
仓库笔记截至 2026年10月10日
HID 报告
XInput 枚举兼容 Xbox 的设备。插在 PC 上的 DualSense 对它是不可见的,除非某个转换层发明一个虚拟 Xbox 手柄。PS5PCEM 经 HID 打开 Sony 手柄并解码报告。USB 和 Bluetooth 上的字段相同。偏移会移动,因为 Bluetooth 给载荷加了前缀,而且 DualSense 把扳机放在按键字节之前。
十字键以八个罗盘方位之一到达,而不是四个独立的位。读取是重叠的,并且从不阻塞。一次轮询排空驱动的队列并保留最新的报告。若回答最旧的报告,摇杆就会滞后于帧已经落后的那么远。
输出、马达与灯条
输出报告同时携带两个马达和灯条。在 Bluetooth 上,报告被移位,并以手柄在动作之前会检查的校验和结束,因此为有线准备的报告在无线上会被忽略。启动器的输入页标出它找到的手柄,并可以运行一秒测试,转动两个马达并扫过灯条。设备以共享方式打开,并在主机允许的地方用于写入。
手柄优先于 XInput。XInput 仍然是兼容 Xbox 的控制器,以及任何把自己呈现成这种控制器的设备的路径。启动器保存选择、控制器索引和键盘绑定,并把它们作为环境变量传给 game-run。
键盘与脚本化输入
WASD 是左摇杆。Alt 加方向键是右摇杆。配置可以是控制器、键盘,或两者。PS5_INPUT_MODE=scripted 保留启动验证用的按键脉冲,并忽略物理设备,因此另一个窗口里的按键不会改变被测量的场景。
在 HLE 内部,主手柄可以用 scePadOpen 打开,或用 scePadGetHandle 取得。第二条路径对那些在轮询之前从不打开已登录用户控制器的游戏是要紧的。这是那个句柄的主机侧。
已经实现的部分
- 经 USB 和 Bluetooth HID 读取 DualSense、DualSense Edge 和 DualShock 4。
- 保留最新报告的轮询、马达、灯条,以及 Bluetooth 校验和。
- 供兼容 Xbox 的手柄使用的 XInput,以及可重新映射的键盘配置。
- 测量期间忽略物理设备的脚本化输入模式。
尚未实现的部分
- 触摸板、自适应扳机和运动传感器并不是完整的 DualSense 功能集。
- 来自影片音轨的触觉不会被送到马达。
- HID 路径是启动器和 game-run 所使用的 Windows 主机路径。
相关机制
这些页面说明什么