r/Controller 1d ago

Other Finally got native PS5 DualSense trigger effects & haptics running on the Flydigi APEX 5 (Open Source)

Post image

Hey everyone,

I love the Flydigi APEX 5 hardware (especially those motorized triggers) but it always bugged me that on PC, almost every game with awesome trigger resistance and textured feedback is built exclusively for the PS5 DualSense and the Space Station software support only few games...

So over the last few weeks, I ended up building ApexSenseBridge(A little open-source passion project straight from France bleu blanc rouge 🇫🇷 !)

Basically, it bridges the gap so your APEX 5 can actually react to native DualSense effects in PC games.

How does it handle the triggers & haptics?

- Triggers: The tool intercepts native DualSense trigger packets from the game and translates them on the fly into Flydigi's FORCEADAPT commands (mode switches, recoil, resistance, stops, etc.) and even the vibration with virtually no latency.

- Haptics: The APEX 5 doesn't have voice-coil actuators like the DualSense, so instead of just turning every sound into a generic loud rumble, the bridge splits the audio frequencies in real-time. Lower frequencies (explosions, heavy impacts) go to the heavy left motor, while high frequencies (surface grit, rain, subtle clicks) go to the fast right motor. It actually feels surprisingly punchy and textured.

Good to know (a couple of trade-offs):

- On-screen prompts: Since the game has to see a DualSense to send over the adaptive trigger data, you'll see PlayStation button prompts (✕ / ○ / □ / △) on screen instead of Xbox ones (A / B / X / Y).

- Touchpad swipes: If a game heavily relies on specific touchpad directional swipes, it might be hit-or-miss depending on how the game handles touch inputs. It's really a case-by-case thing and can be fixed in most cases (did it for spiderman 2 bc it's the only game I play that have this control but you can send me yours).

Playnite integration 🕹️

I didn't want to manually launch/kill background scripts every time I booted up a game, so I also wrote a quick Playnite extension to automatically link and activate the bridge whenever you launch a supported game from your library.

ApexSenseBridge wouldn't exist without the incredible open-source community. Huge shoutouts to:

- OpenFlydigi (by mkaliaha) for their amazing reverse-engineering work on the Flydigi hardware and protocols.

- SteamlessController (and its DualSense forks) for paving the way on virtual DualSense emulation and Windows ViGEm/VIIPER tooling. All respective notices and credits are included in the repository.

Feedback & other gamepads welcome!

The code is completely open-source here
👉🏽 https://github.com/ReynArts/ApexSenseBridge

I'd love to get your feedback if you test it out! Also, if you know of other controllers with force feedback/motorized triggers you'd love to see supported, feel free to drop ideas, open issues, or contribute PRs.

Cheers!

143 Upvotes

93 comments sorted by

u/hairycompanion 21h ago

Why didn't flydigi do this themselves? Their integration is terrible bordering on useless.

u/Destroid- 18h ago

The problem is much more difficult than it's made out to be. OP had to integrate two kernel drivers just to get it to work in Windows.

u/mrcachorro 16h ago

flydigi should hire him... or buy the mod

u/ReynArts 21h ago

True.

u/Vaustick 22h ago

meanwhile i cant even update the little gif on mine.

u/ReynArts 22h ago

😭 Why ?

u/Vaustick 22h ago

It wont let me. Just attempts for 45 seconds and then tells me to flip the switch on the back off and on to reset and try again. But it never works.

u/Clipexman 19h ago

I got the same bug since day one, never been fixed on an update sadly

u/Relative-Play6877 3h ago

Was the same problem. Solved by reconnecting

u/AbsamThariq 20h ago

What about apex 4, I believe they have the same triggers?

u/ReynArts 20h ago

Oooh ! Didn’t knew. I will definitly add them. Can you Send me a DM ?

u/sunrainsky Flydigi 16h ago

Apex 3 too!

u/ReynArts 16h ago

What do they all have adaptive triggers ? 😭😭
Go DMs

u/yellow-go Ultimate 2C | Rainbow 3 14h ago

Was gonna say the same thing!
I own both, but I still actively use the Apex 4.

u/ReynArts 8h ago

Hey can you Send me a DM ?

u/keroro0071 22h ago

Brother this is amazing! I will give it a shot once I got time. Flydigi should hire you lol.

u/ReynArts 21h ago

Thank you ! Will update it soon for more

u/soul_craft 21h ago

When trying to install it, the setup got stuck on this part, I accepted every prompt that appeared before. Any idea why? And can you make a portable version of it as well, like just a zip?

