[译]GP2040-CE FAQ
GP2040-CE 是一个基于树莓派(或其他) RP 2040 微处理器的开源游戏控制器固件项目,支持多种输入模式,适配多个平台。
本文译自 GP2040-CE 项目官网,FAQ 页面。
常见问题
我应该使用哪种输入模式?
这取决于您使用的平台:
- 使用
XInput Mode
作为 PC 游戏和第三方主机适配的首选模式 - 在 PS4 或 PS5 中运行 PS4 游戏时,使用
PS4 Mode
- 在 PS3 或 PS4 中使用传统模式时,使用
PS3 Mode
- 在任天堂 Switch 上使用
Switch Mode
- 在 MAME cabinets 或是 PC 音游等场景使用
Keyboard Mode
如果您配置了 USB 主机端口、启用了直通功能以及适当的验证设备,则可以在以下情况下使用 GP2040-CE 控制器。
- 在支持 categorized 控制器(例如街机摇杆、赛车方向盘、飞行模拟操纵杆等)的 PS5 系统上的 PS5 游戏上使用
PS4 Input Mode
- 在 Xbox One、Xbox Series X 和 Xbox Series S 上使用
Xbox One Input Mode
如果您使用的是经典或迷你主机,则还有其他 USB 输入模式可与这些模拟主机一起使用。
- Sega Genesis/MegaDrive Mini
- NEOGEO Mini
- PC Engine/Turbografx 16 Mini
- EGRET II Mini
- ASTROCITY Mini
- Playstation Classic
GP2040-CE 是否原生支持 PS5,PS4 或 Xbox Series 主机?
这些主机实现了一些安全措施用来阻止未经授权的控制器接入,破解或绕过这些措施的过程可能涉及到一些法律问题。如果找到用户友好且完全合法的实现方法,例如 PS4 Input Mode
的实现,将来会支持这些主机。
目前通过直通身份验证支持 PS5、Xbox One 和 Xbox Series 主机
- PS5 目前仅支持使用直通身份验证;请参阅
PS5 Input Mode
。 - Xbox One 和 Xbox Series 主机仅支持使用直通身份验证;请参阅
Xbox One Input Mode
。
我能在一个设备上使用多个 GP2040-CE 控制器吗?
是的!每个 GP2040-CE 板都被视为一个单独的控制器。但您需要注意,确保同一时间只运行了一个 Web 配置页面。
如果您需要在街机中安装基于 GP2040-CE 的控制板,请查看 Player Number add-on 用来强制指定每个玩家的编号。
GP2040-CE 的输入延迟真的低于 1ms?
是的!如果您的平台支持 1000 Hz USB 轮询,输入延迟将小于 1 毫秒。GP2040-CE 在所有模式下默认配置为 1000 Hz/1 ms 轮询,但某些系统会覆盖或忽略控制器请求的轮询速率。1000 Hz 轮询率已确认适用于 PC 和 MiSTer。即使您的平台不支持高速 USB 轮询,GP2040-CE 仍会以目标系统允许的最大速度读取和处理您的输入。
RGB LED、玩家 LED 和 OLED 显示屏等附加功能是否会影响性能?
完全不会!Pico 的 RP2040 处理器有两个内核,GP2040-CE 将其中一个核心专门用于读取、处理和发送玩家输入,所有辅助功能(例如 LED 和显示器)都在辅助核心上运行。无论集成了多少功能,GP2040-CE 都不会引入额外的输入延迟。
为什么按键会使用 B3,A1,S2 这种奇怪的标签?
GP2040-CE 使用通用系统来处理按钮输入,类似于带有一些额外按钮的传统 Play Station 控制器布局。
- 4 方向键 (B1-B4)
- 4 肩键 (L1,L2,R1,R2)
- 选择和启动(S1,S2)摇杆按下(L3,R3)
- 两个辅助键(A1,A2)用于引导、PS键、触摸屏、Home 键或者截图键等
GP2040-CE 文档和 Web 配置器都提供了一个下拉菜单,用于将按钮标签更改为更熟悉的控制器布局。您可以参考 GP2040-CE 说明书 上的按键映射表。
技术问题
内建的 Web 配置页面是什么魔术?
这里没有什么魔法,只是一些很酷的库一起工作:
- 使用 React 和 Bootstrap 的单页应用程序嵌入在 GP2040-CE 固件中
- TinyUSB 库通过 RNDIS 提供虚拟网络连接
- lwIP 库提供了一个 HTTP 服务器,为嵌入式 React 应用程序和 Web 配置 API 提供服务
- ArduinoJson 库用于Web API请求的序列化和反序列化