b0c82333d2
audit / cargo-audit (push) Successful in 17s
apple / swift (push) Successful in 57s
android / android (push) Successful in 4m36s
ci / web (push) Successful in 34s
ci / docs-site (push) Successful in 52s
release / apple (push) Successful in 7m31s
ci / rust (push) Successful in 8m37s
ci / bench (push) Successful in 4m39s
decky / build-publish (push) Successful in 11s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 7s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 4s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 4s
deb / build-publish (push) Successful in 2m35s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 5s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 2m18s
flatpak / build-publish (push) Successful in 4m0s
rpm / build-publish (bazzite, punktfunk-fedora-rpm) (push) Successful in 8m31s
docker / deploy-docs (push) Successful in 19s
rpm / build-publish (fedora-44, punktfunk-fedora44-rpm) (push) Successful in 8m22s
windows-host / package (push) Successful in 2m56s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 1m13s
windows-msix / package (x64, C:\Users\Public\ffmpeg, x86_64-pc-windows-msvc, C:\t) (push) Successful in 1m15s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 59s
windows / build (x86_64-pc-windows-msvc) (push) Successful in 1m3s
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>
65 lines
1.6 KiB
Plaintext
65 lines
1.6 KiB
Plaintext
;/*++
|
|
; punktfunk virtual Xbox 360 XUSB companion — a non-HID UMDF2 driver that registers the XUSB
|
|
; device-interface GUID {EC87F1E3-...} and answers the buffered XInput IOCTLs, so classic
|
|
; XInputGetState() reads the pad without a kernel bus driver (the HIDMaestro approach). System class,
|
|
; hosted by the in-box WUDFRd reflector. Created per-session by the host via SwDeviceCreate
|
|
; (hardware id `pf_xusb`); `root\pf_xusb` is the devgen/devcon test id.
|
|
;--*/
|
|
[Version]
|
|
Signature = "$WINDOWS NT$"
|
|
Class = System
|
|
ClassGuid = {4D36E97D-E325-11CE-BFC1-08002BE10318}
|
|
Provider = %ProviderString%
|
|
CatalogFile = pf_xusb.cat
|
|
PnpLockdown = 1
|
|
|
|
[DestinationDirs]
|
|
DefaultDestDir = 13
|
|
|
|
[SourceDisksNames]
|
|
1 = %DiskId1%,,,""
|
|
|
|
[SourceDisksFiles]
|
|
pf_xusb.dll = 1,,
|
|
|
|
[Manufacturer]
|
|
%StdMfg%=Standard, NT$ARCH$.10.0...22000
|
|
|
|
[Standard.NT$ARCH$.10.0...22000]
|
|
%DeviceDesc%=pfXusb, root\pf_xusb, pf_xusb
|
|
|
|
[pfXusb.NT]
|
|
CopyFiles=Drivers_Dir
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT
|
|
|
|
[Drivers_Dir]
|
|
pf_xusb.dll
|
|
|
|
[pfXusb.NT.HW]
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT.HW
|
|
|
|
[pfXusb.NT.Services]
|
|
Include=WUDFRD.inf
|
|
Needs=WUDFRD.NT.Services
|
|
|
|
[pfXusb.NT.Wdf]
|
|
UmdfService=pf_xusb, pfXusb_Install
|
|
UmdfServiceOrder=pf_xusb
|
|
UmdfKernelModeClientPolicy=AllowKernelModeClients
|
|
UmdfFileObjectPolicy=AllowNullAndUnknownFileObjects
|
|
UmdfMethodNeitherAction=Copy
|
|
UmdfFsContextUsePolicy=CanUseFsContext2
|
|
UmdfHostProcessSharing=ProcessSharingDisabled
|
|
|
|
[pfXusb_Install]
|
|
UmdfLibraryVersion=$UMDFVERSION$
|
|
ServiceBinary=%13%\pf_xusb.dll
|
|
|
|
[Strings]
|
|
ProviderString = "punktfunk"
|
|
StdMfg = "(Standard system devices)"
|
|
DiskId1 = "punktfunk XUSB Installation Disk"
|
|
DeviceDesc = "punktfunk Virtual Xbox 360 (XUSB)"
|