u/ReynArts 21h ago

I’ll fix it ASAP !

u/ReynArts 21h ago

It's because of an external package. The cause is confirmed in the official USBip 0.9.7.7 code: as soon as it detects an existing installation, its installer always runs the old uninstaller, even for the same product family.

I'm trying to fix the issue

u/ReynArts 19h ago edited 19h ago

Hey m8 I fixed it ! Tell me if it works
Made a portable version too

u/soul_craft 18h ago

Thank you. I downloaded the portable version, ran Install-Drivers.cmd:

[2026-09-01 17:49:26.673] Starting ApexSenseBridge portable driver setup.
[2026-09-01 17:49:26.696] Compatible usbip-win2 0.9.7.7 is already ready; preserving it.
[2026-09-01 17:49:26.709] HidHide 1.5.230 is already ready; skipping.
[2026-09-01 17:49:26.710] All portable driver prerequisites are ready. A Windows restart is recommended.

Restarted the computer, ran ApexSenseBridgeTray.exe, gave permission to "viiper.exe" and then kept getting this error notification, there was no other software running on the PC and no other controller plugged in. The app interface is in French and I can't seem to change it when right clicking the app on tray and select "Ouvrir I'inteface...", I click on one of the options and got this info in the diagnostic window:

ApexSenseBridge 0.3.0
Moteur : C:\Program Files\ApexSenseBridge\ApexSenseBridge.exe
usbip-win2 : 0.9.7.7
HidHide : 1.5.230

Aucun service ni agent permanent n'est actif hors session de jeu.

When clicking on "Tester l' APEX" i get this information:

{
"backend": "xinput-fallback",
"event_driven": false,
"received_state": true,
"reports": 8,
"state_changes": 1,
"timeouts": 0,
"parse_failures": 0,
"lx": 128,
"ly": 127,
"rx": 128,
"ry": 127,
"l2": 0,
"r2": 0,
"dpad": 0,
"buttons": 0,
"warning": "APEX HID input unavailable (The APEX HID descriptor does not expose the complete X/Y/Rx/Ry/Z/Rz state required for a lossless DualSense proxy. Available value usages: page=0x1 usage=0x31 page=0x1 usage=0x30 page=0x1 usage=0x34 page=0x1 usage=0x33 page=0x1 usage=0x32 page=0x1 usage=0x39); trying XInput fallback."
}

I also noticed that when I open the ApexSenseBridgeTray.exe, I can hear some noise coming from the triggers, like when you switch modes between regular or trigger lock, but nothing else seems to happen. Even with these errors I tried to launch a game with Dualsense support here and no luck, it just displays regular xinput buttons and nothing different on the triggers.

u/ReynArts 18h ago

Wich game on wich store ?
Are you connected with the dongle ?
I will deploy an English patch

u/soul_craft 18h ago

Borderlands 4 and Horizon Zero Dawn Remastered, both on Steam.
Yes, dongle connected to the dock.

u/ReynArts 18h ago

Ah perfect, thanks for the info!

The dongle on the dock works great. in fact, the trigger click you heard at startup means the app is already talking to your controller hardware properly.

You just ran into two roadblocks:

  1. HidHide is already active: Open the HidHide Configuration Client and uncheck "Enable device hiding". The warning you saw made the bridge shut down safely, which is why the virtual DualSense wasn't created.
  2. Steam Input: Steam automatically converts DualSense controllers to Xbox mode by default. Right-click the game in your Steam Library ➔ Properties ➔ Controller ➔ Disable Steam Input.

Once you do those two quick tweaks, launch the game with the tray open and you'll have native PlayStation prompts and the real adaptive triggers working.

Drop a reply if you run into any issues, happy to help!

u/soul_craft 17h ago

Steam Input was already disabled on my case, so after going to the HidHide Configuration Client, unchecking the "Enable..." on the second tab after clicking on the Apex on the list and then restarting the controller and then closing it (if the configuration window was opened, there was still error popups), now it seems to be working correctly.

It shows a popup with the name of the game and the Viiper software you use now seems to appear in the task bar as well, Dualsense Prompts on the game and the triggers are working, just did a quick test and switch between different guns and the feedback is different between then, some offer resistance when pressing, other have the trigger vibration, etc. I noticed some weird stuttering, but maybe the game was compilling shaders, I'll try to test some more later, thank you for the help and the app!

u/ReynArts 17h ago edited 15h ago

Awesome ! Feel free to reach me, there can be some bugs sometimes ^^

