8b6b4a32fa
Windows virtual gamepads now have zero external dependencies - ViGEmBus is removed. - DualShock 4: Windows UMDF backend (inject/dualshock4_windows.rs + dualshock4_proto.rs), reusing the DualSense SwDeviceCreate game-detection identity fix. The one UMDF driver serves the DS5 or DS4 identity/descriptor/features/strings per a device_type byte the host stamps into shared memory. Driver also gains IOCTL_HID_GET_STRING and a 41-byte calibration feature. - Xbox 360: a new UMDF2 XUSB companion driver (packaging/windows/xusb-driver/) that registers GUID_DEVINTERFACE_XUSB and answers the buffered XInput IOCTLs from a shared section, so classic XInputGetState/SetState work with no kernel bus driver. inject/gamepad_windows.rs is rewritten to drive it and the vigem-client dependency is removed. Xbox One folds to the 360 XInput path. - Installer: vendor + pnputil-install the three UMDF drivers (packaging/windows/gamepad-drivers/ + install-gamepad-drivers.ps1, wired into pack-host-installer.ps1 + punktfunk-host.iss). - Multi-pad: the host stamps each pad index into the device Location (pszDeviceLocation); the driver reads it via WdfDeviceAllocAndQueryProperty to map its own *-shm-<index>, with UmdfHostProcessSharing=ProcessSharingDisabled giving each pad its own host (per-pad statics). Validated live on the Windows host: Cyberpunk native DualSense detection, DS4 identity + descriptor, XInputGetState + rumble round-trip, two pads -> two distinct XInput slots, and a full installer build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
697 B
TOML
36 lines
697 B
TOML
[package]
|
|
edition = "2024"
|
|
name = "pf-xusb"
|
|
version = "0.1.0"
|
|
publish = false
|
|
license = "MIT OR Apache-2.0"
|
|
description = "punktfunk virtual Xbox 360 XUSB companion (UMDF2 — classic XInput)"
|
|
|
|
[package.metadata.wdk.driver-model]
|
|
driver-type = "UMDF"
|
|
target-umdf-version-minor = 31
|
|
umdf-version-major = 2
|
|
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[build-dependencies]
|
|
wdk-build.path = "../../crates/wdk-build"
|
|
|
|
[dependencies]
|
|
wdk.path = "../../crates/wdk"
|
|
wdk-sys.path = "../../crates/wdk-sys"
|
|
|
|
[features]
|
|
default = []
|
|
nightly = ["wdk-sys/nightly", "wdk/nightly"]
|
|
|
|
[profile.dev]
|
|
lto = true
|
|
|
|
[profile.release]
|
|
lto = true
|
|
|
|
# Standalone package (not part of the windows-drivers-rs root workspace).
|
|
[workspace]
|