eniva / MisSTer_Guides

A collection of known tips and tricks to get stuff working or take advantage of advanced settings
26 stars 0 forks source link

Why DS4 USB is tagged as [4ms] ? #2

Open James-F2 opened 4 years ago

James-F2 commented 4 years ago

I used usbhid.jspoll=1 for all my USB measurements.

eniva commented 4 years ago

DualShock 4 USB seems to be affected by a hardcoded maximum polling rate (64ms) that's not present in the HID USB driver, so before I push the DualShock4 support, looking at how relatively slow they were in the graph compared to other known data, I made an educational guess that they were currently unaffected by jspoll and being polled at 4ms.

Since it's a quite popular controller, I didn't want to assume they were 1ms data until the support is there from an updated driver I'm working on, while still making the data available for anyone to see in the meantime.

Since you are the tester, if you're still sure they were being polled at 1ms on USB, I'll change that now. It's no problem!

Otherwise, I'll keep this issue open until another test is done with the new driver. I'm currently trying to push it within a couple of days.

James-F2 commented 4 years ago

Actually, I'm not quite sure if the DS4 respects the jspoll setting over BT, but interval did change to 1 over USB. Here is what dmseg reports on mister:

DS4 USB: DS4_USB

DS4 BT: DS4_BT

eniva commented 4 years ago

Hello, sorry for not making the release before the Eve. Busy holidays.

As I was working on the code, I found out that USB wired connection should be polling at jspoll. You are probably right about this.

Here's a build that is designed to support DualShock 4 Bluetooth: new build

My next goal is to support the remaining Bluetooth controllers and it may use new variable for it ("bpoll"). The Bluetooth connection for DualShock 4 uses "jspoll" for now.

This is not guaranteed to work. I was waiting on a few testers to confirm they were working, but some of them are still on holidays. It should however, output a debugging message for polling changes. Let me know how this goes! :)

James-F2 commented 4 years ago

The biggest MiSTer community is the Classic Gaming Discord server, with plenty of users who are willing to test and help, we want you back there. btw, this is valuable information here, why it is not part of the official wiki?

James-F2 commented 4 years ago

Results are identical to the regular official build, so it didn't change anything.

DS4 BT Eniva

eniva commented 4 years ago

Did you see any debugging messages confirming the interval was changed?

James-F2 commented 4 years ago

See anything abnormal? Untitled

DS4.BT: bt_poll->interval=4, interval=4

So it's not quite working yet.

eniva commented 4 years ago

DHEo1za

This is where the interval is supposed to change to 1. If you have jspoll set to 1, then the code has a bug somewhere. I'll go take a look and get back to you. 😄

James-F2 commented 4 years ago

Yep. I didn't change the u-boot.txt for a month now. v=loglevel=4 usbhid.jspoll=1 xpad.cpoll=1

All my measurements are with this setting,, hence opening this "issue". DS4 USB is most certainly made with usbhid.jspoll=1, so the [4ms] note on the DS4 USB measurement is incorrect.

eniva commented 4 years ago

Yeah the USB [4ms] labeling is wrong. I just wanted to take one last look at the source before I change it because it was a lot slower than I expected compared to the old data. I fixed that now. Thanks.

I'll keep this open until I fix DS4.BT polling.

eniva commented 4 years ago

I just found out that polling is not being applied due to a regression. My build has some groundwork done to support 1ms polling <-> regular polling change on the fly without having to reboot MiSTer, so something went wrong there with DualShock 4 Bluetooth support.

I'll fix this soon and let you know here.

eniva commented 4 years ago

Here is the new build

James-F2 commented 4 years ago

1 2

eniva commented 4 years ago

Wow. Thanks for testing! 😱 That is ... so wrong in so many levels. I'll take a look.

Some testers also had this issue while some didn't. I think people are mixing builds so it's hard to tell without proper versioning. I may have to work on that, but with the holidays everybody is quite not on the same page.

I'll work on the new build next. I have a few areas I want to take a look at.