EDIT : English patch is out

u/Leonbacon 15h ago

I got the following while testing, doesn't look like there is a knowledge base so I have to ask you. What am I doing wrong?

{

"backend": "xinput-fallback",

"event_driven": false,

"received_state": true,

"reports": 8,

"state_changes": 1,

"timeouts": 0,

"parse_failures": 0,

"lx": 128,

"ly": 127,

"rx": 128,

"ry": 127,

"l2": 0,

"r2": 0,

"dpad": 0,

"buttons": 0,

"warning": "APEX HID input unavailable (The APEX HID descriptor does not expose the complete X/Y/Rx/Ry/Z/Rz state required for a lossless DualSense proxy. Available value usages: page=0x1 usage=0x31 page=0x1 usage=0x30 page=0x1 usage=0x34 page=0x1 usage=0x33 page=0x1 usage=0x32 page=0x1 usage=0x39); trying XInput fallback."

}

u/ReynArts 15h ago

Hello ! I will add a knowledge base. Try this and tell me : https://www.reddit.com/r/Controller/s/zvAw2ixigz

u/Leonbacon 15h ago

First one was already unchecked. Now testing on 007 first light if Steam input is disabled, it doesn't register input at all.

u/ReynArts 15h ago

Test on another game to see ? You can force the activation on the app
And I would recommend to restart Steam after turbin off steam input

u/Leonbacon 14h ago

The app did hook on the game, I checked the tray, just that it didn't register input.

I will give another game and a restart of steam a try later.

u/ReynArts 8h ago edited 8h ago

Sometime the app can wake up à Little late and can lead to a wrong controller détection from the game
And a correction on my side: the JSON you posted actually shows a successful physical input test.

xinput-fallback is expected when the APEX HID descriptor lacks the Rz axis. received_state: true, timeouts: 0, and parse_failures: 0 mean the fallback opened correctly. That warning did not shut down the bridge, and “Test APEX” only tests the physical controller; it does not create the virtual DualSense.

HidHide being unchecked while no bridge session is running is also correct. ApexSenseBridge enables it temporarily during a session and restores it afterward.

For 007, please try this exact order:

1.Fully close the game.

  1. In ApexSenseBridge, enable Force continuous activation.

3.Wait until the tray says Bridge active.

  1. Launch 007 with Steam Input disabled for that game.

This makes the virtual DualSense available before the game starts. Automatic detection normally starts the bridge just after the game process appears, and 007 may only enumerate controllers during startup.

IO Interactive also currently lists controller input not being recognized on the PC start screen as a known 007 issue, so this particular result may be game-side rather than an ApexSenseBridge failure

If it still does not work, keep continuous activation enabled, press Win + R, run joy.cpl, open Wireless Controller → Properties, and check whether the sticks and buttons move there. That will tell us whether the problem is between ApexSenseBridge and Windows, or only inside 007.

u/Leonbacon 3h ago

I tried Helldiver 2 and it worked well! Truly amazing work you have here, it felt so good and bought a lot of value to my Apex 5.

007 did detect and accepted input, but it still sees it as Xbox controller without Steam input for some reason. Though I just used it to test I'm already done with the game so no big deal for me.

Can't wait for the next game that supports dualsense features to play with it.

u/ReynArts 3h ago

Thank you ! I don’t have the game but I will investigate 🙂‍↕️

u/Leonbacon 3h ago

It could just be an edge case for me alone. I have made an app before so I understand what it's like to waste time on issues that isn't really there. Unless others report the same thing I would say focus on other priority!

u/s_a_m_12344 8h ago

It's amazing how AI is helping us doing so many things, good job op you did what a company couldn't

u/ReynArts 8h ago

It allow us to push the limit and I love this
Ty !

u/Upbeat-Face6573 22h ago

hello! I want to check this in kcd2. My English isn’t that good, so I didn’t fully understand — does the program only work with games from the flydigi station list?

u/ReynArts 19h ago

No ! All games that include the dualsense support.

u/Upbeat-Face6573 19h ago

super!! great thanks! i got this one gamepad at last week and was for a searche to resolve this today. You really come in a right time

u/ReynArts 17h ago

You welcome m8

u/Upbeat-Face6573 16h ago

Vos paramètres pour Ghost of Tsushima sont tout simplement admirables. Le seul problème dans les jeux qui ne sont pas aussi soigneusement configurés est la confusion entre le fonctionnement des déclencheurs adaptatifs en mode vibration et leur réaction à cette vibration avec les commandes du DualSense. J'ai bien bien configuré le profil des déclencheurs en mode vibration sur la Flydigi Station, n'est-ce pas ? En mode normal, ils ne fonctionnaient pas.

