Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stuttery/stuck input #52

Open
Lana-chan opened this issue Feb 4, 2024 · 1 comment
Open

stuttery/stuck input #52

Lana-chan opened this issue Feb 4, 2024 · 1 comment

Comments

@Lana-chan
Copy link

Lana-chan commented Feb 4, 2024

using Xb2Input v1.5c and ViGEmBus 1.22.0 i have a Microsoft Xbox Controller v2 (US) [045E:0289] working as intended, however, in Steam controller test and in games (with or without Steam Input enabled) i have noticeable input delays and very often button releases do not get updated until i press either a different button or touch one of the analog sticks. i cannot tell if this is an issue with Xb2Input or ViGEmBus. please let me know if there's any more information i can provide

EDIT: this still happens even using a fork with increased poll rate

@Lana-chan
Copy link
Author

Lana-chan commented Feb 5, 2024

this has to do with the blocking nature of the polling in https://github.com/emoose/Xb2XInput/blob/master/Xb2XInput/XboxController.cpp#L506 with libusb_interrupt_transfer. between polls (even with a very high polling rate) packets from the controller would get lost and button releases wouldn't be reflected on the vigembus.

hacking away at making this thread use libusb_fill_interrupt_transfer instead and use a poll of 1ms seems to have largely fixed these issues. ideally no polling time would be used and instead a callback to update the vigembus is needed, but that would take a large restructuring of the entire program. for now i can play yakuza on an og xbox controller 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant