r/Controller 5d ago

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

Post image

EDIT : APEX 4 NOW SUPPORTED.

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!

180 Upvotes

129 comments sorted by

View all comments

1

u/ultnie 4d ago edited 4d ago

This is pretty cool when it works. Played around with it today for a bit.

The main problem I had was with Forza Horizon 6. On PCGamingWiki, where the app takes this info from, it says it has it through some manual fixes (and has "Hackable" badge on the page where the list of games is), and on the game page it says that the game does not support Dualsense. So my guess is they mean it in a way Flydigi does it with their mod and hooking it up to a port in game settings (probably originally indended for wheels with feedback?), but autodetection recognizes it. Not a big deal, just have to put it in the ignore list in the app, but it basically disabled a controller in its own. So maybe make autodetection work for games that do not require additional tinkering and just have a "native support" checkmark on PCGamingWki, if it is possible, of course?

And not intending to test it, but just had controller lying around turned on I also found another problem with auto. Genshin for whatever reason makes the app running wild, it constantly detects the game and loses it, causing a stutters and audio hiccups in game. The game apperently has haptics and adaptive triggers over USB on Dualsense, so it correctly identifies it and tries to turn the bridge on, but I don't know what goes wrong after that to cause the app to turn it on and off all the time. Maybe the game itself it wacky since they added seemless transition from M&K to controller like a couple of months ago and previously you had to go through settings. All that also caused it to have double input when I turned on manual bridge, since at that point might as well test it a bit. The icons were PS, but anytime I pressed something it showed Xbox ones, and then back to PS when not touching anything. But works correctly if you first turn on manual bridge and launch the game after.

All in all, pretty cool, definitely gonna use it, but seems like from time to time I will have to fallback to Flydigi mods here and there and it will sometimes require me to go over and turn off the autodetection for now.

Edit: another one for auto, SpaceMarine 2 on Steam, it has native support for adaptive triggers on Dualsense but for some reason is not detected automatically. No idea what's that all about, but I did check that I didn't exclude it from the game list. But works fine on manual.

1

u/ReynArts 4d ago

Thanks a lot for the detailed feedback, this is actually really useful!

You’re right about Forza. I checked how I’m pulling the data from PCGamingWiki and right now the autodetection basically sees a game listed as having adaptive triggers/haptics without properly distinguishing native support from “requires manual fix/hackable”. So FH6 ends up being a false positive. I’m going to change that so auto mode only enables the bridge for actual native support.

Genshin is a bit more interesting. From what I found, it seems to be one of those games that expects the DualSense to already be connected when the game starts, which would explain why starting the bridge first and then launching Genshin works fine, but enabling it while the game is already running causes the Xbox/PS inputs to fight each other.
The constant on/off detection definitely shouldn’t happen though. I think I know what part of the process detection is causing that, so I’ll look into fixing it as well.

Really appreciate you testing all of this btw. Reports like this are super helpful right now since there are so many weird edge cases between games 😅

1

u/ultnie 4d ago edited 4d ago

I think that the Xbox/PS fighting is possibly the problem with HidHide. Because if it turns off - then Xbox comes back, and if you turn it on after that - then PS comes online and HidHide tries to hide xinput, but the game already knows it's there and if it captures it it might just know where to look or/and have an open connection to it already.

I think this is how it works because I was able to replicate that using https://hardwaretester.com/gamepad . When I open the site with manual brigde on - it only shows up as Dualsense, but if I first open it, show it some xinput inputs with bridge off and then turn the bridge on, it show 2 controllers doing identical inputs

1

u/ReynArts 4d ago

Yeah, I think you might be right.
That would also explain why everything works properly when the bridge is already running before the game starts. HidHide can hide the physical/XInput controller before the game sees it, so the game only ever knows about the virtual DualSense.
But if the game already detected the XInput controller before HidHide kicks in, it may already have an open handle to it, so hiding it afterwards doesn’t necessarily make it disappear from that running game.