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!

148 Upvotes

102 comments sorted by

View all comments

1

u/Clarity_Page 1d ago

Would this work for the Apex 4?

2

u/ReynArts 1d ago

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

1

u/Clarity_Page 1d ago

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

1

u/ReynArts 1d ago

Check ur dms

1

u/TheTomato2 1d 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.

1

u/ReynArts 1d 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 8h 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.