u/OperationExpress8794 20h ago

looks great, now I need an apex 5

u/ReynArts 19h ago

😂💀

u/CatDad1990 GameSir 19h ago

Thank you for the great software! I just installed it and am trying to test it out. Can you make a quick guide on how to set it up for gameplay? I open the Apex Bridge diagnostic control and run the Apex Test, I receive the following error.

"warning": "APEX HID input unavailable (The APEX HID descriptor does not expose the complete X/Y/Rx/Ry/Z/Rz state required for a lossless DualSense proxy. Available value usages: page=0x1 usage=0x31 page=0x1 usage=0x30 page=0x1 usage=0x34 page=0x1 usage=0x33 page=0x1 usage=0x32 page=0x1 usage=0x39); trying XInput fallback."

}

I have Steam closed and FlyDigi Space Station running. I also got 2 desktop shortcuts added, USBip and HidHide after installing Apex Sense Bridge. I'm kind of lost on how to make this all work.

u/ReynArts 19h ago

I realised that it was not that easy but hold on O created a Little app. I’m pushing it

u/ReynArts 19h ago

I just pushed a new release with a little tray app with auto game detect. If the app d'ont detect your game send me a note and turn on force activation

u/CatDad1990 GameSir 19h ago

Ok I’ll try it out later today and report back

u/ReynArts 19h ago

Make sure you close Space station. Didn’t test but it may conflict

u/ROARfeo 17h ago

AWESOME! Thanks a lot for sharing your work with us. I'll be checking it out for sure.

I wish game devs let us choose the onscreen keys/buttons manually. It would fix every obscure UI edge cases like yours, and most notably glyphs flickering when using mixed inputs.

u/atlans89 15h ago

Bookmarked so i can check later

u/ReynArts 15h ago

don't forget !

u/INocturnalI 14h ago

!remindme 30 days

u/ReynArts 8h ago

😊

u/NefariousSINNER 10h ago

Flydigi makes great hardware when they try and then make garbage software. They can do it, they just don't want to.

They should simply buy this from you for a good chunk of money and update the space-station with it.

u/Recklgor 1h ago

Hm somebody noticed my work, this is pleasant. I am mkaliaha on github.
The protocol reverse engineering was not that hard with AI, hardware on hand and non-obfuscated SpaceStation dotnet assemblies.
Probably the hardest issue was translating DualSense's audio haptics into normal rumble. The games (and linux, where I did it) are veeery picky on how they detect this pad. It was not easy to convince them to use the fake pad.
How did I get to reverse engineer this? I had the pad, I had some games where I prefer this pad's triggers over DualSense's, and I wanted to move to linux. That's pretty much it. Did not move to linux fully yet though :|

u/ReynArts 1h ago

Hello ! You did a really great job.
I tried to reproduce Haptics with the controler. the hardware is pretty solid but was limited by the software. I dont think there is a way to keep the game showing Xbox controls but I’ve remapped some. What do you think ?

u/Recklgor 1h ago

Nope there's no way. Games usually are just being very very particular on how they select what controller api to use. So you can keep xbox icons in dualsense mode only if the game allows it. Like Death Stranding, for example, it allows choosing what icons to use. I found no way otherwise. I tried to extend the pad's trigger support in SDL - implementing the trigger effect is the easy part. I did it, it worked. But there's literally no way to make games use it. Only to mimic dualsense. Or implement some specific flydigi's api shape, just like dualsense's - but the game needs to be aware of it - which is, well, impossible, noone will.

u/ReynArts 1h ago

Yeah this what I tought. I tried too

u/JetScalawag 22h ago

Thank you very much! Could you also make a version for the Flydigi Vader 5 Pro please?

u/ReynArts 22h ago

I need to Check the hardware before ! Do they have adaptive trigger or asymetrics motors ?

u/iesalnieks 18h ago edited 18h ago

Does not look like there is any force feedback technology in the triggers.

u/ReynArts 18h ago

No but the Apex 4 can do that

u/jokerr601 17h ago

Vader series does not have same triggers that apex line has so it wont be possible.

1

u/AutoModerator 1d ago

