5个版本

0.2.1 2019年8月8日
0.2.0 2019年8月7日
0.1.3 2019年4月9日
0.0.0 2018年11月20日

#124Windows API

每月 22 次下载

Apache-2.0

54KB
1.5K SLoC

dhc

CircleCI Docs

dhc 是一个 DirectInput/XInput 包装 DLL,为那些没有自动执行热插拔的游戏实现了控制器热插拔。它假装始终同时连接了固定数量的PS4控制器,并将实际控制器的输入映射到虚拟控制器上。

安装

下载 最新版本,并将适当的DLL放置在与您要使用dhc的游戏相同的文件夹中(有关使用架构的表格,请参阅 维基)。

请注意,游戏二进制文件可能不在游戏目录的最高层:如果您在启动游戏后看不到dhc.log或dhc.toml文件被创建,您可能选择了错误的文件。您可以在任务管理器中右键单击游戏并使用属性查找实际二进制文件的位置。

兼容性

有关测试过的游戏和控制器表格,请参阅 维基

配置

首次启动时,dhc将在与 dhc.dll 相同的目录中创建一个 dhc.toml 文件,您可以使用文本编辑器编辑它来更改设置。

编译

dhc是用C++和Rust实现的,因此您需要两种语言的完整工具链。只有从Linux进行的交叉编译已经过测试,因此如果您想在Windows主机上构建,您可能需要自己解决,或者使用WSL或Linux虚拟机。

安装依赖项

sudo apt-get install ninja-build
sudo apt-get install python3-pip && pip3 install meson
sudo apt-get install mingw-w64

# Install rust
curl https://sh.rustup.rs -sSf | sh -s -- -y
# Restart your shell or source your profile to make sure rustup and cargo are on your $PATH

# Add rust's cross compilation targets
rustup target add i686-pc-windows-gnu x86_64-pc-windows-gnu

# Install cbindgen
cargo install cbindgen

然后构建

git clone https://github.com/jmgao/dhc.git
cd dhc
./build/generate.sh
ninja -C build/i686 install && ninja -C build/x86_64 install

构建的DLL将被复制到 dist/{i686, x86_64}

已知问题

  • XInput控制器仅将触发器作为数字按钮转发,而不是模拟值。

  • Steam的控制器模拟会在dhc之上,这将导致控制器显示多次。为了避免这种情况,请在没有控制器连接的情况下启动游戏,或者禁用Steam的控制器支持(查看 > 设置 > 控制器 > 通用控制器设置 > 取消选中所有选项)。

报告错误

在此处提交错误(点击此处),请附带您的dhc.log文件。注意,在发现崩溃后不要重启游戏,因为日志文件在每次启动时都会被删除并重新创建。

依赖项

~3–12MB
~126K SLoC