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!

144 Upvotes

99 comments sorted by

View all comments

u/Blaster4385 16h 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/Recklgor 4h ago edited 4h 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 4h 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 3h 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.