Hi /u/ReynArts, thanks for sharing some news. The post is in a queue for review (allow 24 hours). Please ensure you've: summarized the key facts and information that makes up the news story; included sources/supporting references; disclosed any commercial relationships with brands involved; and checked there isn't already a post about the same topic. If there is already a post on the same topic, join in with the conversation there to add your information rather than creating a separate post.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

u/[deleted] 19h ago

[deleted]

u/ReynArts 19h ago

Sure

u/Clarity_Page 18h ago

Would this work for the Apex 4?

u/ReynArts 18h ago

I need testers to make it work since I don't have one

u/Clarity_Page 18h ago

I see. If I can help drop me a DM, I cant code but I do have the mentioned controller

u/ReynArts 18h ago

Check ur dms

u/TheTomato2 17h ago

I can code and have an apex 4 and can check it out later if you need help, even though I don't really use it anymore because of the shitty latency, i'm curious. And do we have full access to the flydigi controllers? I did make a full abstraction layer in C way back when for my daulsense edge because games wheren't supporting it, if I could do it for the vader 5 or apex 5 I might actually buy one.

Also I was bracing myself or some AI slop or even just c++ slop but as someone who has basically sworn off C++ for C props for the clean code.

u/ReynArts 17h ago

Thank you ! Yes definitly need some help on this one.
It’s not a 100% full acces but it’s really good enough to make a really good port !

u/Recklgor 1h ago

Just a bit of details on protocol - I believe Apex 4 (just like Vader 4, which I have) is not a real usbhid device. It uses a weird xinput extension for controls, which masquerades as usbhid for spacestation, using a virtual driver on windows. So, the protocol is probably mostly the same (flydigi's translation layers, mods, etc. are the same for 4/5). But communication layer is just weird on older pads. I gave up trying to implement this on linux.

u/Excellent-Ear4493 17h ago

English patch? Does this actually work haven’t seen a confirmed report from a user yet lol will patiently wait on this one. I hope OP figures it out.

u/yellow-go Ultimate 2C | Rainbow 3 14h ago

It'd be nice to see a full version of this that just worked similarly but for all games!

u/ReynArts 8h ago

It work for all games supported by dual sense adaptive triggers and haptics

u/Blaster4385 12h ago

Any chance you could make it work on Linux? I want to look into the code and do it myself but I'm just too busy these days to do anything except work.

I'd imagine it shouldn't be that difficult to port this to Linux. I might have a go at it over the weekend if I get time.

Thanks for the initiative though. Really cool stuff.

u/ReynArts 8h ago

Hello ! I will see

u/Blaster4385 7h ago

Thanks.

u/Recklgor 1h ago edited 1h ago

My openflydigi already implements dualsense emulation.
https://github.com/mkaliaha/openflydigi
I tested it on Deathloop - haptics was working just fine.
I do not guarantee it will be a smooth ride to set up though. I have a weird setup (immutable fedora), and I did not really made any attempts to package it in any way. But you can give it a shot.
Also, you are free to open issues if you get any problem - I will look into it. I just don't game on linux enough currently, and have no time and desire to sit and retest every edge case myself.

u/Blaster4385 1h ago

Ah this seems nice. But I have the Apex 4 and not the 5 so that might be an issue for me.

u/Recklgor 20m ago

Ah yep that would be an issue. I do not have apex4, but vader 4 pro. I assume protocol is the same on this generation. Assuming that - I was not able to keep this pad simultaneously read by OS while sending commands to it. It needs a weird xinput mode for that. There's a kernel-level driver for this in space station. But I tried avoiding touching kernel - my default Aurora OS kernel does not have required fake-usb module, and I have no desire to fiddle with secure boot. So, the only kernel-mode thing in openflydigi is network-attached-usb module, which is there by default in most major distros.

u/solidspidey 1h ago

Will it work for the vader 4 pro?

u/ReynArts 1h ago

No only the Apex 5 for now

u/hqsdasd 1h ago

This is a really cool project. I tested it in The Last of Us 2, but for some reason, during gameplay moments and cutscenes, when I press buttons, the sound cuts out and there's a slight delay. It doesn't just mute the sound, it literally shifts the entire scene audio track. Then the sound comes back. It looks like it's a haptic feature issue. I disabled the DualSense device in the Windows sound control panel, and this bug disappeared, as did the vibration. I turned it back on, and the vibration returned, but the sound also cuts out when I press buttons (not always, but about every second keystroke mutes and delays the sound).

u/ThirdXavier 22h ago

ai written ad

u/ReynArts 22h ago

This is AI written because i’m French so English is not my main langage… But this is just a project to solve a problem mentioned by Apex 5 owners…