Bluetooth Filter Driver for DS3-compatibility - research notes

  • @nefarius said in Bluetooth Filter Driver for DS3-compatibility - research notes:

    • Profile driver denies connection with CONNECT_RSP_RESULT_PSM_NEG and instructs filter to disable itself for like 10 seconds
    • User presses PS button on DS4 to retry connection
    • Connection now successful due to filter being temporarily disabled
    • Timer enables filter again on its own to minimize required user interaction

    I haven't found a way to reject a connection attempt without the DS4 giving up so the only remaining inconvenience would be the user having to connect the controller twice if the filter is active. Other than that I think we thought off every possibility to minimize the negative impact on user experience.

    What do you think?

    Great job! Thank you for the efforts you put in this along with the team.

    I'm not so into technical stuff, but I'll try my best here.

    The whole "reconnect" concept reminds of InputMapper 1.6. On the other hand, DS4Windows 1.7.5+ reestablishes the connection without the user initiating it manually. Just a reminder, both of these programs use ViGEm drivers.

    How does one (DS4W) achieves it while the other doesn't?

  • @AnyHoLiC said in Bluetooth Filter Driver for DS3-compatibility - research notes:

    How does one (DS4W) achieves it while the other doesn't?

    They don't. They don't/can't interfere with the Bluetooth connection process as that's completely abstracted away from them. They can send regular disconnect requests which works fine as long as the connection sequence isn't manipulated and the DS4 remains in "PC mode". The DS4 is a bit of a bastard child in this regards; even when once successfully paired to a Windows machine, once it has been turned off and turned on again it sneakily tries to connect in "PS4 mode" (a.k.a. directly establish HID Control and HID Interrupt L2CAP channels) which usually gets immediately rejected by the Windows Bluetooth stack and it tries again in "PC mode". Now with my filter patch active, the connection is - unexpectedly - routed through and the side effect I described happens. So this listing is my proposed solution/workaround until a better solution surfaces.


  • @nefarius Thanks for the explanation.

    So far the only issues I have while connecting DS4 to Windows (Windows 10, specifically) are the most common ones, while using IM and DS4W, which are:

    1. It takes longer to establish a connection compared to connecting to a PS4.
    2. Latency.
    3. Using it with Uplay (Ubisoft's) is basically unusable, which continuously switches back and forth between X360 and DS4 modes.

    I have yet to install ViGEm directly using PowerShell without using any extra programs.

    You don't have to reply to this.

    Thanks again for your insight.

  • @AnyHoLiC said in Bluetooth Filter Driver for DS3-compatibility - research notes:

    I have yet to install ViGEm directly using PowerShell without using any extra programs.

    PowerShell ain't no more mate 😛 see the news

  • @nefarius Funny, i have to connect my ds4 to scptoolkit twice too, to get it recognized! I can't wait to try it, i need autofire for bloodstained and joytokey auto repeat doesn't work...However twice or not, your work is amazing!!!

  • Survey: Desired Windows OS compatibility

    Ladies and gents, it's getting serious! 😅 I need community feedback on where to go from here with the singing fun for the production release. I've crafted a poll with the first answer being the most convenient and fast but most exclusive route and the last one being the most annoying but also most inclusive. Hop on, your voice matters! 🎉

    👉 BthPS3 - Desired Windows OS compatibility 👈


  • Quick intermediate survey result summary after being up slightly over a week:


    Well, lots of Windows 10 fans it seems 😄

    By the way, another advantage of going with the "ditch legacy OS support completely" option will be: I can develop the function driver (HID-miniport driver, for DI/Unity/PCSX2/... compatibility, pressure exposure etc.) with the User-Mode Driver Framework which would have loads of advantages (dev speed, debugging, stability, quick release cycles, ...) so that would be another step up in motivation for me.

    More news to come!

  • Speaking of which, I was curious about how much information the filter driver would support for the DualShock 3. I was thinking that because it has basically "native" support when patched, everything would work, but do you have to program functions in so that pressure sensitivity and other DS3 related controller functions passed that information along to Windows?

  • @anontsuki that's the job of the function driver which still has to be written, but that's "easy" compared to what was achieved 'till now. So in the ultimate end result Shibari as a proxy application won't be necessary anymore at all.

  • Very cool. I look forward to the entire thing being complete, whenever that time comes =).

  • When the first release is scheduled ? 🙂

  • @Luke76bg am still unsure if I should do a "requires Shibari" release or go all in. The latter would definitely take even more time and I gotta balance it with my current workload. Other than that, maybe September?

  • @nefarius Shibari was crashing when disconnecting a controller by bluetooth or when an connected controller by bluetooth was connected then by USB, I remember it spawned 2 controllers in this situation or something like that.
    Unless these issues can be really easily fixed in a day or two, I'd vote for you to focus on the release with no companion app, even if it takes longer.
    Good luck, Nefarius, and have a nice day!

  • @kirian everything that's a pure Shibari issue can be fixed with ease. I just don't put much effort into hardening it because of time budget. Drivers need to be rock solid, that's number one.

  • @nefarius Thanks for the answer Nefarious, i'm sure it will be an amazing piece of software! I can't wait! ^^

  • @nefarius i can't wait too. 🙂

    For the release schedule you said "early may" u.u (i'm here following your news since march X'D)

    But i'd always think that it's better to wait more for a better "product", thanks for your work :).

  • @epikvigem there's a few topics who threw off the schedule:

    • Windows 10 1903 changes apparently breaking kernel drivers left and right. Did quite a bit of research on that to break through all the misinformation on the web.
    • WHQL lab advances. This took the most time, setting up the lab and running a lot of tests. Tedious and costly.
    • Working on paid commissions. Ever since I've started the business I'm also doing contracted work. That wins ofc. over this hobby-ish fun topic as this stuff doesn't pay the bills as long as the Patreon and other sources of income are low 😉 That's just how life is. More funds, more speed. Simple formula.


  • since airbender doesnt work, it's safe to uninstall it right?

  • @kempol sure! Can be removed anytime!

  • Posted on PCSX2 forums

    Related thread, for the record. Might or might not go somewhere. Time will tell.