将 XInput 调用转换为 MAC OS X 上的 DirectInput 调用(从 PS3 模拟 x360 控制器)
Posted
技术标签:
【中文标题】将 XInput 调用转换为 MAC OS X 上的 DirectInput 调用(从 PS3 模拟 x360 控制器)【英文标题】:Translates the XInput calls to DirectInput calls on MAC OS X (Emulate x360 controller from PS3 one) 【发布时间】:2013-12-25 18:53:06 【问题描述】:steam 中有很多游戏可以使用 x360 控制器,但无法正确映射到 PS3 DS3 控制器...
MotionInJoy 使用“模拟 360 控制器”进行清理,但它仅适用于 PC。 还有另一个仅限 PC 的项目:x360ce:https://code.google.com/p/x360ce/
问题来了:mac os x 有什么解决方案吗? 如果不是,为什么!?
【问题讨论】:
控制器主要只用于输出。也就是说,它们主要发送信号:我按下了这个按钮,把这个轴推了这么多,等等。所以我认为(不确定)控制器正在发送 DirectInput,大多数 Steam 游戏都希望接收 XInput。所有这一切都可以改写为“将 DI 调用转换为 XI”? 【参考方案1】:在 OSX 上没有读取 DirectInput 并模拟 XInput 的解决方案。
我看了一下 x360ce。它使用SharpDX 在 DirectInput 和 Xinput API 上进行通信,因此对于这样的应用程序来说这是一个很好的开始。问题是它是用 C# 编写的。这就是为什么在 OSX 中没有解决方案的原因——与 DI/XI 接口的最佳库是(自然地)用 Microsoft 语言编写的。
我认为我们需要 Mono 之类的东西才能在 mac 上运行 .cs,我不确定。
为 DI/XI 编写本机接口或在 Mac 上运行 SharpDX 并不是一个小项目,但它会很有教育意义。
【讨论】:
以上是关于将 XInput 调用转换为 MAC OS X 上的 DirectInput 调用(从 PS3 模拟 x360 控制器)的主要内容,如果未能解决你的问题,请参考以下文章